Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

PumpkinOS – Un système alternatif à PalmOS

Ah, PalmOS… Ce bon vieux système d’exploitation qui a équipé nos PDA adorés dans les années 90-2000. Ça ne nous rajeunit pas tout ça ! Et bien figurez-vous qu’un passionné a décidé de lui redonner vie à travers un projet complètement dingue : PumpkinOS.

Derrière ce nom qui fleure bon l’automne et la tarte à la citrouille se cache en fait une réimplémentation moderne de PalmOS. Mais je ne parle pas ici d’un simple émulateur comme on en trouve des tonnes sur Internet puisque PumpkinOS a l’ambition de faire tourner de vraies applications PalmOS, les fameuses applications m68k, sur nos machines actuelles. Et cela qu’elles soient équipées de processeurs x86 ou ARM.

Le créateur de PumpkinOS, un certain Miguel Letto a publié une série d’articles passionnants sur son blog pour détailler les différents aspects de son projet. Je vous mets le lien juste ici, ça vaut vraiment le détour.

Mais alors, qu’est-ce que PumpkinOS a dans le ventre ?

Et bien déjà, on retrouve un launcher, ce fameux écran d’accueil qui liste toutes les applications mais aussi une appli Preferences pour configurer le système à votre sauce. Et le plus excitant (lol), c’est la présence des 4 applications phares de PalmOS : le carnet d’adresse (AddressBook), le mémo (MemoPad), la liste de tâches (ToDoList) et l’agenda (DateBook).

Miguel est allé repêcher le code source de ces applications dans les SDK de PalmOS et les a adaptées pour qu’elles puissent compiler et s’exécuter correctement sous PumpkinOS. Un travail de titan quand on imagine le nombre de lignes de code et les différences d’architecture entre les vénérables m68k et nos processeurs modernes.

Il explique qu’il reste des petits bugs par ci par là et que certaines fonctionnalités n’ont pas été testées de fond en comble mais il a déjà sacrément avancé dans son projet.

Bon, maintenant que je vous ai mis l’eau à la bouche, vous vous demandez sûrement comment faire pour mettre la main dessus et surtout comment l’installer ? Eh bien, il va falloir retrousser vos manches et compiler le bouzin vous-même donc aller chercher les sources sur GitHub et ouvrir votre plus beau terminal.

Mais rassurez-vous, Miguel a pensé à tout puisqu’il a écrit un guide pour compiler PumpkinOS sur Windows avec MSYS2. Et pour les accros de Linux, c’est aussi possible de compiler ça sous votre OS préféré. Une fois compilé, il ne vous reste plus qu’à lancer PumpkinOS et à profiter de la nostalgie de l’interface de PalmOS. Le dev a d’ailleurs prévu des scripts de lancement pour Windows, Linux et même WSL, histoire que tout le monde puisse en profiter.

Et pour installer une appli PalmOS dessus, c’est très simple. Sous Windows, il suffit de glisser-déposer le fichier PRC de l’application sur la fenêtre de PumpkinOS et hop, magie, ça s’installe tout seul ! Bon et bien sûr sous Linux, c’est un peu moins automatisé car il faudra copier le PRC à la main dans le répertoire vfs/app_install et relancer PumpkinOS mais comme c’est vous les plus intelligents de la Terre, les linuxiens, je pense pas que ce soit un souci.

Amusez-vous bien !

SearXNG – Le métamoteur de recherche open source qui protège votre vie privée

SearXNG est un métamoteur de recherche open source est un véritable couteau suisse de la recherche en ligne. Imaginez un peu : il agrège les résultats de plusieurs moteurs de recherche comme Google, Bing et DuckDuckGo, mais sans collecter vos données personnelles.

Avec cet outil, vous pouvez dire adieu aux cookies indiscrets et aux trackers qui vous collent à la peau. Ce métamoteur génère un profil de navigateur aléatoire pour chaque requête, rendant votre recherche totalement anonyme et les requêtes sont également envoyées via un serveur proxy pour cacher votre adresse IP.

En plus de protéger votre vie privée, SearXNG vous offre une expérience de recherche personnalisable à souhait. Ainsi, vous pouvez choisir vos moteurs de recherche préférés, ajuster les paramètres de confidentialité et même customiser l’interface. C’est vous le boss !

Sur le site, vous trouverez également d’une liste d’instances publiques que vous pouvez utiliser directement, sans avoir à installer quoi que ce soit mais si vous voulez vraiment avoir le contrôle total, vous pouvez suivre le guide d’installation pour créer votre propre instance privée.

Et rappelez-vous, comme le disait Edward Snowden : « Dire que vous n’avez rien à cacher car vous n’avez rien à vous reprocher, c’est pareil que de dire que vous vous fichez de la liberté d’expression parce que vous n’avez rien à dire.« 

