
Cliquez sur un tag pour affiner votre recherche :
[ << Page précédente (300) ] [ Page suivante (3167) >> ]
Journal du vendredi 22 novembre 2024 à 17:03
Je découvre une nouvelle limitation de Hasura par rapport à PostGraphile.
Hasura permet d'exécuter des fonctions PostgreSQL seulement si leur type de retour est une table. De plus, cette table doit être tracked par Hasura.
Return type: MUST be
SETOF <table-name>
OR<table-name>
where<table-name>
is already tracked.Return type workaround: If the required SETOF table doesn't already exist or your function needs to return a custom type i.e. row set, you can create and track an empty table with the required schema to support the function.
-- from
D'autre part, Hasura doit avoir des permissions d'accès à cette table utilisée en retour de fonction.
Par exemple, Hasura ne supporte pas ce type de configuration :
REVOKE ALL PRIVILEGES ON TABLE foobar FROM hasurauser;
CREATE FUNCTION myfunction() RETURNS SETOF foobar
LANGUAGE sql VOLATILE SECURITY DEFINER
AS $$
SELECT * FROM foobar
$$;
Cette limitation, parmi d'autres, renforce ma préférence pour PostGraphile plutôt que Hasura dans un contexte d'utilisation avec PostgreSQL — PostGraphile supporte uniquement PostgreSQL.
Journal du jeudi 21 novembre 2024 à 17:49
#JaiDécouvert le magazine "Paged Out" « one article == one page » : https://pagedout.institute/ 🙂.
Journal du jeudi 21 novembre 2024 à 17:36
Dans la note 2024-11-20_1102, je disais :
Prochaine étape du Projet 17 : Setup les iOS Requirements de Capacitor sur ce serveur Apple Silicon.
C'est chose faite 🙂.
Le repository poc-capacitor
contient maintenant un script ./scripts/deploy-ios-requirements.sh
qui permet d'exécuter ce script de provisioning sur le serveur Scaleway Apple Silicon distant : /provisioning/_ios.sh
.
Ensuite, j'ai détaillé les étapes pour :
- Uploader le projet sur le Scaleway Apple Silicon distant
- Démarrer l'émulation d'un iPhone 15
- Compiler et lancer l'application Capacitor dans l'émulateur iPhone 15
- Et visualiser l'émulateur via VNC
Tout cela est détaillé ici : https://github.com/stephane-klein/poc-capacitor/tree/f109fb23dc612f486fad0d55ba939b4679841d06?tab=readme-ov-file#launch-application-on-ios
Je teste l'offre Scaleway Apple Silicon
Dans le projet "Projet 17 - Créer un POC de création d'une app smartphone avec Capacitor" je disais :
- Essayer d'utiliser l'offre Apple Mac mini M1 de Scaleway pour builder l'app pour iOS
Voici mon retour d'expérience d'utilisation de l'offre Scaleway Apple Silicon.
Voici la liste des images MacOS disponibles :
$ scw apple-silicon os list
ID NAME LABEL IMAGE URL FAMILY IS BETA VERSION XCODE VERSION
59bf09f1-5584-469d-a0f6-55c8fee1ab81 macos-ventura-13.6 macOS Ventura 13.6 https://scw-apple-silicon.s3.fr-par.scw.cloud/scw-console/os/macos-ventura.png Ventura false 13.6 14
e08d1e5d-b4b9-402a-9f9a-97732d17e374 macos-sonoma-14.4 macOS Sonoma 14.4 https://scw-apple-silicon.s3.fr-par.scw.cloud/scw-console/os/macos-sonoma.png Sonoma false 14.4 15
7a8d85fb-781a-4212-8e47-240ec0c3d23f macos-sequoia-15.0 macOS Sequoia 15.0 https://scw-apple-silicon.s3.fr-par.scw.cloud/scw-console/os/macos-sequoia.png Sequoia true 15.0 16
Voici la liste des types de serveurs disponibles dans la zone fr-par-3
:
$ SCW_DEFAULT_ZONE="fr-par-3" scw apple-silicon server-type list
Name CPU Memory Disk Stock Minimum Lease Duration
M1-M Apple M1 (8 cores) 8.0 GB 256 GB high stock 1 days
Et la liste dans la zone fr-par-1
:
$ SCW_DEFAULT_ZONE="fr-par-1" scw apple-silicon server-type list
Name CPU Memory Disk Stock Minimum Lease Duration
M2-M Apple M2 (8 cores) 16 GB 256 GB high stock 1 days
M2-L Apple M2 Pro (10 cores) 16 GB 512 GB high stock 1 days
Je souhaite installer un serveur de type M1-M
à 0,11 € HT / heure, soit 2,64 € HT / jour, 80,3 € HT / mois.
Lors de ma première tentative, j'ai essayé de créer un serveur avec la commande suivante :
$ scw apple-silicon server create name=capacitor zone=fr-par-3 "$SCW_PROJECT_ID" M1-M 7a8d85fb-781a-4212-8e47-240ec0c3d23f
Invalid argument '46ad009f-xxxxxx': arg name must only contain lowercase letters, numbers or dashes
Suite à cette erreur, j'ai créé l'issue siuvante : Reduce"scw apple-silicon server create" helper message ambiguity.
$ scw apple-silicon server create name=capacitor project-id=${SCW_PROJECT_ID} type=M1-M os-id=7a8d85fb-781a-4212-8e47-240ec0c3d23f zone=fr-par-3
Mais l'OS n'était pas trouvé, je me suis rendu compte que cette image OS n'était pas disponible dans la zone fr-par-3
.
$ SCW_DEFAULT_ZONE="fr-par-3" scw apple-silicon os list
ID NAME LABEL IMAGE URL FAMILY IS BETA VERSION XCODE VERSION
59bf09f1-5584-469d-a0f6-55c8fee1ab81 macos-ventura-13.6 macOS Ventura 13.6 https://scw-apple-silicon.s3.fr-par.scw.cloud/scw-console/os/macos-ventura.png Ventura false 13.6 14
e08d1e5d-b4b9-402a-9f9a-97732d17e374 macos-sonoma-14.4 macOS Sonoma 14.4 https://scw-apple-silicon.s3.fr-par.scw.cloud/scw-console/os/macos-sonoma.png Sonoma false 14.4 15
Voici finalement la commande de création de serveur qui a fonctionné avec succès :
$ scw apple-silicon server create name=capacitor project-id=$SCW_PROJECT_ID type=M1-M os-id=e08d1e5d-b4b9-402a-9f9a-97732d17e374 zone=fr-par-3
ID bb34d8ef-6305-4104-801c-1cf1b6b0f99f
Type M1-M
Name capacitor
ProjectID 46ad009f-xxxx
OrganizationID 215d7434-xxxx
IP 51.xxx.xxx.xxx
VncURL vnc://m1:xxxx@51.xxx.xxx.121:5900
SSHUsername m1
SudoPassword xxxxxxx
Os ID e08d1e5d-b4b9-402a-9f9a-97732d17e374
Name macos-sonoma-14.4
Label macOS Sonoma 14.4
ImageURL https://scw-apple-silicon.s3.fr-par.scw.cloud/scw-console/os/macos-sonoma.png
Family Sonoma
IsBeta false
Version 14.4
XcodeVersion 15
CompatibleServerTypes:
[M1-M M2-M M2-L]
Status starting
CreatedAt now
UpdatedAt now
DeletableAt 23 hours from now
DeletionScheduled false
Zone fr-par-3
Voici le serveur créé :
$ scw apple-silicon server list
ID TYPE NAME PROJECT ID
bb34d8ef-6305-xxxxx M1-M capacitor 46ad009f-54bc-4125-xxxxxx
Le serveur est passé en ready
après environ 1min.
$ scw apple-silicon server get bb34d8ef-6305-xxxxxxx
...
CompatibleServerTypes:
[M1-M M2-M M2-L]
Status ready
...
DeletableAt 23 hours from now
DeletionScheduled false
...
Je peux me connecter directement en ssh au serveur :
$ ssh m1@xxx.xxx.xx.xxx
Last login: Wed Nov 20 16:22:10 2024
m1@bb34d8ef-6305-4104-801c-1cf1b6b0f99f ~ % uname -a
Darwin bb34d8ef-6305-4104-801c-1cf1b6b0f99f 23.4.0 Darwin Kernel Version 23.4.0: Fri Mar 15 00:12:41 PDT 2024; root:xnu-10063.101.17~1/RELEASE_ARM64_T8103 arm64
Je peux aussi me connecter au serveur via VNC (lien vers la documentation à ce sujet).
Installation des dépendances sous Fedora :
$ sudo dnf install -y remmina remmina-plugins-vnc
J'utilise le client VNC nommé Remmina.
$ remmina -c vnc://m1:xxxxx@51.xxxx.xxx.xxxx:5900
Les paramètres vnc
et le mot de passe de l'user m1
sont disponibles dans la sortie de :
$ scw apple-silicon server get bb34d8ef-6305-xxxxxxx -o json
{
"id": "bb34d8ef-6305-4104-xxxx-xxxxxxxxx",
...
"vnc_url": "vnc://m1:xxxx@xxx.xxx.xxx.xxx:5900",
"ssh_username": "m1",
"sudo_password": "bTgkdiVUs7yT",
...
}
Il est possible de coller le mot de passe via la fonctionnalité « Envoyer le contenu du presse-papiers comme une saisie au clavier » de Remmina :
Attention, la réinstallation d'un serveur Apple Silicon prend au moins 45min.
J'ai implémenté des scritps de déploiement d'un Apple Silicon dans le POC : poc-capacitor
.
Prochaine étape du Projet 17 : Setup les iOS Requirements de Capacitor sur ce serveur Apple Silicon.
Journal du mardi 19 novembre 2024 à 23:50
#iteration Projet 17 - Créer un POC de création d'une app smartphone avec Capacitor.
Dans la note 2024-11-19_1029, je disais :
Pour utiliser Capacitor, j'ai besoin d'installer certains éléments.
In order to develop Android applications using Capacitor, you will need two additional dependencies:
- Android Studio
- An Android SDK installation
Je me demande si Android Studio est optionnel ou non.
La réponse est non, Android Studio n'est pas nécessaire, ni pour compiler l'application, ni pour la lancer dans un émulateur Android. Android SDK est suffisant.
J'ai utilisé le plugin Mise https://github.com/Syquel/mise-android-sdk pour installer les "Android Requirements" de Capacitor. Les instructions détaillées pour Fedora sont listées dans le README.md du repository : https://github.com/stephane-klein/poc-capacitor/tree/4238e80f84a248fdb9e5bb86c10bea8b9f0fdade.
Installation de Android Studio sous Fedora
Dans le Projet 17 - Créer un POC de création d'une app smartphone avec Capacitor, il semble que j'ai besoin d'installer Android Studio.
J'ai exploré la méthode Asdf / Mise, mais j'ai rencontré des difficultés : 2024-11-19_1029 et 2024-11-19_1102.
J'ai ensuite constaté ici que RPM Fusion ne propose pas de package Android Studio. J'ai ensuite cherché sur Fedora COPR, mais j'ai trouvé uniquement de très vieux packages.
J'ai lu ici qu'Android Studio est disponible via Flatpak sur Flathub : https://flathub.org/apps/com.google.AndroidStudio. Je n'avais pas pensé à Flatpak 🙊.
Après réflexion, je trouve cela totalement logique que Android Studio soit distribué via Flatpak.
Voici le repository GitHub de ce package : https://github.com/flathub/com.google.AndroidStudio. Il semble être bien maintenu par Alessandro Scarozza « Senior Android Developer, Android Studio Flatpak Mantainer and old Debian Linux user ».
Le package contient la version 2024.2.1.11
d'Android Studio, j'ai vérifié, elle correspond bien à la dernière version disponible sur https://developer.android.com/studio.
Voici ce que donne l'installation :
$ flatpak install com.google.AndroidStudio
Looking for matches…
Remotes found with refs similar to ‘com.google.AndroidStudio’:
1) ‘flathub’ (system)
2) ‘flathub’ (user)
Which do you want to use (0 to abort)? [0-2]: 1
com.google.AndroidStudio permissions:
ipc network pulseaudio ssh-auth x11 devices multiarch file access [1]
dbus access [2]
[1] home
[2] com.canonical.AppMenu.Registrar, org.freedesktop.Notifications, org.freedesktop.secrets
ID Branch Op Remote Download
1. [✓] com.google.AndroidStudio.Locale stable i flathub 5,6 Ko / 57,2 Ko
2. [✓] com.google.AndroidStudio stable i flathub 1,3 Go / 1,3 Go
Installation complete.
Journal du mardi 19 novembre 2024 à 11:02
Suite de 2024-11-19_1029.
J'ai testé https://github.com/Syquel/mise-android-sdk. Il dépend de yq. Cela m'embête un peu d'ajouter cette dépendance dans les "Prerequisite" de mon projet.
À la suite de cela, j'ai testé https://github.com/huffduff/asdf-android-sdk, mais je suis tombé sur le problème suivant, ce qui ne m'a pas donné confiance : "Bad URL in "asdf plugin add android-sdk https://github.com/tommyo/asdf-android-sdk.git" instruction".
Échec avec arcticShadow/asdf-android
Ensuite, j'ai testé https://github.com/arcticShadow/asdf-android.
$ mise plugins install https://github.com/arcticShadow/asdf-android.git
$ mise ls-remote android
1
#JeMeDemande pourquoi version 1
? 🤔
$ mise install android latest
mise ERROR latest not found in mise tool registry
mise ERROR Run with --verbose or MISE_VERBOSE=1 for more information
$ mise install android 1
curl: (22) The requested URL returned error: 404
mise ERROR ~/.local/share/mise/plugins/android/bin/download failed
* Downloading android release 1...
curl: (22) The requested URL returned error: 404
asdf-android: Could not download https://dl.google.com/android/repository/commandlinetools-linux-1_latest.zip
mise ERROR failed to install android@1
mise ERROR ~/.local/share/mise/plugins/android/bin/download exited with non-zero status: exit code 1
mise ERROR Run with --verbose or MISE_VERBOSE=1 for more information
Suite à cela, j'ai posté cette issue : "mise ERROR latest not found in mise tool registry · Issue #6 · arcticShadow/asdf-android · GitHub".
À ce moment précis, je me suis dit que je suis en train de tomber dans un Yak!.
Échec avec huffduff/asdf-android-sdk
Je retourne au projet https://github.com/huffduff/asdf-android-sdk.
$ mise plugin add android-sdk https://github.com/huffduff/asdf-android-sdk
$ mise ls-remote android-sdk
2.1
J'ai consulté la page https://github.com/AndroidSDKSources/android-sdk-sources-list et je ne comprends pas à quoi correspond la version 2.1
🤔.
Ensuite, j'ai rencontré ces erreurs :
$ mise install android-sdk latest
mise ERROR latest not found in mise tool registry
mise ERROR Run with --verbose or MISE_VERBOSE=1 for more information
$ mise install android-sdk 2.1
Warning: Errors during XML parse:
Warning: Additionally, the fallback loader failed to parse the XML.
cp: impossible d'évaluer '/home/stephane/.local/share/mise/downloads/android-sdk/2.1/*': Aucun fichier ou dossier de ce nom
mise ERROR ~/.local/share/mise/plugins/android-sdk/bin/install failed
cp: impossible d'évaluer '/home/stephane/.local/share/mise/downloads/android-sdk/2.1/*': Aucun fichier ou dossier de ce nom
asdf-android-sdk: Expected /home/stephane/.local/share/mise/installs/android-sdk/2.1/cmdline-tools/2.1/bin/sdkmanager to be executable.
asdf-android-sdk: An error occurred while installing android-sdk 2.1.
mise ERROR failed to install android-sdk@2.1
mise ERROR ~/.local/share/mise/plugins/android-sdk/bin/install exited with non-zero status: exit code 1
mise ERROR Run with --verbose or MISE_VERBOSE=1 for more information
Suite à cela, j'ai posté cette issue : "Add mise support? « mise ERROR latest not found in mise tool registry »"
Succès avec Syquel/mise-android-sdk
Je retourne sur le premier projet https://github.com/Syquel/mise-android-sdk et j'installe yq :
$ sudo dnf install yq
$ mise plugins install android-sdk https://github.com/Syquel/mise-android-sdk.git
mise plugin:android-sdk ✓ https://github.com/Syquel/mise-android-sdk.git#a44eb2b
$ mise ls-remote android-sdk
1.0
2.0
2.1
3.0
4.0
5.0
6.0
7.0
8.0
9.0
10.0
11.0
12.0
13.0-rc01
13.0
14.0-alpha01
16.0-alpha01
16.0
Je pense que ces versions correspondent à https://github.com/AndroidSDKSources/android-sdk-sources-list, mais #JeMeDemande pourquoi la version 15
est absente de cette liste.
J'ai configuré mon fichier .mise.toml
$ cat .mise.toml
[tools]
android-sdk = "13.0"
Et ensuite :
$ mise install
$ rehash
$ sdkmanager --version
13.0
Ensuite je ne sais pas trop quoi faire avec sdkmanager
mais c'est une autre histoire 🙂.
Journal du mardi 19 novembre 2024 à 10:29
#iteration Projet 17 - Créer un POC de création d'une app smartphone avec Capacitor.
Pour utiliser Capacitor, j'ai besoin d'installer certains éléments.
In order to develop Android applications using Capacitor, you will need two additional dependencies:
- Android Studio
- An Android SDK installation
Je me demande si Android Studio est optionnel ou non.
J'aimerais installer ces deux services avec Mise.
J'ai trouvé des Asdf plugins pour Android SDK :
- https://github.com/Syquel/mise-android-sdk (créé le 2024-03-03)
- https://github.com/huffduff/asdf-android-sdk (créé le 2024-10-10)
- https://github.com/arcticShadow/asdf-android (créé le 2024-11-13)
#JeMeDemande quel plugin utiliser, quelles sont leurs différences.
Pour essayer d'avoir une réponse, j'ai posté les issues suivantes :
- What are the differences with other existing plugins?
- What are the differences with other existing plugins?
Alexandre m'a informé qu'il a utilisé avec succès le plugin https://github.com/Syquel/mise-android-sdk/, il a même créé une issue https://github.com/Syquel/mise-android-sdk/issues/10 qui a été traité 🙂.
La suite : 2024-11-19_1102.
Journal du mardi 19 novembre 2024 à 00:22
#JaiLu cet article au sujet de Bluesky : Maybe Bluesky has “won” (from).
Now that I’ve gotten some grumpiness out of my system, I would like to recognise some legitimately great things that Bluesky is doing. First up, domain-based usernames.
You can follow me on Bluesky as @gavin.anderegg.ca. I was able to set this up easily by adding a TXT record to my domain that links to my
DID:PLC
. This is great! It allows me to effectively “blue check” myself, in a similar way to Mastodon. The domain-based approach is quite flexible, and I think it’s a great solution.
J'aime beaucoup 👍️. Est-ce que Mastodon pourrait implémenter cela ? C'est peut-être cette FEP : FEP-e3e9: Actor-Relative URLs 🤔.
Bluesky also offers both composable moderation and the ability to choose your own algorithm. I’m someone who just wants to see a chronological feed of posts from the folks I follow, but I absolutely understand the appeal of these features. It’s made especially clear when compared to Threads, which only wants to show me inane engagement bait by default. There are even some third-party services which make setting up your own custom feed easier.
👍️
Est-ce que Mastodon pourrait implémenter cela ?
I also really love the idea of starter packs. If you’re someone who’s joining the service, picking who you want to follow is rough. A starter pack lets you to follow a set of users recommended by someone you trust. Anyone can create a starter pack, so it’s easy to grab a few and have a lively feed a few moments after joining.
Excellente idée 👍️.
Est-ce que Mastodon pourrait implémenter cela ? Peut-être : Starter kits: A way to simplify the entry into the fediverse/social web
Journal du lundi 18 novembre 2024 à 22:51
#JaiDécouvert Introducing the new Svelte CLI.
We’ve just released sv, a new Command Line Interface (CLI) for creating, enhancing, and upgrading Svelte projects.
...
This package merges the previous create-svelte and community-led svelte-add tools into a single package.
Liste d'outils d'anonymisation de base de données PostgreSQL
Je me suis lancé dans une recherche d'outil d'anonymisation de dump PostgreSQL, j'ai trouvé ceci :
- https://postgresql-anonymizer.readthedocs.io/en/latest/
- https://github.com/TantorLabs/pg_anon
- Greenmask - https://github.com/GreenmaskIO/greenmask (from)
- https://www.neosync.dev/ (from)
- https://github.com/digitalmint/datanymizer/tree/digitalmint (from)
- https://github.com/nixys/nxs-data-anonymizer (from) Je n'ai pas compris comment cet outil fonctionne en interne.
Ma première impression : Greenmask est l'outil qui me semble le plus intéressant pour mes besoins.
Pour Clickhouse, j'ai découvert https://clickhouse.com/docs/en/operations/utilities/clickhouse-obfuscator (from).
Journal du lundi 18 novembre 2024 à 21:47
Je viens de créer les projets suivants :
Journal du lundi 18 novembre 2024 à 21:23
J'apprends que l'app iOS LogSeq est contruit avec Capacitor.
It is worth noting that Apple accepts Capacitor-based apps (e.g., LogSeq). Capacitor renders applications in a webview, making it a viable alternative. This approach can be suggested in the documentation as a way to circumvent potential issues with publishing PWAs.
-- from
Journal du lundi 18 novembre 2024 à 09:44
Un ami me demande des ressources pour se former au Machine Learning.
Je ne suis pas expert dans ce domaine.
Lorsque je me forme sur un sujet, j’aime commencer par comprendre le contexte global, son histoire et alterner entre l’acquisition de connaissances théoriques et pratiques.
Pour me former sérieusement, j'envisage un jour de prendre le temps de :
- Suivre les vidéos de Thibault Neveu, en particulier :
- Écouter et essayer de reproduire le contenu des 16 vidéos de la série "Formation au Deep Learning" (~3h)
- Ensuite la série de 5 vidéos "Tensorflow et Keras" (~5h)
- Ensuite la série de 13 vidéos "Apprentissage par renforcement" (~8h)
- Ensuite la série de 10 vidéos "Deep learning avancé" (~8h)
- Ensuite la série de 22 vidéos "Formation à Tensorflow 2.0" (~8h)
- Ensuite la série de 4 vidéos "Pytorch NLP" (~2h)
- Ensuite là série de 3 vidéos "Créer une intelligence artificielle sur StarCraft II" (~2h)
- Essayer de comprendre le fonctionnement des "transformer" :
- Pour cela, je commencerai écouter la vidéo "À quoi ressemble ChatGPT ? 🌶️" de Lê Nguyên Hoang, qui présente la structure des transformers (~1h)
- Lire les articles Wikipedia (~1h) :
- Lire l'article "Natural Language Processing: the age of Transformers" (~2h)
- Lire l'article : "Word Embeddings in NLP: An Introduction" (~2h)
- Lire l'article : "Attention Is All You Need" (~2h)
- Parcourir les mises en pratique de Simon Willison : https://til.simonwillison.net/llms (~3h)
Je n'ai pas classé l'ordre d'étude des séries avec rigueur, cet ordre est sans doute à modifier.
Pour chaque élément, j'ai précisé entre parenthèses une estimation optimiste du temps nécessaire à l'écoute ou à la lecture.
D'après cette liste, j'estime à environ 86 heures pour me former sur ce sujet, soit l'équivalent de 15 jours à temps plein ou presque un mois complet.
Ensuite, j'ai quelques idées de projets de mise en pratique :
- Développer une extension pour navigateur qui, lors de la rédaction d’un e-mail depuis Fastmail, transforme automatiquement le contenu du message en HTML en texte brut au format Markdown.
- Ajouter ensuite une fonctionnalité pour supprimer automatiquement les signatures.
- Concevoir un outil capable de découper une vidéo de Tennis de Table en segments correspondant à chaque point joué.
Journal du lundi 18 novembre 2024 à 09:26
#JaiDécouvert le template shell suivant : https://github.com/adriancooney/Taskfile
Journal du dimanche 17 novembre 2024 à 14:02
Dans le thread Reddit GNOME "Is there any chance gnome supports window tiling ?", je suis tombé à nouveau sur cet excellent article : "Rethinking Window Management - Space and Meaning".
Ensuite #JaiDécouvert l'extension Tiling Shell. J'ai décidé de tester cette extension.
J'ai l'impression que cette extension a modifié / supprimé mes raccourcis clavier de déplacement de fenêtre. Cela m'embête un peu si je décide de désactiver cette extension 🤔.
J'ai configuré les raccourcis clavier comme ceci :
Je ne comprends pas, les raccourcis Super + ➡️
et Super + ⬅️
ne semblent pas fonctionner.
À la lecture du README de l'extension, je constate qu'elle propose beaucoup de petites astuces. Je vais essayer de les apprendre au fur et à mesure.
Journal du dimanche 17 novembre 2024 à 13:48
#JaiDécouvert Llama vision (from)
#JaiDécouvert LlamaOCR : https://llamaocr.com (from)
J'ai fait le test suivant :
Journal du vendredi 15 novembre 2024 à 16:44
Je viens d'apprendre que pg_dumpall
de PostgreSQL n'exporte pas les passwords des utilisateurs.
Les users sont biens exporter, mais les passwords doivent être reconfigurées ensuite via la commande :
ALTER USER myuser WITH PASSWORD 'newsecret';
Idée d'une extension browser pour connecter Obsidian à GitHub
J'aime être explicite, j'évite l'utilisation des acronymes, j'essaie de désigner les ressources (lien vers un paragraphe, une fonction, une issue, un contrat, un client…) avec des URLs, afin d'éviter toute ambiguïté.
J'ai de plus en plus l'intuition que l'usage d'un Organisation knowledge management combiné à de multiples Personal knowledge management de type Obsidian, SilverBullet.mb sont très utiles dans un contexte de travail en équipe et dans une organisation.
Partant de cette préférence et de cette intuition, j'ai eu une idée, j'ai ressenti un besoin que je vais expliquer dans cette note.
Je suis en train de rédiger une issue dans GitHub.
Dans la description de l'issue, je souhaite faire mention de la notion de PII et d'un champ de base de données.
J'aimerais développer une extension navigateur qui permet de saisir des wikilink ([[PageName|custom title]]
) dans les zones de texte supportant de Markdown de GitHub, GitLab, Trello, Mattermost, Zullip, etc, avec le support de la recherche / autocomplétion.
J'aimerais ajouter une fonctionnalité qui affiche, lors du survol d'un wikilink, un popup contenant un aperçu de la page liée. Cela permet, par exemple, de consulter rapidement la signification d'un acronyme ou d'identifier une ressource.
J'aimerais que cette extension puisse être connecté à un ou plusieurs knowledge management system.
Pourquoi le badge Website Carbon me dérange ?
Je viens de voir à nouveau un badge Website Carbon Calculator sur un site.
Ce type d'initiative me dérange, parce que je considère la méthode de calcul comme non rigoureuse.
Quelques exemples :
- Elle semble ne pas prendre en compte la consommation du device côté client (smartphone, desktop…) ;
- Elle semble ne pas prendre en compte la charge cotée serveur.
Je pense que les personnes qui intègrent ce type de badge sur leur site sont dans une démarche de Greenwashing. Je pense qu'elles ne maitrisent pas le sujet.
Le projet Lighthouse est bien plus honnête dans sa démarche. N'étant pas en mesure de donner des mesures rigoureuses, il semble avoir abandonné ce projet : 🍃 adding environment protection KPI and audits (like CO2 footprint)
Pour fournir une information plus rigoureuse, je pense qu'il serait possible d'agréger les statistiques de consommation via PowerTOP de tous les serveurs qui servent à héberger le site web, croiser cette information avec les statistiques de visites tout en prenant en compte les caractéristiques énergétiques du data center.
Mais, tout cela est très compliqué.
En attendant, je pense qu'il est bien plus honnête de simplement intégrer un badge Lighthouse qui prends en compte les paramètres suivants :
- la taille de la page et de ses dépendances ;
- la complexité de rendu de la page.
Plus la note Lighthouse est élevée, moins le site web consomme d'énergie, à conditions égales.
Exemple : https://sklein.xyz/reports/report.html
Voir aussi : co2.js.
Journal du jeudi 14 novembre 2024 à 11:25
#JaiDécouvert The Green Web Foundation et leur librairies co2.js
Journal du jeudi 14 novembre 2024 à 10:26
DomainMOD is a self-hosted open source application used to manage your domains and other Internet assets in a central location.
Journal du jeudi 14 novembre 2024 à 09:48
On m'a partagé le site : Simulateur de chiffre d'affaires pour indépendants.
Je l'ai un peu testé, mais il n'est pas adapté à mon cas d'usage, à mes données personnelles.
Au départ, l'idée est fun, mais en pratique, ce site ne me permet ni de faire une rétrospective de mes 6 derniers mois, ni de faire une simulation de mes 6 prochains mois.
Depuis un an, j'ai réalisé de nombreux spreadsheet privés de simulation de revenu en Freelance avec prise en compte du temps libre, comparaison avec un CDI…
Ce site me donne envie d'essayer de réaliser un projet avec ma vision, mes données, un peu comme ce que j'ai réalisé il y a un an : https://comparateur-rupture-conventionnelle-cdi.sklein.xyz/.
Ce type de projet entre dans le cadre de ma note de l'été 2023 : Idée d'un site "Homo Economicus".
Autres remarques au sujet de https://www.soloportfolio.fr.
- C'est dommage que son code source ne soit pas publié ;
- La présence du badge Website Carbon Calculator me dérange : Pourquoi le badge Website Carbon me dérange ? ;
- Je pense que ce projet entre uniquement dans une démarche de Lead Magnet ou de Free Tool Marketing 😔.
Journal du mercredi 13 novembre 2024 à 21:47
Actuellement, dans sklein-pkm-engine, les "citations" sont affichées comme ceci :
Je souhaite modifier ce rendu pour réaliser quelque chose ressemblant à ceci :
Ma source d'inspiration est le blog de gwern.net.
gwern.net utilise la syntax de quote suivante (exemple) :
<div class="epigraph">
> Beware of bugs in the above code; I have only proved it correct, not tried it.
>
> [Donald Knuth](https://www-cs-faculty.stanford.edu/~knuth/faq.html)
</div>
Étant donné que j'édite notes.sklein.xyz avec Obsidian, je ne peux pas utiliser la même syntax.
En remplacement, je pense utiliser la syntax "Callouts", par exemple :
> [!quote]
>
> Beware of bugs in the above code; I have only proved it correct, not tried it.
>
> [Donald Knuth](https://www-cs-faculty.stanford.edu/~knuth/faq.html)
Qui donne le rendu suivant dans Obsidian :
#réflexion : j'ai l'intuition qu'à terme, une utilisation SilverBullet.mb à la place d'Obsidian m'offrirait bien plus de flexibilité.
Journal du mercredi 13 novembre 2024 à 15:44
D'après les spécifications, mon Serveur NUC i3 gen 5 consomme 15 W à pleine puissance.
Si je laisse ce serveur en fonction, à pleine puissance pendant 1 an, cela ferait une consommation totale de 15 x 24 x 365 = 131 400 W
.
Mon tarif EDF d'électricité est de 0,1887 € HT du kWh
.
Ce qui fait : 131,400 x 0,1887 = 24 € HT x 1.2 = 29,73 € TTC / an
. Ce qui fait environ 2,5 € par mois.
Ceci correspond au prix maximal. J'ai un appareil pour faire des mesures de consommation électrique, je vais peut-être prendre le temps de mesurer la consommation réel.
J'ai aussi fait ce calcul pour mon second NUC Serveur NUC i7 gen 11.
27 W à pleine puissance.
Sur un an : 27 x 24 x 365 = 236520 W
Ce qui fait : 236,520 x 0,1887 = 44 € HT x 1.2 = 53 € TTC / an
. Ce qui fait environ 4,5 € par mois.
Journal du mercredi 13 novembre 2024 à 15:16
#JaiDécouvert que Dittofeed utilise Temporal (technologie qui m'intéresse).
Journal du mercredi 13 novembre 2024 à 15:05
Par curiosité, j'ai cherché des alternatives open-source à Customer.io, voici ce que j'ai trouvé :
- LimeJourney, projet d'un Solo Développeur, débuté en août 2024 (from)
- Laudspeaker, projet débuté en octobre 2022 (from)
- Dittofeed, projet Californien, codé par Max Gurewitz et Chandler Craig (marketing), incubé par Y Combinator, débuté en septembre 2022 (from) J'ai lu ces autres threads de Chandler Craig :
Journal du mercredi 13 novembre 2024 à 11:32
#JaiDécouvert l'utilisation de acronyme PII pour Personally Identifiable Information.
Journal du mardi 12 novembre 2024 à 23:35
#OnMaPartagé l'article « Budget 2025 : le coup de rabot sur l'avantage fiscal de l'actionnariat salarié adopté » (BSPCE).
Mais l'article 25 de la loi de finances bouscule ce schéma en revenant en partie sur le sursis d'impôt.
Source de l'article 25 :
- Dans la page https://www.budget.gouv.fr/documentation/documents-budgetaires/exercice-2025/projet-loi-finances-les-0
- Dans le PDF « Le projet de loi de finances (PLF) pour 2025 »
- Article 25 se trouve à la page 129
Concrètement, les gains d'exercice - se manifestant lorsque le salarié exerce son option d'achat à un prix plus faible que la valeur de marché de l'action au jour de cet exercice - seraient imposés au moment de l'apport des titres à la société rachetant l'entreprise. Tandis que les gains de cession - qui surviennent si l'action continue à s'apprécier après l'usage des BSPCE - bénéficieraient toujours du sursis d'imposition.
-- from
Voici ce que j'ai compris.
Imaginons le scénario suivant :
- Bob rejoint "ma super entreprise" en janvier 2020
- Bob reçoit 100 actions à 5 € l'unité, sous forme de BSPCE
- Janvier 2024, Bob a "vesté" à 100% ses BSPCE
- Février 2024, une action de "ma super entreprise" a pour valeur 100 €. Bob décide d'exercer son option d'achat de ses 100 actions. Bob doit débourser 500 € pour (prix de départ) acheter ses 100 actions. Valeur de gain d'exercice : (100 actions * 100 €) - 500 € = 9500 €
- À ce moment-là, ces 9500 € de gains ne sont pas imposables.
- Septembre 2025, "ma super entreprise" est rachetée par "la grosse enterprise", au prix de 200 € l'action. Voici comment calculer les gains de session : 100 actions * (prix de l'action lors du rachat par l'entreprise - prix de l'action au moment de l'achat des actions) ce qui donne : 100 actions * (200 € - 100 €) = 10 000 €
- Mai 2026, Bob doit déclarer aux impôts ses gains d'exercice, qui correspondent à 9500 €, Bob sera imposé sur cette somme. Par contre, Bob ne devra pas déclarer son gain de session, dont le montant est de 10 000 €.
- Juin 2028, Bob vend toutes ses actions "la grosse entreprise". Le prix de l'action est de 400 €. Bob reçoit 100 actions * 400 € = 40 000 €
- Mai 2029, Bob doit déclarer aux impôts ses gains de session, dont le montant est 40 000 € - 9 500 € = 30 500 € Bob sera imposé sur ce gain de 30 500 €.
Voici ce qui aurait changé dans ce scénario avant l'application de l'article 25 du projet de loi de finance 2025 :
- En mai 2026, Bob n'aurait pas eu besoin de déclarer ses gains d'exercice de 9 500 €
- En mai 2029, Bob aurait dû déclarer aux impôts non pas 30 500 €, mais 40 000 €.
Lorsque mon ami m'a parlé de ce changement de loi, je pensais que Bob devait payer des impôts sur les 9 500 € de gains dès février 2024. Cependant, il s'avère que ce n'est pas le cas. Les impôts ne sont dus qu'au moment où les titres sont apportés à la société qui rachète l'entreprise, c'est-à-dire lorsque "la grosse entreprise" acquiert les actions de Bob. À ce moment-là, Bob a la possibilité de choisir de ne pas réinvestir la totalité de la valeur de ses actions dans "la grosse entreprise".
Finalement, je trouve cette modification de la règle fiscale moins illogique que ce que j'avais initialement pensé.
Journal du mardi 12 novembre 2024 à 13:26
#JaiDécouvert LibreSpeed que je vais utiliser à la place de https://fast.com/.
Il me propose une information supplémentaire à Fast.com : jitter.
Ma première mesure, en étant connecté en wifi :
- ping 17.0ms
- jitter : 120ms
La valeur jitter était anormalement élevée. J'ai relancé mon interface wifi radio 1 de mon Xiaomi Mi Router 4A Gigabit Edition sur un autre canal :
Maintenant, j'ai de bien meilleures performances :
Voici le même test quand mon laptop est connecté en câble Ethernet :
Les valeurs du ping et du jitter sont comparables, seul le débit est supérieur.
Journal du mardi 12 novembre 2024 à 12:08
Il y a quelques mois, on m'avait partagé le projet NanoKVM.
Alexandre m'a partagé un autre projet du même type : JetKVM.
Next generation open-source KVM over IP for $69
Le blog de Jeff Geerling contient deux articles de test de KVM :
- Test du NanoKVM : Sipeed NanoKVM: A RISC-V stick-on
- Test du JetKVM : JetKVM: tiny IP KVM that's not an Apple Watch
Journal du mardi 12 novembre 2024 à 11:56
#JaiDécouvert le projet "Falling-Sky project" qui propulse, par exemple, l'instance test-IPv6.com.
Résultat de http://test-ipv6.com/index.html.fr_FR quand je suis connecté à mon réseau domestique :
J'ai vérifié, tous mes devices ont bien une IPv6 spécifique.
Journal du mardi 12 novembre 2024 à 11:36
#JaiLu le Thread Reddit : What dns do you use on your home router?.
J'y ai découvert Quad9.
Journal du mardi 12 novembre 2024 à 11:14
Note #mémo : il est nécessaire d'utiliser l'option -O
pour permettre à scp
de se connecter à OpenWrt.
$ scp -O "root@192.168.1.1:/etc/config/*" etc/config
Pourquoi : https://forum.openwrt.org/t/ash-usr-libexec-sftp-server-not-found-when-using-scp/125772/3.
Journal du lundi 11 novembre 2024 à 10:44
Je viens de retrouver le premier commit du driver MediaTek MT7603E 802.11bgn utilisé par Xiaomi Mi Router 4A Gigabit Edition : "mt76: add driver for MT7603E and MT7628/7688" publié par Felix Fietkau le 6 novembre 2018.
J'ai un peu regardé la vidéo "Felix Fietkau: Wireless Drivers: Freedom considered harmful?".
Je pense y avoir compris que le pilote ath9k, conçu pour les puces WiFi Atheros, a été le premier pilote open source à ne pas nécessiter de rétro-ingénierie pour être implémenté.
ath9k is a completely FOSS wireless driver for all Atheros IEEE 802.11n PCI/PCI-Express and AHB WLAN based chipsets.
-- from
Depuis, je constate que la liste des pilotes open source est assez bien fournie : Comparison of open-source wireless drivers - Wikipedia.
J'ai étudié cela sans aucun objectif, seulement par curiosité pendant que je travaillais sur Projet 15 - Installation et configuration de OpenWrt sur Xiaomi Mi Router 4A Gigabit.
Journal du dimanche 10 novembre 2024 à 10:19
#JaiDécouvert le thread TUTO - Remplacement BBox Fibre par Mikrotik (IPv4, IPv6 et TV/Replay).
#JaiDécouvert la section "remplacer-bbox" du forum lafibre.info.
J'ai étudié les connecteurs SFP+.
#JaiDécouvert le site https://hack-gpon.org
#JaiDécouvert les termes ONT (Optical Network Terminal), GPON (Gigabit Passive Optical Network), OLT (Optical Line Terminal), Fiber-optic splitter, PLOAM.
J'ai apprécié la lecture de ce schéma :
Bien que je pense que les débits ne sont pas à jour.
Voici le matériel listé dans TUTO - Remplacement BBox Fibre par Mikrotik (IPv4, IPv6 et TV/Replay) :
- Module ONU SFP GPON avec Mac à 70 € TTC
- Mikrotik CCR2116-12G-4S+ à 937 € 😮
- Mikrotik CRS310-1G-5S-4S+IN à 200 €
- TPLink TP-MC22L à 20 €
CRS310-1G-5S-4S+IN permet d'insérer 4 SFP+, je pense qu'il est possible d'utiliser soit ce routeur, soit le CCR2116-12G-4S+.
Afin de faciliter le paramétrage du module SFP GPON : 1x convertisseur de media (par exemple TPLink TP-MC22L)
J'ai des difficultés à comprendre, j'ai l'impression que l'article liste beaucoup de matériel redondant 🤔.
En étudiant le sujet, je suppose que la configuration matérielle minimale est : TP-MC22L à 20 € + Module ONU SFP GPON avec Mac à 70 € TTC.
Je compends que le ONT a besoin des paramètres suivants pour se connecter au réseau (GPON) Bouygues :
- Dans l'interface de la BBox, le SN du SFP commençant par SMB :
SMBA0000X000
, qui semble être utilisé en tant qu'identifiant - Sur l'étiquette arrière de la BBox :
- L'adresse MAC :
48:29:FF:FF:FF:FF
- L'IMEI :
123456789012345
converti en0000123456789012345
qui est utilisé en tant que "password"
- L'adresse MAC :
Ce commentaire liste le matériel suivant :
- Netgear GS724Tv4 - Smart Switch Ethernet 24 Ports RJ45 Gigabit (10/100/1000), Web Manageable Professionnel - switch RJ45 avec 2 Ports SFP 1 Gigabit, Bureau ou en Rack et Protection à Vie ProSafe à 256 €
- Mikrotik RB3011UiAS-RM à 175 €
Journal du samedi 09 novembre 2024 à 10:05
#JaiDécouvert la signification de iNIC (from).
Journal du jeudi 07 novembre 2024 à 13:38
Même après l'upgrade vers Fedora 41, je rencontre toujours le même bug depuis août 2024.
Pendant une longue période, comme conseillé dans ce commentaire, je suis resté sur un kernel 6.9 jusqu'à la sortie des kernel 6.11.
Je pensais que la résolution de cette issue avait corrigé le problème : 7840h/780m system crash after update to linux kernel 6.10 (#3497).
Mais, je constate que non.
J'ai décidé de prendre un peu de temps pour soumettre au meilleur rapport de bug, que je souhaite dans un premier temps publier dans un commentaire, dans le thread suivant : Persistent System Crashes and Performance Issues on Fedora 40 with ASUS Vivobook 15 - Fedora Discussion.
Aujourd'hui, j'ai eu deux crash de gnome-shell
.
À 13:13:33, au moment où j'ai branché le câble USB-C de mon moniteur externe sur mon laptop.
Voici-ci les logs du kernel :
13:13:33 t14s kernel: retire_capture_urb: 58 callbacks suppressed
...
13:13:54 t14s kernel: amdgpu 0000:33:00.0: [drm] REG_WAIT timeout 1us * 100 tries - dcn31_program_compbuf_size line:141
13:13:54 t14s kernel: ------------[ cut here ]------------
13:13:54 t14s kernel: WARNING: CPU: 12 PID: 30057 at drivers/gpu/drm/amd/amdgpu/../display/dc/hubbub/dcn31/dcn31_hubbub.c:151 dcn31_program_compbuf_size+0xd1/0x230 [amdgpu]
...
Version plus complète de ces logs : https://gist.github.com/stephane-klein/dff0d32c20af4307c3b85bbbf03b7b59
J'ai retrouvé la ligne 151
du fichier code source qui génère le warning : drivers/gpu/drm/amd/display/dc/hubbub/dcn31/dcn31_hubbub.c#L151
J'ai fait une recherche sur le gestionnaire d'issues du projet drm/amd
avec dcn31_program_compbuf_size
comme mot clé et je suis tombé sur cette issue : AMD GPU screen blanking for seconds with a warning
I run Fedora 40 on a ThinkPad T14 Gen3 - comes with AMD Ryzen 7 PRO 6850U with Radeon Graphics. I have my monitor connected via the ThinkPad dock, which is over a USB-C connection.
Yesterday, I updated to F41 with the 6.11.5-300.fc41 kernel. The screen blanking shot up to maybe 30x per minute, with 1-2s blanking each time, effectively giving me an unusable display.
J'ai le même hardware que cette personne et j'ai l'impression que je rencontre le même problème.
Toutefois, j'ai l'impression d'avoir eu des crashes de gnome-shell même sans l'action de brancher un moniteur externe en USB-C 🤔. Je pense être victime de plusieurs bugs.
4 secondes plus tard, Discord génère un coredump :
#JaiDécouvert la commande coredumpctl :
$ coredumpctl list --since "2024-11-07"
TIME PID UID GID SIG COREFILE EXE SIZE
Thu 2024-11-07 10:09:21 CET 352125 1000 1000 SIGTRAP present /app/main/mattermost-desktop 10.6M
Thu 2024-11-07 13:13:58 CET 54929 1000 1000 SIGABRT present /usr/lib64/discord/Discord 56.9M
Voici le contenu de :
$ coredumpctl info 54929 # /usr/lib64/discord/Discord
https://gist.github.com/stephane-klein/56b9097e1a22390ef3350757bf3132dc
Et celui de :
$ coredumpctl info 352125 # /app/main/mattermost-desktop
https://gist.github.com/stephane-klein/1b3790d45aef6383f98341f31ea40444
Voici le message que j'ai posté sur Discourse Fedora : https://discussion.fedoraproject.org/t/persistent-system-crashes-and-performance-issues-on-fedora-40-with-asus-vivobook-15/128526/20
Le support des variables d'environments de Mise est limité, je continue à utiliser direnv
J'ai décidé d'utiliser la fonctionnalité "mise
env._source
" pendant quelques semaines pour me faire une opinion.-- (from)
J'ai déjà rencontré un problème : il n'est pas possible de lancer des outils installés via Mise dans un script lancé par _.source
.
Voici un exemple, j'ai ce fichier .envrc.sh
:
export SERVER1_IP=$(terraform output --json | jq -r '.server1_public_ip | .value')
Terraform est installé avec Mise :
[env]
_.source = "./.envrc.sh"
[tools]
terraform="1.9.8"
Quand je lance mise set
, j'ai cette erreur :
$ mise set
.envrc.sh: line 6: terraform: command not found
J'ai trouvé une issue pour traiter cette limitation : "Use mise tools in env template".
En attendant que cette issue soit implémentée, j'ai décidé de continuer d'utiliser direnv.
2024-12-19 : suite à la cloture de l'issue indiquée dans cette note, j'ai publié la note Je pense maintenant pouvoir remplacer Direnv par Mise 🤞.
Journal du mercredi 06 novembre 2024 à 17:10
En travaillant sur la note 2024-11-06_1631, j'ai découvert les commandes shell suivantes mises à disposition par direnv que je trouve intéressantes :
Je remplace direnv par la fonctionnalité env._source proposée Mise
Depuis avril 2019, j'utilise direnv dans pratiquement tous mes projets de développement informatique.
Ce matin je me suis demandé si avec les nouvelles fonctionnalités de gestion des variables d'environnement de Mise, je pouvais simplifier mes development kit 🤔.
Comme vous pouvez le voir dans install-and-configure-direnv-with-mise-skeleton
, actuellement mes development kit contiennent deux étapes de modifications de .bash_profile
ou .zshrc
. Exemple avec Zsh :
- Une étape pour configurer Mise :
$ echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
$ source ~/.zsrhrc
- Seconde étape pour configurer direnv :
$ echo -e "\neval \"\$(direnv hook zsh)\"" >> ~/.zshrc
$ source ~/.zsrhrc
Voici la version simplifiée de ce skeleton basé sur "mise env._source
", avec une étape de configuration en moins :
https://github.com/stephane-klein/install-and-configure-mise-skeleton
Voici le contenu du fichier .mise.toml
:
[env]
_.source = "./.envrc.sh"
et le contenu de .envrc.sh
:
export HELLO_WORLD=foo
J'ai fait le choix de nommer ce fichier .envrc.sh
plutôt que .envrc
afin d'éviter des problèmes de compatibilité pour les utilisateurs qui ont direnv installé.
J'ai vérifié que les variables d'environnements "parents" sont bien conservées en cas de changement de variable d'environnement par Mise dans un sous dossier.
#JeMeDemande si je vais rencontrer des régressions par rapport à direnv 🤔.
J'ai décidé d'utiliser la fonctionnalité "mise env._source
" pendant quelques semaines pour me faire une opinion.
Update : voir 2024-11-06_2109.
development kit skeleton d'installation de direnv
Voici un dépôt GitHub qui contient les instructions que j'indiquais dans mes development kit, avant 2024, pour installer et configurer direnv, sous MacOS.
https://github.com/stephane-klein/install-and-configure-direnv-with-asdf-skeleton
Dans ce skeleton, direnv est installé avec asdf, voir le fichier racine ./.tool-versions
Et voici un exemple de skeleton, que j'utilise depuis novembre 2023, basé sur Mise :
https://github.com/stephane-klein/install-and-configure-direnv-with-mise-skeleton
Dans ce second skeleton, direnv est installé avec Mise, voir le fichier racine ./.mise.toml
.