Recherche effectué dans :

Cliquez sur un tag pour affiner votre recherche :

[ << Page précédente (900) ] [ Page suivante (2402) >> ]

Je trouve que le marketing positioning du projet dotenv est très bien présenté #marketing, #dotenv

Je trouve que le site web https://www.dotenv.org du projet dotenv est un bel exemple de Marketing positonning. Voici pourquoi :

Journal du mercredi 01 mai 2024 à 16:06 #coding, #dotenv, #JeMeDemande, #vault, #selfhosting, #JaiLu

Je suis en train de lire la documentation de dotenv-vault, j'ai beau relire plusieurs fois cette documentation, je n'arrive pas à comprendre où est stocker la configuration 🤔.


5 minutes après, je pense avoir compris, la libraire dotenv-vault est basé sur le service SaaS https://www.dotenv.org/.


5 minutes après, #JaiLu Dotenv Vault vs Infisical | Dotenv.

En 2024, quelle est la librairie JavaScript de configuration management la plus populaire ? #librairie, #JeMeDemande, #node, #javascript, #coding

Dans l'application web que je développe pour Value Props, je n'utilise actuellement aucune librairie de configuration pour l'app.

J'utilise uniquement process.env.CONFIG_PARAM || "default value".

En contexte, cela ressemble à ceci.

import nodemailer from "nodemailer";

let transporter;

if (process.env?.SMTP_USER && process.env?.SMTP_PASS) {
    transporter = nodemailer.createTransport({
        host: process.env.SMTP_HOST || "127.0.0.1",
        port: process.env.SMTP_POST || 1025,
        secure: true,
        auth: {
            user: process.env.SMTP_USER,
            pass: process.env.SMTP_PASS
        }
    });
} else {
    transporter = nodemailer.createTransport({
        host: process.env.SMTP_HOST || "127.0.0.1",
        port: process.env.SMTP_POST || 1025,
        secure: false
    });
}

export default transporter;

Je commence maintenant à utiliser des paramètres de configuration à différents endroits. Conséquence, je me dis que c'est peut-être maintenant le bon moment pour utiliser une librairie de configuration du type Convict.

Pourquoi j'ai cité Convict ? Parce que c'était le choix que j'avais fait en 2019, dans le projet gibbon-mail.

#JeMeDemande qu'elle est en 2024, la librairie [Javascript] de type environment-variables, configuration-management la plus populaire actuellement.

Pour répondre à cette question, j'ai commencé à faire une recherche sur npm trends et il m'a proposé la suggestion suivante config vs configstore vs convict vs cross-env vs dotenv

dotenv semble se détacher assez franchement.

dotenv et cross-env sont listés dans Delightful Node.js packages and resources.

Je constate que cross-env est abandonné et conseille ici de migrer vers env-cmd.

Je vais demander avis à des amis, mais pour le moment, je pense que je vais utiliser dotenv.


Quelque heure plus tard :

Journal du mercredi 01 mai 2024 à 14:05 #coding, #template, #obsidian, #javascript, #JeMeDemande

En lien avec 2024-05-01_1205 :

#JeMeDemande si je peux utiliser le moteur de template EJS pour parser et render le template présent dans le markdown pour ensuite lancer le rendu markdown.

Je n'ai pas réussi à trouver mention de fonctionnalité de loop ou condition dans la documentation du plugin Obsidian Templater mais après lecture de ces deux threads :

il semble que Templater supporte bien les fonctionnalités permettant d'implémenter des loop et condition dans un template.

Je pense que cela va me servir de source d'inspiration pour 2024-05-01_1205.

Je découvre la newsletter de l'émission "Le dessous des cartes" #actualité, #feed, #JaiDécouvert

#JaiDécouvert vient le partage d'un ami, l'existance de la Newsletter de l'émission Le dessous des cartes.

Émission que j'adore mais je réalise que je ne la regarde pas assez !
Pour tenter de résoudre ce problème, j'ai essayé d'ajouter le flux RSS de l'émission à mon instance miniflux, mais malheureusement, le flux RSS du site semble ne pas fonctionner 😔.

Finalement, je me suis abonné à la newsletter, bien que j'aurais préféré un abonnement RSS.

Journal du mercredi 01 mai 2024 à 13:05 #coding, #javascript, #templating, #JeMeDemande, #JaiDécouvert

En lien avec 2024-05-01_1205, dans le code source du plugin Obsidian nommé Templater, #JaiDécouvert la librairie Javascript rusty_engine :

A Javascript templating engine in WASM

En dehors de l'aspect performance, je me demande si cette librairie serait plus adaptée à mes besoins que EJS 🤔.

Journal du mercredi 01 mai 2024 à 12:05 #markdown, #mdsvex, #svelte, #SSR, #pensée, #veille-technologique, #JeMeDemande, #JaimeraisUnJour, #JaiDécouvert

#JeMeDemande si la librairie mdsvex me permet d'implémenter de manière agréable des nouveaux components qui ont la capacité d'aller chercher des données en backend, typiquement une base de données PostgreSQL.
J'aimerais que la requête soit décrite directement dans le markdown. Je souhaite aussi que le composant soit rendu seulement côté serveur (SSR).