Alors, prêt à faire de SearXNG votre nouveau moteur de recherche ?

Zsh-copilot – Et votre terminal devient intelligent

Perso, je lance pas mal de commandes dans tous les sens chaque jour dans mon terminal et entre les petits paramètres que j’oublie, les enchainements de commandes un peu complexes ou les commandes à rallonge, ce que je peux vous dire, c’est que ça me prend un peu de temps.

Mais heureusement, zsh-copilot a débarqué dans ma vie il y a quelques mois et je ne peux plus m’en passer.

Ce plugin génial utilise la puissance de l’IA, directement intégrée à votre fidèle Zsh grâce zsh-autosuggestions.

Pour en profiter, rien de plus simple. Installez les dépandances suivantes :

Clonez le repo zsh-copilot dans votre dossier de plugins Zsh :

git clone https://github.com/Myzel394/zsh-copilot.git ~/.zsh-copilot

Puis ajoutez la ligne suivante dans votre fichier .zshrc avec cette commande :

echo "source ~/.zsh-copilot/zsh-copilot.plugin.zsh" >> ~/.zshrc

N’oubliez pas de relancer votre shell pour prendre en compte les changements.

Ah oui, j’oubliais ! Pour que la magie opère, vous aurez aussi besoin d’une clé API OpenAI. Ça coûtera donc un peu de sous, mais vu tout ce que ce plugin va vous apporter, ça vaut largement le coup d’investir dedans !

Une fois que tout est en place, vous n’avez plus qu’à commencer à taper vos commandes habituelles, et à presser Ctrl+Z dès que vous avez besoin d’un coup de main. Et là, c’est Merlin l’enchanteur qui entre en scène ! zsh-copilot va analyser ce que vous êtes en train de faire, et vous proposer la suite la plus pertinente. Vous pouvez même carrément lui demander ce que vous cherchez à faire et lui vous proposera la commande qui va bien.

Vous verrez, c’est bluffant. Au début, on a un peu l’impression de tricher, mais très vite, on se rend compte à quel point c’est pratique. J’en ai même fait une vidéo pour mes patreons d’amour :

Puis par la même occasion, j’ai découvert Zsh AutoSuggestions qui est également super pratique pour retrouver les commandes qu’on tape régulièrement.

Bref, comme d’hab, productivité x10 avec ce genre de petits tools. Rendez-vous sur le github pour en savoir plus.

GIFtube – Convertissez des vidéos YouTube en GIF de haute qualité

Vous êtes un amateur de GIF comme moi, et vous aimeriez pouvoir créer vos propres animations à partir de vos vidéos YouTube préférées ? Alors laissez-moi vous présenter GIFtube, un petit script Bash qui permet de choisir précisément la portion de la vidéo que vous voulez transformer, régler la résolution et le nombre d’images par seconde, et hop, le tour est joué ! Votre GIF est prêt à être partagé.

Pour faire son job, GIFtube utilise plusieurs outils bien connus des bidouilleurs : yt-dlp pour télécharger la vidéo YouTube, ffmpeg pour l’encodage et la génération du GIF, et gifsicle pour l’optimisation du fichier final. Et pas besoin d’être un champion de la ligne de commande pour utiliser GIFtube puisque le script s’occupe d’installer lui-même les dépendances nécessaires si elles ne sont pas déjà présentes sur votre système (enfin, seulement si vous êtes sous Ubuntu, Debian ou macOS, pour les autres, va falloir retrousser vos manches).

Bon, assez parlé, passons à la pratique ! Voici comment utiliser GIFtube :

  1. Téléchargez le script sur https://github.com/Gords/GIFtube et sauvegardez-le quelque part sur votre ordinateur.
  2. Ouvrez un terminal et rendez-vous dans le dossier où se trouve le script. Tapez ./make_gif.sh pour le lancer.
  3. Quand le script vous le demande, collez l’URL de la vidéo YouTube que vous voulez convertir.
  4. Indiquez le nombre d’images par seconde que vous voulez pour votre GIF. Un chiffre entre 10 et 30 est généralement un bon compromis entre fluidité et taille du fichier.
  5. Précisez le moment de la vidéo où vous voulez que le GIF commence, en secondes. Par exemple, si vous voulez démarrer à 1 minute et 30 secondes, tapez 90.
  6. Indiquez la durée que vous voulez pour votre GIF, toujours en secondes.
  7. Choisissez un nom pour votre fichier GIF.
  8. Enfin, sélectionnez la résolution de votre GIF : 1080p, 720p, 480p ou 240p.

