Golang


Journaux liées à cette note :

Journal du mercredi 04 décembre 2024 à 10:14 #golang, #dev-kit, #JaiDécouvert

#JaiDécouvert l'outil de "version manager" nommé aqua, une alternative à Mise et Asdf codé en Golang.

Ce projet semble avoir débuté en août 2021.

J'ai fait quelques recherches au sujet d'aqua sur Hacker News, j'ai trouvé très peu d'occurrences. J'ai trouvé "Ask HN: Homebrew, Asdf, Nix, or Other?".

Je pense qu'aqua est bien moins populaire que Asdf et Mise.

Au 4 décembre 2024 :

  • aqua : 901 stars GitHub
  • Mise : 10 400 stars GitHub
  • Asdf : 22 200 stars GitHub

Journal du mardi 03 décembre 2024 à 21:57 #javascript, #JaiDécouvert

Dans l'article "Dependency management fatigue, or why I forever ditched React for Go+HTMX+Templ" (from), #JaiDécouvert :

Datastar brings the functionality provided by libraries like Alpine.js (frontend reactivity) and htmx (backend reactivity) together, into one cohesive solution.

from

Cela me donne envie d'essayer ces technologies 🙂.

Journal du samedi 02 novembre 2024 à 12:20 #golang, #Java, #tui

Je cherche un équivalent de Listr2 en Golang, mais pour le moment je n'ai rien trouvé 😟.

Je viens de poster ce message sur le Subreddit Golang : I'm looking for an equivalent of listr2: beautiful CLI interfaces via easy and logical to implement task lists that feel lively and interactive

Subject: I'm looking for an equivalent of listr2: beautiful CLI interfaces via easy and logical to implement task lists that feel lively and interactive

Hi,

Do you know a Golang equivalent of the Javascript listr2 library?

My goal is to create a cli tool with the same rendering as demonstrated in the screencast on https://listr2.kilic.dev

Listr2:

Create beautiful CLI interfaces via easy and logical-to-implement task lists that feel alive and interactive.

Best regards,
Stéphane

Journal du dimanche 20 octobre 2024 à 22:50 #vagrant, #dns, #coding, #iteration

Nouvelle #iteration du Projet 14 - Script de base d'installation d'un serveur Ubuntu LTS.

Il y a quelques jours, j'ai migré de vagrant-hostmanger vers vagrant-dns. J'ai ensuite souhaité mettre en œuvre Grizzly, mais j'ai rencontré un problème.

J'ai installé une version binaire statiquement liée de Grizzly à l'aide de Mise. Dans cette version, Go ne fait pas appel à la fonction getaddrinfo pour la résolution des noms d'hôte. Au lieu de cela, Go se limite à lire les informations de configuration DNS dans /etc/resolv.conf (champ nameserver) et les entrées de /etc/hosts.

Cela signifie que les serveurs DNS gérés par systemd-resolved ne sont pas pris en compte 😭.

Pour régler ce problème, j'utilise en même temps vagrant-dns et Vagrant Host Manager : voici le commit.

J'active uniquement ici le paramètre config.hostmanager.manage_host = true et je laisse vagrant-dns résoudre les hostnames à l'intérieur des machines virtuelles et des containers Docker.

Journal du vendredi 18 octobre 2024 à 22:51 #grafana, #DevOps, #InfrastructureAsCode, #JaiDécouvert

En cherchant un outil d'Infrastructure as code pour Grafana, #JaiDécouvert Grizzly.

Un projet qui a débuté en mars 2020, développé en Go par l'équipe de Grafana.

A utility for managing Jsonnet dashboards against the Grafana API

J'ai parcouru l'intégralité de la documentation et je suis ravi, ce projet correspond parfaitement à ce que je cherchais depuis des années !

Avant de découvrir cet outil, j'écrivais des scripts Python ou Bash d'exportation et d'importation de dashboards via l'API de Grafana.

Je souhaite l'utiliser dans le Projet 14 - Script de base d'installation d'un serveur Ubuntu LTS. Dans le repository basic_ubuntu_server_install_playground.

Pourquoi faire un refactoring de Nuxt.js vers HTMX ? 🤔 #WebDev, #htmx, #django, #Nuxt, #SvelteKit

En étudiant l'annonce Développeur(se) back-end en CDI de Brief.me j'ai été intrigué par :

Migrer notre front-end existant de Nuxt.js vers HTMX.

Je me suis demandé quelle est la motivation de passer d'un framework de type Nuxt.js, NextJS ou SvelteKit à htmx 🤔.

J'utilise SvelteKit depuis deux ans, qui est comparable Nuxt.js, principalement en mode SSR avec Hydration, et je suis totalement satisfait. Ma Developer eXperience est excellente. Je trouve ce framework minimaliste, conforme au principe Keep it simple, stupid! (KISS), et performant.