J'aimerais pouvoir implémenter quelque chose comme :

# Mon titre

Mon paragraphe

``sql posts
SELECT title FROM posts ORDER BY created_at LIMIT 10
``

<ul>
    {#each posts as post}
        <li>{post}</li>
    {/each}
</ul>

(inspiration de https://evidence.dev/).

#JeMeDemande si mdsvex serait adapté pour cet objectif.

Je viens de voir ce thread Thoughts on Mdsvex moving away from Unified : sveltejs. Il contient un lien vers Penguin-flavoured markdown · pngwn/MDsveX · Discussion #293 · GitHub qui me semble intéressant #JaimeraisUnJour prendre le temps de le lire.

Autre thread What remark and rehype plugins are people using? · pngwn/MDsveX · Discussion #354 · GitHub.

#JeMeDemande si remark ou markdown-it serait mieux adapté pour atteindre mon objectif 🤔.

#JaiDécouvert (ou plutôt redécouvert) https://github.com/unifiedjs.

#JeMeDemande si je peux utiliser le moteur de template EJS pour parser et render le template présent dans le markdown pour ensuite lancer le rendu markdown.

Evidence semble implémenter un mécanisme qui ressemble à mon objectif et est codé en Svelte.

Journal du mercredi 01 mai 2024 à 11:05 #feed, #actualité, #JaimeraisUnJour

Voici une liste non exhaustive de média que je n'utilise pas comme source d'information :

  • LinkedIn
  • Twitter
  • Medium
  • salons Discord

Et une première liste non exhaustive de mes sources d'informations :

Voir aussi Je suis abonné à ces chaines YouTube - Jardin numérique de Stéphane Klein/.

Cette note éhémères est très incomplète, je l'ai noté rapidement sur le vif.
#JaimeraisUnJour réaliser un document bien plus exaustif.

Journal du mercredi 01 mai 2024 à 10:05 #cms, #headless-cms, #svelte, #JaiDécouvert, #headless

En faisant la recheche suivant sur le subreddit Svelte : "markdown" #JaiDécouvert ici le projet Sveltia :

Alternative to Netlify/Decap CMS. Modern, fast, lightweight, Git-based headless CMS. Free & open source. UX-driven development. Made with Svelte.


#JaiDécouvert aussi ici le projet Sanity :

Sanity Studio – Rapidly configure content workspaces powered by structured content

basé sur ReactJS, après une première lecture rapide, je ne n'arrive pas à comprendre si c'est un #headless-cms ou non 🙅‍♀️.


En lien : l'issue de mon backlog nommée Étudier, tester, mettre en oeuvre tina.io

Je découvre "Carta" (Svelte Markdown editor) #JeMeDemande, #markdown, #svelte, #editor, #codemirror, #JaiDécouvert

En faisant la recheche suivant sur le subreddit Svelte : "markdown" #JaiDécouvert ici la librairie carta :

A lightweight, fast and extensible Svelte Markdown editor and viewer.

La démo se trouve ici : https://beartocode.github.io/carta/

#JeMeDemande si je dois tester cette librairie pour réaliser l'objectif du projet Projet -1 "CodeMirror, autocomplétion, Svelte" 🤔.


J'ai regardé le code source de l'extension Slash et j'ai l'impression que je pourrais m'inspirer de cette implémentation pour créer une extension permettant d'implémenter un "sélécteur de ressource", "à la" Obsidian pour le projet Value Props 🤔.

D'après toi, quel problème a cherché à résoudre Svelte ? #svelte, #coding, #OnMePoseLaQuestion

D'après toi, quel problème a cherché à résoudre Svelte ?

Comme le dit ici Richard Harris :

The first version of Svelte was all about testing a hypothesis — that a purpose-built compiler could generate rock-solid code that delivered a great user experience. The second was a small upgrade that tidied things up a bit.

Je pense que la réponse se trouve dans ce billet https://svelte.dev/blog/frameworks-without-the-framework

D'après ce que j'ai compris il voulait tester si une librairie compilé pourrait :

  • Générer des projets plus petit
  • Générer des projets plus rapide
  • Apporté des choses élégantes

Après les résultats de ce POC et 8 ans plus tard, je pense que les réponses à ces questions étaient oui.

J'ai lu ce billet il y a plusieurs année, je n'ai pas pris le temps de le relire.

Tu utilises quoi pour publier ton Obsidian sur notes.sklein.xyz ? #OnMePoseLaQuestion, #obsidian, #quartz, #déploiement

Pour le moment, j'utilise Obsidian Quartz pour déployer https://notes.sklein.xyz.

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

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

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

Je m'interroge, pourquoi tant de beaux projets sont codés en Closure ? #SansRéponse, #JeMeDemande, #coding, #closure

Je m'interroge de cette observation : pourquoi un nombre assez important de projets très intéressants comme LogSeq, Metabase, Penpot sont codés en Closure 🤔.

Je me demande si LogSeq utilise CodeMirror 🤔 #coding, #JeMeDemande

En pensant au projet Projet -1 "CodeMirror, autocomplétion, Svelte", je me suis demandé si le projet OpenSource LogSeq utilise ou non CodeMirror.

Je suis aller voir le code source et j'ai constaté que la réponse est oui, LogSeq utilise CodeMirror. J'ai un peu plus creusé et je suis tombé dans cette partie du code qui je pense implémente la fonctionnalité d'auto complétion de l'éditeur de LogSeq.

Problème 😔, je n'ai aucune connaissance dans le langage Closure et il m'est difficile de comprendre cette implémentation et de m'en servir dans mon POC.

Svelte n'a pas de runtime, il est compilé #svelte, #ReactJS, #VueJS, #comparaison

D'après ce que j'ai compris, les framework framework VueJS et ReactJS utilisent des runtime. Ce n'est pas le cas de Svelte qui est un framework qui nécessite une phase de compilation, il n'utilise pas de runtime.

C'est une différence majeure entre les frameworks VueJS et ReactJS versus Svelte.

Je dis cela avec des pincettes, mais il me semble que cela permet à Svelte d'implémenter des solutions "élégantes" non possibles avec runtime. À vérifier…

Aller plus loin sur ce sujet :

  • Extrait de Svelte 3: Rethinking reactivity :

    Svelte is a component framework — like React or Vue — but with an important difference. Traditional frameworks allow you to write declarative state-driven code, but there's a penalty: the browser must do extra work to convert those declarative structures into DOM operations, using techniques like virtual DOM diffing that eat into your frame budget and tax the garbage collector.

    Instead, Svelte runs at build time, converting your components into highly efficient imperative code that surgically updates the DOM. As a result, you're able to write ambitious applications with excellent performance characteristics.

  • Frameworks without the framework: why didn't we think of this sooner? You can't write serious applications in vanilla JavaScript without hitting a complexity wall. But a compiler can do it for you.

  • Virtual DOM is pure overhead

Pourquoi j'apprécie le framework SvelteKit ? #svelte, #SvelteKit, #coding, #routing, #opinion, #Jaime, #Jutilise, #MaStack, #JaimeraisUnJour

La partie que je préfère de plus dans le framework SvelteKit ce sont les fonctionnalités décrient dans la section Routing et Advanced routing de la documentation de SvelteKit.

Si vous survolez ces pages de documentation, vous allez peut-être me poser la question « ok et alors, c'est quoi le truc cool ? ». Je ne vais pas vous répondre maintenant, parce que c'est intégralité de ces deux pages de documentations qui faut lire avec une très grande attention. En utilisant SvelteKit dans plusieurs projets, j'ai appris à découvrir toutes les petites subtilités du système de rooting de SvelteKit.

#JaimeraisUnJour prendre le temps de paraphraser avec mes mots cette documentation pour partager avec vous l'enthousiasme que j'ai à l'égard de SvelteKit.

Est-ce que Nuxt ou NextJS sont moins élégants que SvelteKit ? Pour le moment, je ne sais pas, je n'ai pas pris assez de temps pour pousser assez loin la comparaison. C'est l'objectif de Projet - 2 "Réaliser un petit projet basé sur NextJS pour le comparer avec SvelteKit".

Un ami est heureux d'utiliser Nuxt (VueJS), je suis heureux pour lui 🙂 #réaction, #Nuxt, #coding, #JeMeDemande

Un ami me partage la satisfaction qu'il a à utiliser la version 3 de Nuxt :

Nuxt3 est devenu magnifique avec le combo Nuxt/Font, Nuxt/i18n, Tailwind CSS, sa couche server pour proxy une api sous le boisseau. Ça en fait un framework redoutable.

Suite à la lecture de ce commentaire, #JeMeDemande s'il est autant satisfait de Nuxt3 que je le suis de SvelteKit 🤔.

Je souhaite depuis longtemps — début 2023 — réaliser ces deux projets :

pour être en capacité de donner mon opinion éclairée de comparaison entre ces trois frameworks NextJS, Nuxt et SvelteKit.

Pour le moment, je me contente de recevoir avec plaisir le bonheur de mon ami et je garde en mémoire son expérience, pour la partager le jour où un ami de demandera mon avis au sujet de Nuxt.

Première itération d'un POC de CodeMirror avec l'autocomplétion #svelte, #codemirror, #POC, #coding, #publication, #iteration, #JaiPublié, #SiJeDevaisParier

#JaiPublié https://github.com/stephane-klein/svelte-codemirror-autocomplete-poc qui contient mes 2 premières heures de travail sur le #POC Projet 1 - "CodeMirror, autocomplétion, Svelte".

J'ai réussi à setup le projet, mais pour le moment, je n'arrive pas à bien configurer la fonctionnalité autocomplete de CodeMirror. Par exemple, je n'arrive pas à ne pas afficher les caractères [[ dans le popup qui affiche la liste des suggestions.

Idéalement, pour expliquer, j'aimerais réaliser un screencast.

Je pense que ce POC va me prendre du temps. Je pense que je vais devoir étudier en profondeur l'API de @codemirror/autocomplete.

#SiJeDevaisParier, mon estimation de durée 🤔 serait de 8h à 20h de travail.

Journal du lundi 29 avril 2024 à 16:04 #JeMeDemande

Quand je dois gérer seul, et d'autant plus en équipe, une grosse quantité de documents administratifs, je rencontre des difficultés pour classer les fichiers et retrouver ces fichiers dans une base hiérarchique.

J'ai déjà écrit sur ce problème dans l'issue suivante : Écrire un billet de réflexion au sujet des forces et faiblesses du classement de documents dans des dossiers versus un système à plat avec des tags.

Voici ce que j'écrivais le 6 août 2023 :

Difficultés que j'ai rencontrées ces derniers mois (sous forme de bullet point) :

  • en situation pro :
    • difficultés à construire une taxinomie (organisation et namming des dossiers, sous dossiers) pour classer les documents "Ressource Humaine" de mon équipe
    • difficulté à naviguer dans cette taxinomie
    • types de documents classés
      • contrat de travail
      • promesse d'embauche
      • budget
      • avenant de contrat de travail
    • ces documents étaient classés dans le Google Drive de la société
    • difficultés pour coopérer
      • mes collaborateurs avaient des difficultés à comprendre rapidement la taxinomie
      • la responsable RH archivait les mêmes documents dans un dossier "à elle", elle utilisait sa propre taxonomie
      • je souhaitais "merger" ces deux dossiers, mais comme aucune taxinomie n'est évidente, nous n'avons même pas pris le temps d'essayer de "merger" nos dossiers
  • dans une assiociation
    • j'ai hérité d'un Google Drive avec une taxinomie définie par l'ancien président du club
    • j'ai des difficultés à retrouver les documents
      • exemples :
        • est-ce qu'une fiche de paie doit être classée dans le dossier "comptabilité" ou "administratif" ?
        • comment lister tous les documents qui concernent le joueur John Doe ?
        • comment lister tous les documents de la saison 2022/2023 ?

Actuellement, mon intuition de réponse à ce problème est :

  • ne pas mettre en oeuvre une taxinomie, mais utiliser un thésaurus, c'est-à-dire :
    • organiser "à plat" (sans dossier) les documents
    • attribuer des tags (labels) sur ces documents
    • dans une "sidebar" :
      • proposer des recherches sauvegardées, exemples :
        • contrats de travailles
        • John Doe
        • 2022/2023
        • ...
      • permettre aussi de lister des tags favoris dans cette sidebar

Aujourd'hui, #JeMeDemande si Obsidian pourrait être adapté pour ranger des documents administratifs.
Avec ce type d'outil, il serait possible de ranger les documents dans de la "prose". Cela permettrait de retrouver ces documents via plusieurs méthodes, avec du contexte autour du document…. #JeMeDemande s'il est possible d'attacher des tags à des pièces jointes 🤔.

Journal du lundi 29 avril 2024 à 11:04 #svelte, #coding, #yagni, #principes

Dans l'application web de mon projet Value Props, j'utilise la librairie sveltekit-i19n qui propose la fonctionnalité suivante :

Module-based – your translations are loaded for visited pages only (and only once!)

Actuellement, j'ai configuré les modules suivants :

❯ tree src/lib/translations
src/lib/translations
├── en
│   ├── all_data.json
│   ├── buttons.json
│   ├── login.json
│   ├── menu.json
│   ├── my_password.json
│   ├── my_preferences.json
│   ├── question_answers.json
│   ├── question_setup.json
│   ├── question_status.json
│   ├── space_data.json
│   ├── space_edit.json
│   ├── space.json
│   ├── space_members.json
│   ├── space_questions.json
│   ├── spaces.json
│   ├── space_slides.json
│   └── space_status.json
├── fr
│   ├── all_data.json
│   ├── buttons.json
│   ├── login.json
│   ├── menu.json
│   ├── my_password.json
│   ├── my_preferences.json
│   ├── question_answers.json
│   ├── question_setup.json
│   ├── question_status.json
│   ├── space_data.json
│   ├── space_edit.json
│   ├── space.json
│   ├── space_members.json
│   ├── space_questions.json
│   ├── spaces.json
│   ├── space_slides.json
│   └── space_status.json
├── index.js
├── lang.json
└── README.md

3 directories, 37 files

Je viens à nouveau de me casser la tête parce que j'ai besoin d'une traduction présente dans le module space_data dans une page qui ne fait pas partie de ce module.
Cela m'arrive très très souvent et je m'en veux, je n'ai pas respecté le principe YAGNI !

Dès le début d'l'implémentation de cette application, j'ai voulu faire les choses "bien" et j'ai commencé à utiliser la fonctionnalité "module" de la librairie !

Je suis persuadé que c'est une optimisation inutile pour le moment. Le découpage en module est difficile.

Encore une expérience qui me confirme que je dois toujours suivre par défaut le principe suivant du Zen of Python :

Flat is better than nested.

Je pense me créer pour ce projet une tâche de dette technique, de refactoring dont le but sera de migrer tous les modules vers un seul module — un seul fichier).

Seulement, le jour où je travaillerai sur la performance de chargement des pages, je réfléchirai à un découpage "intelligent" des traductions en modules.

Journal du lundi 29 avril 2024 à 10:04 #BenjaminFranklin, #JeMePoseLaQuestion

Dans le livre How to Make Notes and Write, je lis :

You should read with a pen in your hand and enter… short hints of what you feel… may be useful; for this be the best method of imprinting [them] in your memory. — #BenjaminFranklin

J'aimerais suivre ce conseil.
Depuis des années, je n'arrive pas à mettre en place cette pratique à cause des difficultés suivantes :

  • Je ne pratique pas la prise de notes sur papier.
  • Je lis souvent sur mon smartphone, dans le canapé, dans le lit, dans le metro… et dans ce contexte, il m'est difficile de prendre des notes.
  • Quand je lis un livre papier, je suis généralement allongé, je ne lis pas sur une table et dans ce contexte, il m'est difficile de prendre des notes.
  • De par mon éducation, je n'aime pas écrire sur un livre, j'ai l'impression de le dégrader. Je sais que c'est sans doute une mauvaise habitude que cela n'a pas d'importance.
  • La prise de notes sur une liseuse Kindle n'est pas pratique.

J'aime prendre des notes avec un clavier.

Je pense que je devrais lire sur une table, avec mon laptop ouvert.
#JeMePoseLaQuestion : dans ce cas, est-ce que je dois arrêter de lire quand je ne suis pas dans ce contexte de lecture 🤔 .


À propos de cette citation, ChatGPT me dit :

The quote you mentioned from Benjamin Franklin, advising to read with a pen in hand and jot down useful notes, appears to be a slightly altered version of a passage from his writings. The more commonly cited version of this quote is: "I would advise you to read with a pen in hand, and enter in a little book short hints of what you find that is curious, or that may be useful; for this will be the best method of imprinting such particulars in your memory." This advice underscores the importance of actively engaging with reading material to enhance memory retention and personal learning.

It seems that this particular expression of thought isn't directly sourced from Franklin's most famous works like "Poor Richard's Almanack" or "The Autobiography of Benjamin Franklin." Instead, it reflects a general principle he emphasized about the value of learning and recording insights for personal development. This approach to learning was typical of Franklin's style, promoting continuous personal improvement and practical application of knowledge.

For more details on the context or variations of this quote, you might find it helpful to explore collections of Franklin's lesser-known writings or advice, where such insights often appear.

Journal du samedi 27 avril 2024 à 22:55 #Fediverse, #JaiDécouvert, #livre, #JaiLu

Ici sur #Fediverse, #JaiDécouvert le #livre How to Make Notes and Write de Dan Allosso.

#JaiLu les chapitres suivants :

  • I. Main Body
  • 1. Inspiration, Interest, Anxiety 5
  • 2. Writing is Thinking 14
  • 3. Working with Ideas 22
  • 4. Highlighting and Taking Notes

Pour le moment je trouve cela très intéressants. Je vais essayer de mettre cela en pratique, si possible en mode WorkInPublic.

Journal du jeudi 25 avril 2024 à 20:44 #dedibox, #hosting, #selfhosting, #scaleway

Le 25 octobre 2020, j'ai commandé et installé un serveur Dedibox (Start-2-S-SSD - Intel® C2350 (Avoton) - 4 GB DDR3 - 1x 120 GB SSD) que j'ai nommé perier

Position du serveur : Datacenter: AMS1, Room: Hall 6 12, Rack: 6.12.53, Block: C, Position: 8.

Prix de cette machine : 5,48 € TCC par mois, 66 € / an.
Coût total entre octobre 2020 et avril 2024 : 42 mois x 5,48 € = 230 €.

Aucune panne, pendant 42 mois.

J'utilisais cette machine principalement pour du stockage web statique.
J'y hébergeais https://sklein.xyz.

Ce jeudi 25 avril 2024, cette machine est tombée en panne, réponse du support :

Navré de la situation, il s'agit d'une erreur matérielle qui ne permet pas la récupération de données. Pourriez-vous vérifier l'état de vos sauvegardes.

Chose surprenante, le même modèle de serveur de mon ami AM a, lui aussi, une panne matérielle, exactement au même moment que moi.

Autre chose surprenante, la panne est tombée le même jour que cet incident déclaré sur https://status.scaleway.com/ :

[DEDIBOX] - Switch down in AMS1 Hall 6 rack B53
Resolved - This incident is resolved
Apr 25, 14:28 CEST
Investigating - Dedibox switch located in AMS1 Hall 6 rack B53 is currently down
Apr 25, 10:20 CEST

Le support m'a dit qu'il n'y a aucun lien entre cette panne et la panne matérielle de mon serveur.
J'en doute 🤔.


Je ne suis pas surpris de cette panne, d'après mes souvenirs, cette machine était reconditionnée, très vieille, j'avais bien conscience qu'une panne pouvait arriver à tout moment.

C'est la première fois que j'ai ce type de panne définitive depuis que j'utilise des serveurs dédiés Dedibox Scaleway, depuis 2006.


Au passage, j'ai perdu tout mon contenu de https://stats.sklein.xyz/

Journal du samedi 13 avril 2024 à 20:00 #bonheur, #philosophie, #OnMaPartagé, #JaiÉcouté

#OnMaPartagé et #JaiÉcouté l'intégralité de André Comte-Sponville, la philosophie au service du bonheur de André Compte-Sponville. Je l'ai tellement appricié que je l'ai partagé à plusieurs amis. Je l'ai écouté au moins 3 fois.

Sujets abordés :

  • 02:07 Une enfance malheureuse
  • 06:23 La responsabilité du malheur
  • 09:09 L’hystérie : mythe ou réalité ?
  • 13:06 L’expérience de psychanalyse
  • 14:46 Rencontrer la philosophie
  • 16:28 Perdre la foi
  • 23:16 La quête de sens
  • 28:23 La peur de rater sa vie
  • 31:04 Les échecs
  • 32:03 L’échec amoureux
  • 32:36 La réussite de ses proches
  • 34:15 Doit-on accepter d’être malheureux ?
  • 40:12 Le deuil
  • 44:37 Relâcher nos attentes
  • 47:43 Le réel est-il condamné à nous décevoir ?
  • 51:27 Vivre sa vie ou rêver sa vie ?
  • 01:06:02 L’échec politique
  • 01:09:39 Affiner ses positions politiques
  • 01:15:21 Comment progresser ?

Journal du samedi 06 avril 2024 à 20:00 #software-engineering

Article publié sur https://sklein.xyz/fr/posts/2024-04-06_spike-and-learn-day/


Concept que mon équipe et moi avions nommé "Spike and Learn day"

Quand j’étais CTO chez Spacefill, en mai 2021, j’ai mis en place avec mes collègues un rituel que nous avons nommé “Spike and Learn day”.

Un vendredi sur deux — soit 10 % du temps de travail — chaque développeur pouvait librement décider de consacrer sa journée à l’apprentissage d’une nouvelle chose, tester une idée, travailler sur de la dette technique, ou implémenter en autonomie des choses qu’il pensait utiles pour la société.

Pendant cette journée, le développeur n’avait pas à suivre le sprint, ni la roadmap, c’était un espace de liberté.
Les sujets pouvaient être aussi des initiatives d’amélioration produits.

Limites : les sujets devaient être en rapport avec des stacks technologiques utilisés ou potentiellement utilisable par la société (exemple, l’étude d’un moteur de jeu vidéo n’était pas autorisé, car il y avait peu de chance que ça soit utile au business de la société).

Précision importante : l’intégration du résultat de ces journées « Spike and Learn » pouvait être refusé ou non priorisé par l’équipe produit ou non accepté lors de la phase de review par les autres développeurs. Cela faisait partie du jeu de l’expérimentation.

Si un “Spike and Learn day” tombait un jour férié ou pendant les congés d’un développeur, la journée était considérée comme perdue.

Cette idée était largement inspirée de l’initiative de Google nommée “20% Project”.

Pourquoi le mot “spike” ? J’ai puisé le concept de Spike dans le Extreme Programming — qui m’avait été souflé par Ronan —, pour en avoir une définition, je vous conseille l’article What is Spike in Scrum? (archive).

Initialement, j’avais prévu mettre à disposition des projets bootcamps dans lesquels les développeurs auraient pu puiser pour la partie “learn” de leurs journées.
J’envisageais, par exemple, des sujets DevOps, exploration de Docker, déployer un serveur de A à Z via Vagrant, ou alors de recontruire les bases de la stack web employé par la société depuis zéro…
Mais malheureusement — et Claire me l’a souvent rappelé 😉 — en 2 ans, je n’ai produit aucun bootcamp 😭 !

Ajustement au cours du temps

Avec l’expérience, nous avons décidé — quand c’était possible — de placer cette journée en fin de sprint afin de ne pas “casser” sa dynamique.

Ce qui donnait l’emploi du temps théorique suivant :

  • Travail sur les issues du Sprint Scrum du lundi de la semaine 1 au jeudi matin de la semaine 2
  • Jeudi après-midi de la semaine 2 : Sprint rétrospective et Sprint planning
  • Vendredi de la semaine 2 : “Spike and Learn day”

Quels ont été les effets de cette initiative ?

D’après ce que j’ai pu observer ou ce qui m’a été dit, je pense que cette initiative était plutôt appréciée des développeurs.

J’ai pu noter que la plupart des développeurs avaient leurs préférences :

  • Certains privilégiaient fortement des activités de dette technique
  • D’autres préfèraient terminer une issue en retard du sprint
  • Et d’autres préféraient explorer de nouvelles choses, tester des fonctionnalités

Les développeurs m’ont remonté une frustration concernant le défi que représente la réalisation d’un projet nécessitant plusieurs jours de travail avec seulement deux jours alloués par mois. De plus, le délai de quinze jours entre chaque session rend difficile la reprise du travail sur le sujet.

J’ai été agréablement surpris de voir que ce rituel ait été respecté sans difficulté majeure pendant plusieurs années. Je n’ai pas souvenir de suppression exceptionnelle de cette journée par l’équipe produit ou de management.

Si j’en ai un jour la possibilité, si je suis à nouveau en responsabilité, je pense que c’est une initiative que je proposerai à nouveau de mettre en place.

Journal du lundi 25 mars 2024 à 20:00 #opinion, #coding, #python, #javascript

Après 11 mois de procrastination, j'ai enfin pris le temps de faire ce script https://github.com/stephane-klein/toggl-report-helper-script

Au départ, j'hésitais entre une implémentation en Python ou en JavaScript. J'ai finalement opté pour JavaScript, car cela correspond à ma nouvelle doctrine.

Même si Python reste le langage que j'affectionne profondément, que je trouve toujours aussi élégant, j'ai pris la décision de me consacrer pleinement à JavaScript.

Journal du samedi 23 mars 2024 à 20:00 #JaiDécouvert

#JaiDécouvert Zotero, et c'est déjà la deuxième fois en deux jours que je tombe dessus. Pour l'instant, je n'ai pas encore pris le temps de me pencher sur son utilité.

Journal du dimanche 10 mars 2024 à 10:29 #iteration

#iteration du Projet GH-382 - Je cherche à convertir en SQL des query de filtre basé sur un système de "tags".

J'ai rédigé la version Française du billet que je souhaite publier : https://a51nxj8cxk.joplinusercontent.com/shares/c0UzIdTp2nlP0H1R7I4o5F.

Version anglaise du billet : https://a51nxj8cxk.joplinusercontent.com/shares/qCbq5t9WA3o4xr8b5CgZjW.

Proposition de titre en FR : "Demande de conseils pour convertir une query filter string sur des tags en SQL, exemple "(tag1 and tag2) or tag3" en SQL"

Proposition de titre en EN : "Need advice on how to convert a filter string query on tags in SQL, for example "(tag1 and tag2) or tag3" in SQL?"

J'ai posté le billet sur https://old.reddit.com/r/PostgreSQL/comments/1bb6qvj/need_advice_on_how_to_convert_a_filter_string/? et aussi sur https://sklein.xyz/fr/posts/2024-03-10_demande-de-conseils-pour-convertir-une-query-filter-string-sur-des-tags-en-sql/

On m'a partagé Peggy qui me semble en effet, intéressant.

Journal du samedi 09 mars 2024 à 10:22 #iteration, #JaiLu

#iteration du Projet GH-382 - Je cherche à convertir en SQL des query de filtre basé sur un système de "tags".

#JaiLu Google Search Operators: The Complete List (44 Advanced Operators)

Je constate que le langage de query de Google support OR, AND, les (……)… En résumé, toutes les fonctionnalités que je souhaite.


Dans l'article How to use advanced syntax on DuckDuckGo Search je comprends que le langage de query de DuckDuckGo supporte les fonctionnalités que je souhaite, mais avec une syntax intéressante, sans doute pratique, mais je la juge moins explicite que celle de Google.


J'ai lu la page Log queries de Loki et je ne la trouve pas adaptée à mon besoin. Cette syntax est trop puissante. Je souhaite quelque chose de plus limité, qui permette seulement d'effectuer des filtres basés sur des tags.


J'ai lu la page Filtering projects de GitHub et je constate que ce langage de query est trop limité, ne correspond pas à mon besoin.


La syntax de recherche de Lobsters est trop limitée par rapport à mon besoin https://lobste.rs/search


Concernant Jira, j'ai commencé ma lecture sur cette page Use advanced search with Jira Query Language (JQL), j'ai ensuite lu :

Le "Jira Query Language (JQL)" est très puissant, même trop puissant par rapport à mon besoin.


J'ai lu la page Filtering de Meilisearch.

La syntaxe est puissante, intéressante.


Après avoir étudié les query search syntax de Google, Duckduckgo, Melisearch, Loki, GitHub, Jira, Lobster je constate que mon besoin est un peu spécifique, car je souhaite effectuer des filtrages seulement sur les lables.

Le moteur de syntaxe qui ressemble le plus à ce que je cherche est le langage de syntaxe de Google.


Mon objectif est de pouvoir appliquer des règles d'appartenance sur les tags.

Journal du samedi 03 février 2024 à 20:00 #JaiDécouvert

#JaiDécouvert SilverBullet.mb.

J'aime cette déclaration dans l'introduction du projet :

SilverBullet is a note-taking application optimized for people with a hacker mindset.

source

Journal du lundi 29 janvier 2024 à 20:00 #linux, #fedora, #bug

Sujet : Doctrine Linux Desktop.

Suite aux bugs décrits dans ma note du 2024-01-28, je pense que si je devais installer un Linux Desktop pour des amis non hackers, comme ma petite amie ou ma mère, je choisirais une version de Fedora n-1.
La dernière version de Fedora est actuellement la numéro 39, donc j'opterais pour la version 38.

Les versions de Fedora sont maintenues pendant un an.
Après six mois, les mises à jour se concentrent exclusivement sur les corrections de bugs et de sécurité, sans mise à niveau du kernel ou des autres composants principaux.

Bien que la version la plus récente de Fedora soit très stable, les mises à jour sont fréquentes et proches des versions upstream.
Cela peut exposer les utilisateurs à des bugs upstream, comme cela m'est arrivé récemment.

Journal du lundi 29 janvier 2024 à 11:09 #iteration

#iteration Projet GH-339 - Implémenter un POC de Automerge.


J'ai une première version de https://github.com/stephane-klein/automerge-playground en vrac, mais qui fonctionne 🙂.

Todo :

J'aimerais à terme réaliser à partir de ce POC un outil comme Toggl basé sur Automerge, avec une version Web + TUI.

Journal du vendredi 17 novembre 2023 à 17:16 #mise, #asdf, #dev-kit

J'ai migré de Asdf vers rtx avec succès 🙂.

Journal du jeudi 16 novembre 2023 à 15:45 #CRDT, #library, #JaiDécouvert

#JaiDécouvert #library CRDT nommé Loro : https://github.com/loro-dev/loro.

Loro draws inspiration from the innovative work of the following projects and individuals:

  • Ink & Switch: The principles of Local-first Software have greatly influenced this project. The Peritext project has also shaped our approach to rich text CRDTs.
  • Diamond-types: The Event Graph Walker (Eg-walker) algorithm from @josephg has been adapted to reduce the computation and space usage of CRDTs.
  • Automerge: Their use of columnar encoding for CRDTs has informed our strategies for efficient data encoding.
  • Yjs: We have incorporated a similar algorithm for effectively merging collaborative editing operations, thanks to their pioneering work.
  • Matthew Weidner: His work on the Fugue algorithm has been invaluable, enhancing our text editing capabilities.
  • Martin Kleppmann: His work on CRDTs has significantly influenced our comprehension of the field.

Passionnant !

Journal du vendredi 06 octobre 2023 à 20:00 #JeMeDemande, #doute, #coding

Cette après midi, j'hésite à migrer le projet sveltekit-tendaro-webshell-skeleton de Javascript vers TypeScript.

Je me demande si :

  • cela en vaut la peine ;
  • étant donné que je n'ai jamais fait pour de vrai un projet en TypeScript, est-ce que je ne risque pas de tomber dans un Yak! 🤔.

Actuellement ma doctrine concernant TypeScript est la suivante.

Si je dois coder et publier une librairie sur npm alors, je choisis TypeScript.
Quand je dis librairie, je parle de librairie qui contient des classes, des fonctions ou des composants importés par d'autres projets.

Pourquoi est-ce que je choisis d'utiliser TypeScript pour les librairies ?

  • Je permets aux développeurs qui utilisent TypeScript dans leur projet, de pouvoir bénéficier de la documentation, l'autocomplétion, la détection des erreurs… de la librairie que j'aurais mise à disposition ;
  • Je n'ai pas vérifié, mais je pense que le typage de TypeScript permet à des outils d'auto générer une grande partie de la documentation d'une librairie.

Si je dois coder une application web, alors pour le moment, je choisis JavaScript.
Le code implémenté dans une application web, n'est généralement pas utilisé par des utilisateurs "externes". Par conséquent, je ne trouve pas très important de mettre à disposition une documentation aux autres développeurs. Je pense qu'à petite taille, l'effort ne vaut pas la peine. Ma réponse est peut-être différente si 10, 20… développeurs contribuent à la même base code 🤔.

  • Généralement, le code d'une application web est plutôt simple, beaucoup de CRUD et peu de librairie complexe.
  • Pour le moment, je pense que l'effort d'ajouter le boilerplate code de typage TypeScript (importer les types, d'ajouter le typage dans le code) ne sera pas compensé par les fonctionnalités de détection d'erreurs , d'autocomplétions et de refactoring que permet TypeScript.

Mais je me dis que je me trompe peut-être, peut-être que si j'essaie, je vais me rendre compte que j'aime bien cela et que cela me fera gagner du temps ou alors améliorera mon confort, mon plaisir de développement 🤔.

Tâches à faire si je souhaite migrer à TypeScript :

  • [ ] Implémenter une déclinaison de sveltekit-ssr-skeleton en TypeScript
  • [ ] Modifier mon environnement Neovim pour activer les fonctionnalités suivantes :
    • [ ] Support de l'autocomplétion TypeScript
    • [ ] Support de la détection des erreurs TypeScript
    • [ ] Support des fonctions de refactoring TypeScript
    • [ ] Affichage en "live" de la documentation des composants, fonctions…

Ressources à lire avant pour avancer sur ce sujet :

Journal du lundi 21 août 2023 à 11:57 #iteration, #projet

Pour le moment, j'ai passé 17h sur le Projet GH-289 - Créer un simulateur de manque à gagner suite à une rupture conventionnelle, licenciement économique ou licenciement simple.

Je ne comprends pas comment j'ai fait pour y passer autant de temps.

Peut-être le cumul de la recherche d'information juridique, le refactoring UX de la page 🤔.

À noter que je ne suis pas satisfait de cette version de l'UX.

Le projet est déployé sur Vercel à l'adresse suivante : https://comparateur-rupture-conventionnelle-cdi.sklein.xyz/

Idée d'un site "Homo Economicus" #Idée

Cela fait plusieurs années que j'aimerais réaliser des petits simulateurs, comme celui que j'ai commencé à implémenter : "Simulateur de rupture conventionnelle à CDI".

J'ai même une idée de nom pour ce site "Home Économicus" : homo-economicus.fr (qui est disponible).

Quelques idées de simulateurs :

Par le passé, j'avais trouvé un comparateur open-source très complet entre vélo, voiture neuve, voiture occasion, voiture électrique, leasing… J'ai fait quelques recherches, je ne retrouve plus 😌.

[ << Page précédente (900) ] | [ Page suivante (2402) >> ]