Et voilà, GIFtube s’occupe du reste ! Le script va télécharger la vidéo, générer une palette de couleurs optimisée, encoder le GIF selon vos réglages et l’optimiser pour réduire sa taille. Quelques instants plus tard, votre GIF est prêt !

Avec un peu d’imagination, les possibilités sont infinies. Vous pouvez par exemple créer des GIF à partir de vos répliques de films préférées pour réagir avec style sur les réseaux sociaux, ou encore capturer les meilleurs moments d’un tutoriel vidéo pour l’intégrer dans un tutoriel écrit.

Vous l’aurez compris, GIFtube est un chouette petit outil à avoir sous la main pour tous les amateurs de GIF. Son côté ligne de commande peut rebuter les moins à l’aise avec le terminal, mais moi j’aime bien 🙂

Sur ce, je vous laisse, j’ai une subite envie de me refaire l’intégrale de Stargate moi. Je sens que je vais avoir besoin de GIFtube pour immortaliser certains moments cultes.

Allez, à plus et bon GIF !

Unch – Dissimulez vos messages avec des caractères invisibles

Vous cherchez un moyen astucieux et discret de dissimuler des messages dans vos écrits ? Ca tombe bien, Unch vous permet de cacher du texte dans un autre texte en utilisant des caractères Unicode invisibles. C’est comme une encre sympathique numérique !

Concrètement, Unch utilise les caractères de sélection de variante (Variation Selector) de l’Unicode, allant de \nE0100 à \nE01EF, pour masquer votre message secret. Votre texte en clair sert de couverture et le tour est joué ! Seuls ceux qui connaissent la combine pourront révéler le véritable contenu.

Mais comment ça marche ?

  • 1. Votre message est d’abord encodé en Base64
  • 2. Puis pour chaque caractère du résultat, on ajoute un sélecteur de variante
  • 3. Ce texte ésotérique est ensuite inséré dans votre message anodin

Et hop, vous obtenez un texte d’apparence banale mais qui recèle un secret bien gardé ! Vos destinataires n’y verront que du feu.

Pour utiliser Unch, rien de plus simple. Vous pouvez :

  • Télécharger un binaire précompilé depuis la page des releases GitHub
  • Compiler vous-même le code source en Go (version 1.22.0 ou supérieure requise)
  • Utiliser l’image Docker officielle

Ensuite, il suffit de lancer la commande unch en lui passant votre message et le texte de couverture. Par exemple :

unch "Mon message secret" "Coucou, quoi de neuf ?"

Vous pouvez aussi utiliser des options pour décoder un message caché avec -d ou --decode ou encore générer un faux texte aléatoire avec -l ou --lorem et même supprimer le saut de ligne final avec -n

Quelques exemples d’utilisation :

unch "Rendez-vous à 22h" "On se fait un ciné ce soir ?"
unch -l "Je suis un agent secret"
unch -d "On se fait un ciné ce soir ?"

Comme ça, avec Unch, vous pourrez échanger des infos avec vos amis ou vos collègues pour vous amuser (mais pas critiques non plus, c’est pas chiffré, je le rappelle.)

A découvrir ici.

Grsync – Une chouette interface pour rsync

Vous connaissez sûrement rsync, cet outil en ligne de commande hyper puissant mais pas toujours très intuitif ?

Et bien Grsync, c’est rsync avec une interface graphique claire et des options bien rangées.

Pour ceux qui débarquent, Grsync (et rsync donc…) permet de synchroniser des dossiers et des fichiers, que ce soit en local sur votre bécane ou avec des machines distantes. Vous pouvez créer des profils de synchronisation à volonté, chacun avec ses petits réglages : les dossiers source et cible, les filtres de fichiers, les options de transfert, etc. Une fois que c’est configuré, il vous suffit de cliquer sur un bouton et hop, il s’occupe de tout pendant que vous sirotez votre café (ou votre Club-Mate, pour rester dans le thème).

Ça sert surtout sauvegarder régulièrement vos données importantes sur un disque dur externe ou un NAS, histoire d’éviter les mauvaises surprises en cas de crash. Mais attention, pensez à tester régulièrement vos sauvegardes pour vous assurer qu’elles fonctionnent et peuvent être restaurées avec succès.

Mais ça peut aussi servir à synchroniser votre collection de musique entre votre PC et votre laptop. Ou encore à faire de la réplication de partitions, pour les plus geeks d’entre vous qui aiment jouer avec le feu. Bref, les possibilités sont quasi illimitées.

Ce que j’aime bien avec Grsync, c’est qu’il ne prend pas ses utilisateurs pour des débutants. Certes, l’interface graphique simplifie grandement les choses, mais vous avez quand même accès à un paquet d’options avancées d’rsync si vous voulez peaufiner vos réglages. Et si vous êtes un vrai ninja du terminal, vous pouvez même exporter la ligne de commande générée par l’outil pour la tweaker à la main.