Après réflexion, j'ai réalisé que mon expérience de développeur (DX) serait moindre si j'héritais d'un backend codé dans un langage autre que Javascript : Python, PHP, Ruby, Golang

Et Brief.me semble être dans ce cas de figure :

Je me suis connecté à mon compte Brief.me et en regardant ce que me retourne Wappalyzer, je constate que le site est effectivement propulsé par Nuxt.js, VueJS.

En regardant ce qu'il se passe dans l'onglet Réseau de mon navigateur, je constate que https://app.brief.me est un site web de type SPA. Le contenu des articles est chargé via l'api https://www.brief.me/api/ qui est propulsée par Django REST framework.

Si je résume, la stack est la suivante : PostgreSQL => Django => Django REST framework <=> Nuxt.js => Rendu HTML via VueJS.

Je suppose que ce qui motive la migration de Nuxt.js vers HTMX est la suppression de couches.
Plus précisément, je suppose que l'équipe tech de Brief.me souhaite supprimer les couches suivantes :

Et utiliser simplement le système de template de Django en SSR pour afficher le contenu des articles et implémenter les quelques éléments dynamiques côté browser avec HTMX.
De mon point de vue, ceci a pour avantage de largement simplifier la stack, de simplifier le déploiement et d'accélérer le chargement des pages.

Ma conclusion : la librairie HTMX semble être un choix très pertinent quand elle est utilisée dans une stack non NodeJS.

Journal du samedi 05 octobre 2024 à 11:07 #JaiDécouvert

#JaiDécouvert Btree un équivalent à APScheduler en Python.

Bree is a Node.js and JavaScript job task scheduler with worker threads, cron, Date, and human syntax.

Je crois avoir commencé à utiliser APScheduler aux alentours de 2010. Cependant, depuis que j'ai pris la décision de me consacrer pleinement à Javascript, je prévois de le remplacer par Btree.

#JaiDécouvert dans cette issue une application web (GUI) pour Btree : https://github.com/mihai-vlc/bree-dashboard.

Pour l'exécution de scripts shell simples, j'utilise Supercronic, un outil développé en Golang que j'intègre dans mes images Docker.

En revanche, si mes besoins en orchestration deviennent trop complexes pour Btree, je pense que Temporal pourrait être une solution intéressante pour gérer des workflows avancés.

Journal du mercredi 02 octobre 2024 à 09:55 #http-proxy, #selfhosting, #DevOps, #JaiDécouvert

#JaiDécouvert Kamal Proxy (from) « A minimal HTTP proxy for zero-downtime deployments » codé en Golang. Un projet Basecamp qui fonctionne avec kamal.

Cela attire ma curiosité, parce que la semaine dernière, je réfléchissais comment implémenter la fonctionnalité Skew Protection en self hosted, voir aussi 2023-07-04_1735.

Journal du vendredi 20 septembre 2024 à 10:25 #WorkflowManagement, #EventDriven, #cron, #scheduling, #queue, #StateMachine, #JaiDécouvert, #JeMeDemande

#JaiDécouvert et un peu étudié Temporal (workflow management).

D'après ce que j'ai compris, Temporal a été initialement développé par les auteurs (Maxim Fateev et Samar Abbas) de Cadence.

Je me souviens d'avoir étudié Cadence vers 2019. J'ai l'impression que ce projet est encore très actif. #JeMeDemande quelles sont les réelles différences entre Temporal et Cadence 🤔.

Une première réponse à ma question :

D'après ce que j'ai lu, Temporal est totalement open-source, sous licence MIT. L'entreprise Temporal propose une version hébergée (managée) nommée Temporal Cloud.

#JaiDécouvert un exemple de projet d'Order Management System codé en Go et basé sur Temporal : https://github.com/temporalio/reference-app-orders-go.
Je n'ai pas étudié le code source, mais c'est un sujet qui m'intéresse, étant donné que j'ai travaillé par le passé sur le développement d'un Order Management System 😉.

Journal du dimanche 01 septembre 2024 à 10:42 #llm, #JaiLu

Suite à des échanges avec Alexandre au sujet de la "position" et de l'usage de Ollama dans le domaine des LLM, j'ai pris un peu de temps pour essayer d'y voir plus clair.

#JaiLu ce thread Reddit : newbie confusion: LocalLM / AnythingLLM / llama.cpp / Lamafile / Ollama / openwebui All the same? : LocalLLM

Voici ma description d'Ollama. Ollama est un wrapper au-dessus de Llama.cpp afin de rendre son utilisation davantage User Friendly. Ollama est écrit en Golang.

D'après :

Supported backends

-- from

et la présence de Llama.cpp directement dans le code source de Ollama

Je comprends que pour le moment, Ollama supporte uniquement le backend Llama.cpp.

Conclusion : je pense qu'il est préférable d'utiliser Ollama plutôt que directement Llama.cpp.