C’est disponible dans les dépôts de la plupart des distributions Linux, il vous suffit donc d’utiliser votre gestionnaire de paquets favori. Sous Ubuntu par exemple, un petit

sudo apt install grsync

et le tour est joué. Évidemment, il vous faut aussi avoir rsync d’installé, mais normalement c’est déjà le cas sur la plupart des systèmes.

Et pour les paranos de la ligne de commande, je vous rassure : à tout moment vous pouvez voir la commande rsync qui sera exécutée et vous pouvez même l’exporter dans un script shell pour l’exécuter plus tard ou l’intégrer dans vos tâches planifiées. De quoi garder un contrôle total sur ce qui se passe.

Et voilà, vous pouvez maintenant dormir sur vos deux oreilles, vos documents sont en sécurité ! Pensez juste à brancher régulièrement votre disque externe et à cliquer sur Exécuter pour mettre à jour la sauvegarde. Vous pouvez même cocher « Trier les fichiers » et « Supprimer en premier » pour qu’il optimise la sauvegarde incrémentale.

Notez quand même que Grsync ne chiffre pas vos données, donc évitez de vous en servir pour synchroniser votre collection privée de photos de vous à poil sur un serveur public. Et il ne vérifie pas non plus l’intégrité des fichiers, donc il peut en théorie propager une corruption silencieuse. Pour vraiment mettre vos données à l’abri, pensez à les stocker sur plusieurs supports et à vérifier régulièrement que tout est ok.

Bref, c’est un chouette outil gratuit et open-source, qui fait bien ce qu’on lui demande et que vous pourrez trouver ici.

Trurl, un outil super pratique pour manipuler les URL

Aujourd’hui, je vais vous causer d’un petit outil bien pratique qui va vous changer la vie (je sais, j’abuse jamais) : trurl !

Alors c’est quoi trurl ? Ben c’est juste un programme en ligne de commande, inspiré de notre bon vieux pote tr, qui permet de parser et manipuler les URL. Ça a l’air tout bête dit comme ça, mais je peux vous dire que c’est super pratique et vachement puissant.

Parce que les URL, c’est pas toujours facile à gérer. Entre les caractères spéciaux, les encodages, les paramètres de requête, les fragments, y a de quoi s’arracher les cheveux. Et puis mal implémenté, ça peut apporter son lot de failles de sécurité si on n’y fait pas gaffe. Mais avec trurl, pas de prise de tête ! Il utilise le parser d’URL de la librairie libcurl, qui est hyper robuste et éprouvé, du coup, vous pouvez manipuler vos URL en toute sérénité.

Rien qu’avec une petite commande toute simple, vous pouvez par exemple :

  • Changer le nom de domaine d’une URL
  • Modifier le port
  • Extraire le chemin
  • Ajouter des paramètres de requête
  • Trier les paramètres par ordre alphabétique
  • Supprimer certains paramètres
  • Encoder/décoder des caractères spéciaux
  • Reformater l’URL en JSON
  • Et plein d’autres trucs !

Genre si je veux changer le nom de domaine d’une URL, je fais juste :

trurl --url https://korben.info --set host=example.com
https://example.com/

Et bim, c’est fait ! Fastoche non ? Plus besoin de se taper des RegEx de 3km de long ou de réinventer la roue à chaque fois.

Ce que j’aime bien aussi, c’est qu’on peut utiliser trurl de façon interactive en lui passant les URL au fur et à mesure, ou bien traiter tout un fichier d’URL d’un coup. Il gère même les espaces et autres caractères spéciaux sans broncher.

Par exemple, pour ajouter un paramètre à une URL existante :

trurl --url "https://example.com?param1=value1" --add-query "param2=value2"
https://example.com?param1=value1&param2=value2

Ou encore, pour supprimer un paramètre spécifique :

trurl --url "https://example.com?param1=value1&param2=value2" --remove-query "param1"
https://example.com?param2=value2

Côté installation, c’est méga simple aussi. Sur la plupart des distros Linux, vous devriez pouvoir l’installer direct depuis votre gestionnaire de paquets préféré. Sinon, les sources sont dispos sur GitHub.

Ça m’a permis de virer des tonnes de code crado bricolé à la main dans des scripts et de le remplacer par des commandes trurl bien propres. Par exemple, j’avais un script qui devait récupérer le flux RSS d’un site, filtrer certains paramètres de l’URL et ajouter un tracker pour les stats. Avant je faisais ça avec des RegEx et des concaténations dégueulasses, maintenant, en quelques commandes trurl, c’est réglé !

curl "https://example.com/feed.xml" | trurl --query-sort --query-exclude "utm_*" --add-query "tracker_id=korben"

Attention quand même, trurl a quelques limitations à connaître. Par exemple, il ne gère pas les redirections tout seul, faudra passer par curl si besoin. Et pour certains cas tordus avec des caractères exotiques, il pourrait y avoir des surprises. Donc prudence, pensez à toujours tester avant de balancer en prod !

Sinon astuce bonus, trurl a une option --accept-space bien pratique quand vos URL contiennent des espaces. Et le --sort-query est top pour remettre de l’ordre dans vos paramètres.

A demain !

Arx – L’outil d’archivage qui surpasse Tar

Vous utilisez Tar pour archiver vos fichiers et dossiers et vous trouvez ça un peu lent ? Alors ça tombe bien puisqu’aujourd’hui, je vous présente Arx. C’est un outil d’archivage nouvelle génération développé par le talentueux Jubako, qui va vous bluffer par ses performances et ses fonctionnalités.

Arx met la vitesse au cœur de son fonctionnement grâce à son algorithme hyper optimisé, ce qui lui permet de traiter vos fichiers à une vitesse fulgurante, laissant tar sur place. Par exemple, pour accéder à un fichier individuel dans une archive contenant l’intégralité du code source de Linux, Arx est jusqu’à 5 692 fois plus rapide que tar ! Plus l’archive est volumineuse, plus l’écart se creuse.

Mais la rapidité n’est pas le seul atout d’Arx puisqu’il offre également un accès aléatoire direct aux fichiers archivés. Cela permet de récupérer n’importe quel fichier de votre archive en un clin d’œil, sans avoir à la décompresser entièrement. C’est moins de temps perdu à naviguer dans des archives monolithiques. Et comme le temps c’est de l’argent, vous serez rapidement riche ^^.

Les commandes sont simples à capter, vous permettant de créer, mettre à jour et extraire vos archives sans avoir besoin de vous prendre la tête avec des options obscures. D’ailleurs, Arx regorge de petites astuces qui vont vous faire gagner un temps précieux comme pouvoir ajouter des fichiers à une archive existante sans avoir à la recréer entièrement ou encore, extraire seulement les fichiers modifiés depuis le dernier archivage.

L’outil est également également économe en ressources puisqu’il permet d’obtenir des archives compactes sans compromis sur la qualité. C’est votre disque dur qui vous remerciera et vous pourrez en stocker encore plus !!

Si ça vous branche de le tester, c’est dispo sur Github ici ou vous pouvez l’installer avec Cargo (oui c’est du Rust) :

cargo install arx

Ensuite, pour commencer à créer une archive, lancez la commande suivante :

arx create -o mon_archive.arx -r mon_repertoire

Cela génèrera un fichier mon_archive.arx contenant le répertoire mon_repertoire.

Pour extraire (décompresser) une archive, utilisez la commande :

arx extract mon_archive.arx -C mon_repertoire_de_sortie

Et si vous souhaitez lister le contenu (la liste des fichiers) de l’archive, lancez :

arx list mon_archive.arx

Pour accéder au contenu d’un seul fichier, vous pouvez également utiliser les commandes suivantes :

arx dump mon_archive.arx mon_repertoire/chemin/vers/mon_fichier > mon_fichier
# ou
arx dump mon_archive.arx mon_repertoire/chemin/vers/mon_fichier -o mon_fichier

Si vous êtes sous Linux, vous avez aussi la possibilité de monter l’archive en utilisant fuse :

mkdir point_de_montage
arx mount mon_archive.arx point_de_montage

Notez que arx sera en cours d’exécution jusqu’à ce que vous démontiez point_de_montage.

Et pour convertir un zip en une archive arx, utilisez la commande :

zip2arx -o mon_archive.arx mon_archive_zip.zip

De même, pour convertir une archive tar en une archive arx, lancez :

tar2arx -o mon_archive.arx mon_archive_tar.tar.gz

Voilà, vous savez tout !

rEFInd – Le gestionnaire EFI / UEFI qui boote tous vos OS avec classe

Vous en avez marre de GRUB et ses limitations ? Vous rêvez de pouvoir booter facilement Windows, Linux et macOS sur la même machine en EFI ou UEFI ? Ne cherchez plus, rEFInd est là pour révolutionner votre expérience de démarrage !

Développé comme un fork de rEFIt, rEFInd pousse encore plus loin les possibilités de boot. Cet outil détecte automatiquement tous les systèmes d’exploitation installés sur votre ordinateur comme ça, fini le temps perdu à configurer manuellement chaque entrée ! Le plus dingue avec rEFInd, c’est qu’il peut même lancer directement des noyaux Linux sans passer par un bootloader intermédiaire. Ça simplifie énormément la configuration. Et pour les nostalgiques du bon vieux BIOS, pas de panique : rEFInd gère aussi le boot des OS en mode legacy via le CSM. Bref, c’est vraiment un outil très pratique pour gérer un multiboot sur les cartes mères modernes.

En plus d’être hyper pratique, rEFInd en jette grave avec ses thèmes graphiques. Ainsi, vous pouvez complètement personnaliser le look de votre menu de boot. Mettez une image de fond stylée, changez les icônes, ajoutez une bannière… Faites-vous plaisir ! C’est tellement plus agréable qu’un écran noir avec trois lignes de texte.

Mais rEFInd, ce n’est pas qu’une question d’esthétique. C’est aussi bourré d’options de configuration avancées pour les power users qui permettent de définir des paramètres de boot par défaut, modifier à la volée les options passées aux OS, activer le support des pilotes EFI, et bien plus encore. Tout se fait via un fichier texte hyper simple à comprendre.

Pour installer rEFInd, c’est facile : Téléchargez la dernière version sur le site officiel, décompressez l’archive et lancez le script d’installation. En quelques secondes, c’est prêt ! Le programme s’installe sur la partition EFI et prendra la main au démarrage suivant.

Maintenant, si vous voulez vraiment assurer niveau sécurité, vous pouvez même configurer rEFInd pour fonctionner avec Secure Boot. Il suffit de le signer numériquement avec votre propre clé, comme ça, vous serez certain que personne ne pourra modifier votre configuration de boot.

Ça facilite tellement la vie au quotidien et en plus ça en jette visuellement, alors pourquoi vous priver ?

Plus d’infos sur le site de rEFInd.

Graftcp – Un petit tool capable de proxifier n’importe quel programme

Voici un outil bien pratique pour faire passer vos connexions TCP par un proxy SOCKS5 ou HTTP. Ça s’appelle graftcp et grâce à lui, vous pouvez dire adieu à vos galères pour proxifier certains outils.

Comparé à des solutions comme tsocks, proxychains ou proxychains-ng, graftcp n’utilise pas la méthode LD_PRELOAD qui ne fonctionne que pour les programmes liés dynamiquement. Par exemple, les applications construites avec Go ne peuvent pas être « accrochées » par proxychains-ng. Alors que Graftcp, lui, peut suivre et modifier les connexions de n’importe quel programme, ce qui le rend très versatile.

Pour l’essayer, c’est fastoche. Sur Linux, compilez graftcp et graftcp-local avec Go ou téléchargez directement les binaires Debian ou Arch.

Voici comment faire :

  1. Clonez le dépôt : git clone https://github.com/hmgle/graftcp.git cd graftcp make
  2. Après compilation, utilisez les binaires résultants dans local/graftcp-local et graftcp. Vous pouvez aussi les installer dans le système :
    sudo make install
    sudo make install_systemd
    sudo make enable_systemd
  3. Lancez graftcp-local avec l’adresse de votre proxy SOCKS5, genre 127.0.0.1:1080.
    Par exemple : local/graftcp-local -socks5 127.0.0.1:1080
  4. Utilisez ensuite graftcp pour encapsuler vos programmes afin qu’ils passent par le proxy sans broncher. Exemple pour installer un package Go : ./graftcp go get -v golang.org/x/net/proxy

Ou pour surfer pépouze avec Chromium ou Firefox : ./graftcp chromium-browser

Même votre shell préféré peut surfer incognito si vous le lancez avec graftcp :
./graftcp bash
wget https://www.google.com

Sous le capot, Graftcp fork et trace le programme avec ptrace. À chaque appel connect, il attrape l’adresse de destination et la transmet par pipe à graftcp-local. Ensuite, il la modifie pour pointer vers graftcp-local avant de relancer le syscall. L’appli croit alors qu’elle cause à sa destination mais en fait, elle parle à graftcp-local qui se charge de tunneler le trafic dans le proxy SOCKS. Malin non ?

Evidemment, vous pouvez personnaliser le comportement de graftcp en utilisant divers paramètres, comme spécifier des fichiers de configuration pour gérer une liste noire d’IPs (blacklist) ou une liste blanche (whitelist). Par défaut, localhost passe en direct :

$ graftcp -h Usage: graftcp [options] prog [prog-args] Options: -c --conf-file=<path> -a --local-addr=<IP> -p --local-port=<port> -n --not-ignore-local -b --blackip-file=<path> -w --whiteip-file=<path> -V --version -h --help

Pour plus de détail et options, consultez GitHub.

Notez que Graftcp est limité au TCP… pas d’UDP donc. Pour le DNS, il faudra donc passer par un proxy dédié comme ChinaDNS ou dnscrypt-proxy. Pour les performances, bien que les chiffres précis varient en fonction des configurations, graftcp est assez connu pour offrir une alternative robuste aux solutions comme proxychains.

Bref, c’est un outil polyvalent pour la proxification puisqu’il est léger, compatible avec tout et surtout facile à utiliser…

Source

Les outils de crise indispensables pour Linux

Aujourd’hui, on va causer d’un sujet qui nous tient tous à cœur (du moins je l’espère 😅) : les outils de crise sous Linux ! Parce que quand ça part en sucette et que les serveurs rament, pas question de perdre un temps précieux. C’est que souvent, quand la caca-strophe pointe le bout de son nez, vous vous rendez compte que vous n’avez pas les bons outils installés. Et là, c’est le drame… SSH qui rame, les serveurs qui répondent plus, les paquets qui veulent pas s’installer, le firewall qui fait des siennes… Un vrai calvaire !

Alors, quels sont ces fameux outils qu’il est impératif d’avoir sous la main quand le caca touche le ventilo ? Je dirais que y a déjà les classiques comme ps, vmstat, top et compagnie pour avoir un aperçu rapide de ce qui cloche. Rien que ça, ça peut déjà vous sauver les miches.

Mais si vous voulez jouer dans la cour des grands, va falloir sortir l’artillerie lourde. Je parle bien sûr des outils de tracing comme perf, bpftrace, opensnoop, execsnoop et toute la clique. Ça vous permettra de tracer en live ce qui se passe sur votre système, de débusquer les coupables et de mettre fin au carnage. Le top du top !

Voici comment procéder à grand coups d’apt install…

Étape 1 : Installer les packages de base

  • procps : fournit ps, vmstat, uptime, top pour les stats de base
  • util-linux : dmesg, lsblk, lscpu pour les logs systèmes et infos matérielles
  • sysstat : iostat, mpstat, pidstat, sar pour les stats disques/CPU
  • iproute2 : ip, ss, nstat, tc, les outils réseau recommandés
  • numactl : numastat pour les stats NUMA

Commande : sudo apt install procps util-linux sysstat iproute2 numactl

Étape 2 : Ajouter les outils réseaux

  • tcpdump : sniffer réseau
  • nicstat : stats interfaces réseau
  • ethtool : infos interfaces

Commande : sudo apt install tcpdump nicstat ethtool

Étape 3 : Outils de profilage et de traçage

  • linux-tools-common et linux-tools-$(uname -r) : perf, turbostat
  • bpfcc-tools (ou bcc) : une suite d’outils eBPF puissants
  • bpftrace : un outil de scripting eBPF dynamique
  • trace-cmd : outil en ligne de commande pour ftrace

Commande : sudo apt install linux-tools-common linux-tools-$(uname -r) bpfcc-tools bpftrace trace-cmd

Étape 4 (optionnelle) : Outils spécifiques au matériel

Selon vos serveurs, installez les outils d’analyse pour :

  • GPU Intel : intel-gpu-tools
  • GPU NVIDIA : nvidia-smi
  • Autres accélérateurs éventuels

Par contre, méfiez-vous, c’est pas donné à tout le monde de dompter ces bêtes-là. Ça demande un peu de bouteille et de la jugeote. Mais une fois que vous les maîtrisez, vous serez parés pour affronter les pires galères. Les plantages intempestifs, les I/O de l’enfer, les fuites mémoire vicieuses… plus rien ne vous résistera !

Bref, croyez-moi, le mieux c’est d’avoir tout ce bazar installé d’office sur vos machines. Comme ça, pas de mauvaise surprise le jour J. Évidemment, ça a un petit coût en espace disque. Mais franchement, c’est que dalle comparé au temps que vous allez perdre à galérer pour installer tout ça en pleine crise.

Sur ce, je vous laisse méditer là-dessus. Et n’oubliez pas, dans le monde merveilleux de l’informatique, il vaut mieux prévenir que guérir ! Allez, à plus les linuxiens et un grand merci à Brendan Gregg pour son article éclairant à ce sujet.

Monolith – L’outil parfait pour sauvegarder le web

Je vais vous parler aujourd’hui d’un outil vraiment cool pour faire de l’archivage de pages web. Alors oui, je sais, on peut déjà enregistrer une page web avec le navigateur, mais cet outil baptisé Monolith permet de faire 1000 fois mieux que ça. Il va non seulement sauvegarder la page cible, mais aussi embarquer d’un coup tous les éléments CSS, images et JavaScript dans un seul et unique fichier HTML5.

Et contrairement à une sauvegarde classique ou même avec wget, Monolith intègre tous les assets en URLs de données. Ça veut dire que votre navigateur va pouvoir afficher la page exactement comme elle était sur le web, même sans connexion Internet !

Pour l’installer, c’est ultra simple. Que vous soyez sur Windows, macOS, GNU/Linux ou même sur des devices exotiques avec des processeurs ARM, ça marchera forcement :

  • Avec Cargo (cross-platform) : cargo install monolith
  • Via Homebrew (macOS et GNU/Linux) : brew install monolith
  • Avec Snapcraft (GNU/Linux) : snap install monolith
  • Et plein d’autres options encore…

Ensuite, pour sauvegarder par exemple cet article de mon site, il vous suffit d’entrer la commande suivante :

monolith https://korben.info/monolith-archivage-web-html-autonome.html -o monolith.html

Et paf, ça vous génère direct un fichier monolith.html avec tout ce qu’il faut dedans. Vous pouvez l’ouvrir tranquillou dans votre navigateur même sans accès internet, c’est magique.

Mais Monolith a encore plein d’autres tours dans son sac. Vous pouvez par exemple l’utiliser directement avec une entrée STDIN :

cat index.html | monolith -aMcIiFfv -b https://site.com/ - > result.html

Ici, on lui passe le contenu HTML via l’entrée standard, avec quelques options en plus :

  • -a pour virer les audios
  • -M pour ne pas ajouter les infos de date et d’URL
  • -c pour exclure les CSS
  • -I pour isoler le document
  • -i pour retirer les images
  • -F pour exclure les web fonts
  • -f pour zapper les frames
  • -v pour virer les vidéos

Bref, vous avez un contrôle total sur ce que vous voulez garder ou non.

Vous pouvez aussi spécifier les domaines autorisés ou interdits pour récupérer les assets, genre :

monolith -I -d example.com -d www.example.com https://example.com -o example-only.html

Là on autorise uniquement les domaines example.com et www.example.com. Tout ce qui vient d’ailleurs sera zappé. Ou à l’inverse, on peut dégager des domaines, typiquement ceux qui servent de la pub :

monolith -I -B -d .googleusercontent.com -d googleanalytics.com -d .google.com https://example.com -o example-no-ads.html

Après, faut savoir que Monolith n’embarque pas de moteur JavaScript. Donc pour les pages web un peu complexes qui vont chercher des données après le chargement initial, ça peut être limité. Mais pas de panique ! On peut utiliser un navigateur headless comme Chromium en amont, pour pré-processer la page avant de la passer à Monolith :

chromium --headless --incognito --dump-dom https://github.com | monolith - -I -b https://github.com -o github.html

Et hop, problème réglé !

Parfait donc pour les archivistes du web ou les data hoarders qui veulent garder une trace de tout, voire automatiser tout ça dans leurs scripts.

Slidev – Vous ne ferez jamais aussi bien avec Powerpoint

Hier, je vous parlais de mdBook, avec un petit reminder de Deckset et aujourd’hui, je suis tombé sur Slidev, un outil très sympa pour vous aider à concevoir vos présentations style Powerpoint.

Sauf qu’avec cet outil, fini les heures perdues à galérer sur la mise en forme et la disposition de vos slides. Grâce à sa syntaxe intuitive basée sur Markdown, vous pourrez vous concentrer vraiment sur le contenu et laisser Slidev s’occuper du reste. En plus de son éditeur intégré, Slidev propose même une extension pour VS Code qui vous permettra de profiter d’une expérience de développement optimale, avec tous les avantages de votre IDE préféré.

Mais attention, Slidev ne se contente pas d’être un simple convertisseur Markdown vers des slides. Il propose des tas de fonctionnalités super cools comme une coloration syntaxique impeccable, et même la possibilité d’exécuter du code, peu importe le langage, en direct pendant votre présentation. Je vous invite à regarder cet exemple pour vous rendre compte du délire. Il y en a plein des comme ça.

Slidev vous offre également un choix de thèmes varié et professionnels, que vous pourrez personnaliser à votre guise ou même créer de toutes pièces. Votre présentation aura alors un look unique qui reflètera votre style personnel. ! Il offre également des fonctionnalités avancées comme le mode présentateur, l’enregistrement vidéo, l’exportation vers différents formats (PDF, PNG, SPA), et bien plus encore

Et grâce à son intégration parfaite avec Vue.js, vous pourrez même créer des composants interactifs directement dans vos slides pour afficher par exemple des graphiques dynamiques, des quiz, des sondages en temps réel, et bien plus encore. Bref, vous l’aurez compris, c’est un super projet open source, totalement hackable qui vous fera gagner bien du temps.

Pour démarrer un nouveau projet Slidev, utilisez la commande :

npm init slidev@latest

Et si vous préférez utiliser l’interface en ligne, rendez-vous sur sli.dev.

Je suis sûr que ça vous plaira !

A vous de jouer maintenant et n’oubliez pas, la seule limite est votre créativité !

❌