TontofA simple and smart (or stupid) blog
http://tontof.net/index.php
frtontof2023-05-26T12:00:00+00:00kriss blogdaily12023-05-26T12:00:00+00:005 : KrISS json
http://tontof.net/index.php?2023/05/26/12/00/00-5-kriss-json
KrISS aaaa : middleware et il y a quelques années j'ai voulu testé cette même approche pour l'utilisation de schémas json https://json-schema.org
C'était il y a quelques temps et j'ai dû faire 2/3 modifications pour valider les mises à jours des tests fournis par https://github.com/json-schema-org/JSON-Schema-Test-Suite pour continuer à valider les premiers drafts comme à l'époque où j'avais codé ça.
Les validations proposées par PHP ne fonctionnaient pas pour tous les tests, j'ai donc dû lire un peu les RFC pour arriver à la validation de tous les tests. C'est à faire au moins une fois dans sa vie...
Pour valider un schéma json, il suffit d'inclure le fichier "json.php" et d'appeler la fonction "json_schema" <?php include_once(__DIR__ . '/schema/json.php');
En pratique, je vous invite à utiliser une approche plus classique https://json-schema.org/implementations.html#validator-php mais KrISS json reste intéressant de par son approche fonctionnelle]]>2023-05-26T12:00:00+00:00frtontofA simple and smart (or stupid) blog
KrISS aaaa : middleware et il y a quelques années j'ai voulu testé cette même approche pour l'utilisation de schémas json https://json-schema.org
C'était il y a quelques temps et j'ai dû faire 2/3 modifications pour valider les mises à jours des tests fournis par https://github.com/json-schema-org/JSON-Schema-Test-Suite pour continuer à valider les premiers drafts comme à l'époque où j'avais codé ça.
Les validations proposées par PHP ne fonctionnaient pas pour tous les tests, j'ai donc dû lire un peu les RFC pour arriver à la validation de tous les tests. C'est à faire au moins une fois dans sa vie...
Pour valider un schéma json, il suffit d'inclure le fichier "json.php" et d'appeler la fonction "json_schema" <?php include_once(__DIR__ . '/schema/json.php');
En pratique, je vous invite à utiliser une approche plus classique https://json-schema.org/implementations.html#validator-php mais KrISS json reste intéressant de par son approche fonctionnelle]]>
4 : KrISS aaaa : middleware
http://tontof.net/index.php?2023/05/19/13/00/00-4-kriss-aaaa-middleware
KrISS MVVM qui est une sorte de projet générique pour développer rapidement des petites applications en utlisant la programmation orientée objet, KrISS aaaa a le même but mais avec l'esprit programmation fonctionnelle. À l'heure où j'écris ces lignes KrISS aaaa n'est pas vraiment opérationnel mais j'ai déjà quelques briques que je vais présenter petit à petit après avoir mis en place quelques tests pour présenter comment tout cela fonctionne.
La programmation fonctionnelle n'a plus vraiment le vent en poupe mais je pense qu'elle peut être intéressante car plus facile à comprendre que la programmation orientée objet et j'espère donc trouvé du temps pour concrétiser tout ça. J'ai même pensé mettre à jour KrISS feed en utilisant ce principe, un jour peut-être...
Voici donc une première présentation de middleware qui correspond au principe de la couche d'oignon illustré dans cet article : http://esbenp.github.io/2015/07/31/implementing-before-after-middleware/ mais en programmation fonctionnelle : <?php include('src/helpers/middleware/middleware.php');
function before($object, $next) { $object[] = 'before';
return $next($object);
}
Le résultat est le suivant
array(5) {
[0] =>
string(6) "before"
[1] =>
string(6) "before"
[2] =>
string(4) "core"
[3] =>
string(5) "after"
[4] =>
string(5) "after"
}
J'imagine utilisé ce principe de middleware pour gérer des plugins dans KrISS aaaa. Plus d'exemples dans le fichier de tests : https://github.com/KrISS/aaaa/blob/main/tests/MiddlewareTest.php
]]>2023-05-19T13:00:00+00:00frtontofA simple and smart (or stupid) blog
KrISS MVVM qui est une sorte de projet générique pour développer rapidement des petites applications en utlisant la programmation orientée objet, KrISS aaaa a le même but mais avec l'esprit programmation fonctionnelle. À l'heure où j'écris ces lignes KrISS aaaa n'est pas vraiment opérationnel mais j'ai déjà quelques briques que je vais présenter petit à petit après avoir mis en place quelques tests pour présenter comment tout cela fonctionne.
La programmation fonctionnelle n'a plus vraiment le vent en poupe mais je pense qu'elle peut être intéressante car plus facile à comprendre que la programmation orientée objet et j'espère donc trouvé du temps pour concrétiser tout ça. J'ai même pensé mettre à jour KrISS feed en utilisant ce principe, un jour peut-être...
Voici donc une première présentation de middleware qui correspond au principe de la couche d'oignon illustré dans cet article : http://esbenp.github.io/2015/07/31/implementing-before-after-middleware/ mais en programmation fonctionnelle : <?php include('src/helpers/middleware/middleware.php');
function before($object, $next) { $object[] = 'before';
return $next($object);
}
Le résultat est le suivant
array(5) {
[0] =>
string(6) "before"
[1] =>
string(6) "before"
[2] =>
string(4) "core"
[3] =>
string(5) "after"
[4] =>
string(5) "after"
}
J'imagine utilisé ce principe de middleware pour gérer des plugins dans KrISS aaaa. Plus d'exemples dans le fichier de tests : https://github.com/KrISS/aaaa/blob/main/tests/MiddlewareTest.php
]]>
3 : KrISS tuto
http://tontof.net/index.php?2023/05/05/14/00/00-3-kriss-tuto
Comme je suis un grand fan du duo OrgMode et RevealJs grâce à Org Reveal, j'ai voulu voir si je pouvais intégrer un cours de base de données.
Pour le code source Org correspondant : https://github.com/tontof/kriss_tuto/blob/master/bdd/index.org]]>
2 : KrISS cast
http://tontof.net/index.php?2023/04/28/15/00/00-2-kriss-cast
reveal.js par l'intermédiaire de Org mode comme pour KrISS tuto avec le mode présentation (touche 's') permet de vidéoprojecter une fenêtre spécifique mais reste quand même limitée.
J'avais un besoin assez spécifique. Je voulais partager mon écran sur un vidéoprojecteur sans avoir à tourner la tête pour voir ce que j'écrivais dans un terminal. La solution la plus simple est de dupliquer l'écran. Sauf que je voulais aussi avoir la possibilité d'ouvrir d'autres applications que je ne voulais pas projecter et dans ce cas la duplication ne fonctionne plus.
Au départ, je pensais pourvoir projecter un bureau linux spécifique mais je n'ai pas vraiment trouvé comment faire. En partageant des applications sur plusieurs bureaux je pense qu'on peut s'en sortir avec un gnome ou KDE. Sauf que de toute façon avec lightdm, je ne pense pas que j'aurais pu m'en sortir.
Après avoir cherché rapidement, je n'ai pas trouvé non plus d'application qui réponde à mon besoin alors j'ai pensé au partage d'écran sur Firefox (ou un autre navigateur) et après quelques lignes de javascript KrISS cast est né !
C'est assez basique mais ça fait le job. On ouvre une fenêtre avec KrISS cast dedans et on vidéoprojète la fenêtre. On clique sur ▶ en haut à gauche pour sélectionner la fenêtre à partager et c'est parti. Grâce à Split Grid, j'ai ajouté la possibilité de partager plusieurs fenêtres en même temps.
Pour résumé :
- les boutons + permettent de partager la fenêtre courante en 2 en fonction du bouton cliqué
- ▶/■ en haut à gauche démarre ou arrête le partage d'écran
- ⨯ en haut à droite ferme la fenêtre courante
- ⛶ en bas à gauche met en plein écran la fenêtre courante
- 🗖 en bas à droite met en plein écran la fenêtre globale
Quelques petits bonus :
- tous les vidéoprojecteurs n'ont pas l'option pour faire un écran noir, il suffit de découper la fenêtre en 2 et d'agrandir la zone pour avoir le même effet. Pratique pour écrire au tableau tout en vidéoprojetant
- pour zoomer la fenêtre projetée il suffit de redimensionner la fenêtre partagée d'origine
Pour utiliser KrISS cast directement ajouter #cast dans l'url. Vous pouvez également télécharger un seul fichier index.html compilé de 17K. Comme d'habitude les sources sont disponibles sur Github.
Bon partage d'écran !]]>2023-04-28T15:00:00+00:00frtontofA simple and smart (or stupid) blog
reveal.js par l'intermédiaire de Org mode comme pour KrISS tuto avec le mode présentation (touche 's') permet de vidéoprojecter une fenêtre spécifique mais reste quand même limitée.
J'avais un besoin assez spécifique. Je voulais partager mon écran sur un vidéoprojecteur sans avoir à tourner la tête pour voir ce que j'écrivais dans un terminal. La solution la plus simple est de dupliquer l'écran. Sauf que je voulais aussi avoir la possibilité d'ouvrir d'autres applications que je ne voulais pas projecter et dans ce cas la duplication ne fonctionne plus.
Au départ, je pensais pourvoir projecter un bureau linux spécifique mais je n'ai pas vraiment trouvé comment faire. En partageant des applications sur plusieurs bureaux je pense qu'on peut s'en sortir avec un gnome ou KDE. Sauf que de toute façon avec lightdm, je ne pense pas que j'aurais pu m'en sortir.
Après avoir cherché rapidement, je n'ai pas trouvé non plus d'application qui réponde à mon besoin alors j'ai pensé au partage d'écran sur Firefox (ou un autre navigateur) et après quelques lignes de javascript KrISS cast est né !
C'est assez basique mais ça fait le job. On ouvre une fenêtre avec KrISS cast dedans et on vidéoprojète la fenêtre. On clique sur ▶ en haut à gauche pour sélectionner la fenêtre à partager et c'est parti. Grâce à Split Grid, j'ai ajouté la possibilité de partager plusieurs fenêtres en même temps.
Pour résumé :
- les boutons + permettent de partager la fenêtre courante en 2 en fonction du bouton cliqué
- ▶/■ en haut à gauche démarre ou arrête le partage d'écran
- ⨯ en haut à droite ferme la fenêtre courante
- ⛶ en bas à gauche met en plein écran la fenêtre courante
- 🗖 en bas à droite met en plein écran la fenêtre globale
Quelques petits bonus :
- tous les vidéoprojecteurs n'ont pas l'option pour faire un écran noir, il suffit de découper la fenêtre en 2 et d'agrandir la zone pour avoir le même effet. Pratique pour écrire au tableau tout en vidéoprojetant
- pour zoomer la fenêtre projetée il suffit de redimensionner la fenêtre partagée d'origine
Pour utiliser KrISS cast directement ajouter #cast dans l'url. Vous pouvez également télécharger un seul fichier index.html compilé de 17K. Comme d'habitude les sources sont disponibles sur Github.
J'ai déjà présenté KrISS jams pour imprimer des étiquettes de confitures et Nono m'a rapidement demandé s'il était possible d'avoir une version pour les pots de miel.
Plutôt que de faire une autre version spécifique aux pots de miel, j'ai ajouté un petit éditeur qui permet de personnaliser les étiquettes puis d'exporter les infos dans l'URL. Ça me paraît assez complet et fonctionnel en l'état même s'il y aurait des améliorations à apporter. Par exemple pour les confitures, la couleur du texte dépend du parfum et ce n'est actuellement pas possible de le faire simplement avec l'éditeur qui impose la couleur du texte pour toutes les étiquettes.
Il n'y a pas vraiment de documentation, mais ça me paraît assez intuitif :
- Edit list gère la liste des variétés des étiquettes (pour les différents parfums)
- Edit template est utilisé pour éditer le nom d'une étiquette et ses éléments (texte, image)
- Edit labels permet la mise en page des étiquettes dans une page (pour l'impression)
Toujours avec les magnifiques images de Daria Ustiugova, voici un petit exemple de ce que ça pourrait donner pour des étiquettes de pots de miel]]>2023-04-21T16:00:00+00:00frtontofA simple and smart (or stupid) blog
KrISS jams
J'ai déjà présenté KrISS jams pour imprimer des étiquettes de confitures et Nono m'a rapidement demandé s'il était possible d'avoir une version pour les pots de miel.
Plutôt que de faire une autre version spécifique aux pots de miel, j'ai ajouté un petit éditeur qui permet de personnaliser les étiquettes puis d'exporter les infos dans l'URL. Ça me paraît assez complet et fonctionnel en l'état même s'il y aurait des améliorations à apporter. Par exemple pour les confitures, la couleur du texte dépend du parfum et ce n'est actuellement pas possible de le faire simplement avec l'éditeur qui impose la couleur du texte pour toutes les étiquettes.
Il n'y a pas vraiment de documentation, mais ça me paraît assez intuitif :
- Edit list gère la liste des variétés des étiquettes (pour les différents parfums)
- Edit template est utilisé pour éditer le nom d'une étiquette et ses éléments (texte, image)
- Edit labels permet la mise en page des étiquettes dans une page (pour l'impression)
Toujours avec les magnifiques images de Daria Ustiugova, voici un petit exemple de ce que ça pourrait donner pour des étiquettes de pots de miel]]>
11 ans
http://tontof.net/index.php?2023/04/19/17/00/00-11-ans
Après cette petite pause hivernale pour synchroniser administrativement nom de domaine et hébergement, j'ai prévu un retour avec 11 nouveautés/mises à jour que je vais essayer de présenter régulièrement, toutes les 1 ou 2 semaines.
Première présentation d'une mise à jour vendredi 21 avril !]]>2023-04-19T17:00:00+00:00frtontofA simple and smart (or stupid) blog
Après cette petite pause hivernale pour synchroniser administrativement nom de domaine et hébergement, j'ai prévu un retour avec 11 nouveautés/mises à jour que je vais essayer de présenter régulièrement, toutes les 1 ou 2 semaines.
Première présentation d'une mise à jour vendredi 21 avril !]]>
Sobriété choisie
http://tontof.net/index.php?2022/11/04/10/04/00-sobriete-choisie
Tontof va disparaître... si ça peut vous rassurer, normalement, ça ne sera que pendant 5 mois et mon retour est prévu au printemps prochain à la date anniversaire du 18 avril. Cet hiver est soit disant sous le signe de la sobriété alors comme je pense déjà vivre sobrement au quotidien, je me suis dit que l'occasion était bien tombée pour décaler le prélèvement de mon hébergement à mi-avril comme celui de mes noms de domaine. Malheureusement, chez o2switch il n'est pas possible de faire un prélèvement de 5 ou 17 mois et la solution la plus simple pour que je synchronise les paiements de mon hébergement avec mes noms de domaines est donc de ne pas renouveler cet hébergement et d'attendre mi-avril pour en reprendre un nouveau. Pas besoin de chercher à comprendre, je n'aime pas les prélèvements automatiques et je trouve que c'est plus simple de payer tout à la même période (hébergement et noms de domaine).
Je vis sobrement mais je ne le subis pas et c'est bien là toute la différence. Il faut déjà se dire que si ce ne sont pas des convictions intimes, la sobriété ne peut pas être envisagées facilement et je sais que tout le monde n'a pas la chance de pouvoir faire ce choix. Ce qui apparaît pour des contraintes ou des choses négatives pour certaines personnes sont pour moi le contraire. Combien de fois j'ai pu entendre, "mais pourquoi tu n'as pas un vrai téléphone ?" comprendre smartphone. Tout simplement parce que je n'en ai pas besoin, j'ai un accès à un ordinateur pratiquement quand je veux, qu'est-ce que je ferai d'un smartphone alors que mon téléphone fait déjà ce que je lui demande principalement, être joignable et envoyer/recevoir des messages textuels. Alors oui un smartphone peut être utile en dehors du quotidien, en week-end, en vacances, mais dans ce cas je ne suis pas tout seul et j'ai accès à un Fairphone qui nous suffit largement. Le téléphone est l'exemple le plus récurrent mais au quotidien je fais beaucoup de choix réfléchis qui interrogent et font réagir. C'est toujours intéressant de voir comment la société peut formater des habitudes sans s'en rendre compte et quand on en discute on se rend compte que ce ne sont pas toujours des choix personnels.
En attendant le retour en ligne, j'essaye de faire le point sur tous mes projets en cours parce que je me rends compte que j'ai beaucoup de code à partager mais comme je n'aime pas trop partager des choses non abouties je me retrouve à ne rien publier et c'est dommage parce qu'il y a des choses bien sympathiques dans le tas.
Bonne fin d'année 2022 et on se retrouve normalement le 18 avril 2023 !
]]>2022-11-04T10:04:00+00:00frtontofA simple and smart (or stupid) blog
Tontof va disparaître... si ça peut vous rassurer, normalement, ça ne sera que pendant 5 mois et mon retour est prévu au printemps prochain à la date anniversaire du 18 avril. Cet hiver est soit disant sous le signe de la sobriété alors comme je pense déjà vivre sobrement au quotidien, je me suis dit que l'occasion était bien tombée pour décaler le prélèvement de mon hébergement à mi-avril comme celui de mes noms de domaine. Malheureusement, chez o2switch il n'est pas possible de faire un prélèvement de 5 ou 17 mois et la solution la plus simple pour que je synchronise les paiements de mon hébergement avec mes noms de domaines est donc de ne pas renouveler cet hébergement et d'attendre mi-avril pour en reprendre un nouveau. Pas besoin de chercher à comprendre, je n'aime pas les prélèvements automatiques et je trouve que c'est plus simple de payer tout à la même période (hébergement et noms de domaine).
Je vis sobrement mais je ne le subis pas et c'est bien là toute la différence. Il faut déjà se dire que si ce ne sont pas des convictions intimes, la sobriété ne peut pas être envisagées facilement et je sais que tout le monde n'a pas la chance de pouvoir faire ce choix. Ce qui apparaît pour des contraintes ou des choses négatives pour certaines personnes sont pour moi le contraire. Combien de fois j'ai pu entendre, "mais pourquoi tu n'as pas un vrai téléphone ?" comprendre smartphone. Tout simplement parce que je n'en ai pas besoin, j'ai un accès à un ordinateur pratiquement quand je veux, qu'est-ce que je ferai d'un smartphone alors que mon téléphone fait déjà ce que je lui demande principalement, être joignable et envoyer/recevoir des messages textuels. Alors oui un smartphone peut être utile en dehors du quotidien, en week-end, en vacances, mais dans ce cas je ne suis pas tout seul et j'ai accès à un Fairphone qui nous suffit largement. Le téléphone est l'exemple le plus récurrent mais au quotidien je fais beaucoup de choix réfléchis qui interrogent et font réagir. C'est toujours intéressant de voir comment la société peut formater des habitudes sans s'en rendre compte et quand on en discute on se rend compte que ce ne sont pas toujours des choix personnels.
En attendant le retour en ligne, j'essaye de faire le point sur tous mes projets en cours parce que je me rends compte que j'ai beaucoup de code à partager mais comme je n'aime pas trop partager des choses non abouties je me retrouve à ne rien publier et c'est dommage parce qu'il y a des choses bien sympathiques dans le tas.
Bonne fin d'année 2022 et on se retrouve normalement le 18 avril 2023 !
]]>
KrISS jams pour générer des étiquettes pour vos pots de confitures
http://tontof.net/index.php?2021/06/22/11/17/13-kriss-jams-pour-generer-des-etiquettes-pour-vos-pots-de-confitures
Pots d'échappement
J'avais prévu un article pour me plaindre de toutes ces choses qui me chagrinent : quand on m'a expliqué pourquoi on voyait de plus en plus de gros 4x4 et que l'exonération de malus pour ces 4x4 considérés comme utilitaires n'était sûrement pas un hasard, quand on m'a dit que certains gros utilitaires qui possédaient un jerrican pour faire tourner un compresseur avaient été modifiés pour le brancher directement sur le réservoir du véhicule (ce qui était une bonne idée) mais après la sortie moteur ce qui nécessite de faire tourner le moteur constamment pour s'en servir... ou comment faire d'une bonne idée, une grosse idée de merde (peut-être qu'il y a une info technique qui m'échappe, mais en 2021, je n'arrive pas à comprendre comment on peut prendre ce genre de décision...), quand j'ai vu qu'un gros utilitaire lourd avait une vignette Crit'air 2 car plutôt récent mais qui pollue mille fois plus (hyperbole) que notre petite et légère voiture bien trop ancienne qui ne mériterait pas mieux qu'une vignette Crit'air 3 (je ne parle même pas de notre voiture encore plus légère et plus ancienne : « Votre véhicule ne répond pas aux critères retenus pour l'attribution d'un certificat qualité de l'air »), quand on comprend que les grosses camionnettes immatriculées principalement en Pologne sont le nouveau mode de transport à la mode car il permet de ne pas avoir les mêmes contraintes associées aux personnes qui roulent en camion, dormir après avoir beaucoup roulé quelle idée saugrenue... ou quand on vous explique que les tarifs de certains trajets en transport proposé par des camions non immatriculés en France sont impossibles à tenir car moins coûteux que les coûts réels, soupçon de blanchiment d'argent ? théorie du complot ou réalité, je ne préfère ne pas trop savoir. Bref, ce n'était pas un article très optimiste.
Vous avez le choix : faire comme moi et ne rien étiqueter parce qu'après tout en rangeant à peu près bien vos pots vous retrouvez ce que vous voulez et puis parfois on a la surprise de ne pas avoir le parfum que l'on croyait, ou bien comme ma (bonne) maman bien mieux organisée qui étiquette joliment tous ces pots. Petite aparté pour remercier publiquement mes parents pour un peu tout, j'ai une chance inestimable et j'en suis bien conscient.
Chaque année ma maman me demande donc de mettre à jour la date des étiquettes que je lui avais préparées. Sauf que cette année, magie du format svg et Inkscape, impossible de faire tout ça en ligne de commande, mise à jour depuis la version 0.92 avec un dpi qui change, l'option convert-dpi-method=scale-viewbox n'étant pas gérer et un problème de police mal installée posait problème avec Inkscape et GIMP mais pas Firefox. Je vous avais dit que j'avais un peu plus de temps alors j'en ai profité pour faire KrISS jams un générateur d'étiquettes pour les pots de confitures.
Petite précision, les réglages par défaut correspondront à ceux voulus par ma maman et risquent de changer avec le temps. J'ai un peu plus de temps mais pas suffisamment pour améliorer l'outil avec les réglages paramétrables dans l'ancre de l'url. Il faudrait aussi que je traduise pour avoir tout en français et en anglais, mais en attendant l'interface est en anglais et le contenu en français. J'aurais bien aimé avoir un petit éditeur pour personnaliser l'étiquette mais je n'ai rien trouvé de simple et fonctionnel comme je l'imaginais. C'est donc pour le moment limité à une image, la date et le texte. Techniquement c'était intéressant pour rendre tout ça responsive et j'ai trouvé les images de Daria Ustiugova parfaites pour illustrer les étiquettes merci pour ce travail et de m'avoir autorisé à le partager avec ces belles images.
Bel été et bonnes confitures 2021 à tout le monde.]]>2021-06-22T11:17:13+00:00frtontofA simple and smart (or stupid) blog
Pots d'échappement
J'avais prévu un article pour me plaindre de toutes ces choses qui me chagrinent : quand on m'a expliqué pourquoi on voyait de plus en plus de gros 4x4 et que l'exonération de malus pour ces 4x4 considérés comme utilitaires n'était sûrement pas un hasard, quand on m'a dit que certains gros utilitaires qui possédaient un jerrican pour faire tourner un compresseur avaient été modifiés pour le brancher directement sur le réservoir du véhicule (ce qui était une bonne idée) mais après la sortie moteur ce qui nécessite de faire tourner le moteur constamment pour s'en servir... ou comment faire d'une bonne idée, une grosse idée de merde (peut-être qu'il y a une info technique qui m'échappe, mais en 2021, je n'arrive pas à comprendre comment on peut prendre ce genre de décision...), quand j'ai vu qu'un gros utilitaire lourd avait une vignette Crit'air 2 car plutôt récent mais qui pollue mille fois plus (hyperbole) que notre petite et légère voiture bien trop ancienne qui ne mériterait pas mieux qu'une vignette Crit'air 3 (je ne parle même pas de notre voiture encore plus légère et plus ancienne : « Votre véhicule ne répond pas aux critères retenus pour l'attribution d'un certificat qualité de l'air »), quand on comprend que les grosses camionnettes immatriculées principalement en Pologne sont le nouveau mode de transport à la mode car il permet de ne pas avoir les mêmes contraintes associées aux personnes qui roulent en camion, dormir après avoir beaucoup roulé quelle idée saugrenue... ou quand on vous explique que les tarifs de certains trajets en transport proposé par des camions non immatriculés en France sont impossibles à tenir car moins coûteux que les coûts réels, soupçon de blanchiment d'argent ? théorie du complot ou réalité, je ne préfère ne pas trop savoir. Bref, ce n'était pas un article très optimiste.
Vous avez le choix : faire comme moi et ne rien étiqueter parce qu'après tout en rangeant à peu près bien vos pots vous retrouvez ce que vous voulez et puis parfois on a la surprise de ne pas avoir le parfum que l'on croyait, ou bien comme ma (bonne) maman bien mieux organisée qui étiquette joliment tous ces pots. Petite aparté pour remercier publiquement mes parents pour un peu tout, j'ai une chance inestimable et j'en suis bien conscient.
Chaque année ma maman me demande donc de mettre à jour la date des étiquettes que je lui avais préparées. Sauf que cette année, magie du format svg et Inkscape, impossible de faire tout ça en ligne de commande, mise à jour depuis la version 0.92 avec un dpi qui change, l'option convert-dpi-method=scale-viewbox n'étant pas gérer et un problème de police mal installée posait problème avec Inkscape et GIMP mais pas Firefox. Je vous avais dit que j'avais un peu plus de temps alors j'en ai profité pour faire KrISS jams un générateur d'étiquettes pour les pots de confitures.
Petite précision, les réglages par défaut correspondront à ceux voulus par ma maman et risquent de changer avec le temps. J'ai un peu plus de temps mais pas suffisamment pour améliorer l'outil avec les réglages paramétrables dans l'ancre de l'url. Il faudrait aussi que je traduise pour avoir tout en français et en anglais, mais en attendant l'interface est en anglais et le contenu en français. J'aurais bien aimé avoir un petit éditeur pour personnaliser l'étiquette mais je n'ai rien trouvé de simple et fonctionnel comme je l'imaginais. C'est donc pour le moment limité à une image, la date et le texte. Techniquement c'était intéressant pour rendre tout ça responsive et j'ai trouvé les images de Daria Ustiugova parfaites pour illustrer les étiquettes merci pour ce travail et de m'avoir autorisé à le partager avec ces belles images.
Bel été et bonnes confitures 2021 à tout le monde.]]>
Quelques nouvelles et une mise à jour de KrISS tuto
http://tontof.net/index.php?2021/02/19/18/02/21-quelques-nouvelles-et-une-mise-a-jour-de-kriss-tuto
Je pourrais résumé 2020 comme l'année de Merdouille. Cette simple phrase n'est pas anodine et correspond à quelques choses de très personnel, très loin de tout ce que se rappelleront la plupart des gens.
Parce qu'en ce moment des personnes ont besoin d'avoir des informations positives, je ne vais vous parler que de choses chouettes.
Accès à distance avec la banque à l'écureuil
Je ne parlerai donc pas de ma banque à l'écureuil qui depuis la mise en place de l'authentification par SMS ne me donne plus aucun accès sur internet et ne me propose aucune solution alternative. Même leur service technique n'a pas su m'expliquer pourquoi, la personne par téléphone m'a simplement dit que ça arrivait parfois et qu'il fallait demander à mon agence de me mettre sur liste blanche. Sauf que c'est sur décision du directeur d'agence et que ce dernier n'a pas voulu. En cherchant de mon côté je me suis aperçu que c'était lié à mon téléphone, mon nokia 1110 ne reçoit pas le SMS d'authentification, mais il reçoit bien celui du mot de passe de réinitialisation. J'ai bien sûr dit à ma banque que je n'allais pas changer de téléphone et que je voulais donc fermer mes comptes ce à quoi on m'a répondu de fournir mon relevé d'impôts... C'est quoi le rapport ??? Je n'avais déjà plus de chèque/carte bancaire sur ce compte, mais maintenant je me retrouve donc avec un compte vide chez l'écureuil après avoir effectué les virements nécessaires.
Linux Mint 20.1 et libinput
Je ne vous parlerai pas non plus de mes récents problèmes avec Linux Mint. C'est vrai que ça faisait longtemps que tout se passait bien sauf qu'à ma dernière mise à jour sur Linux Mint 20.1, écran noir au redémarrage bloqué sur grub. La solution était assez simple à trouver avec une live USB :
- sudo grub-install /dev/sda
- sudo update-grub
mais c'est assez déstabilisant parce que ça ne m'était jamais arrivé. Je n'ai pas cherché à comprendre mais peut-être que c'était lié à mon partitionnement sur mon disque qui était déjà bien découpé. Je n'abandonnerai pas pour autant tout ça pour passer à Windows 10 comme certaines personnes parce qu'au fond je sais que j'aurais encore plus de problèmes avec Windows. Je suis tout à fait d'accord avec Sebsauvage et j'ai beaucoup moins de demandes/problèmes depuis que j'ai passé mes proches à Linux que quand ces personnes étaient sous Windows (on parle de personnes qui ont un usage limité à la bureautique/internet avec les ordinateurs). Avec Linux Mint 20.1 j'ai également de temps en temps un problème avec mon touchpad à cause de la nouvelle bibliothèque libinput mais c'était annoncé : https://linuxmint.com/rel_ulyssa_mate.php et la solution proposée est très acceptable : apt install xserver-xorg-input-synaptics
Par contre je vais quand même faire un vrai reproche que je crois encore lié à libinput mais avant de l'imposer par défaut il faudrait s'assurer que ça fonctionne bien. Si vous utilisez des manettes et qu'il faut les calibrer vous ne pourrez pas le faire simplement. Avant il y avait jstest-gtk et il n'y a aucun équivalent avec la nouvelle version evtest-qt. Heureusement j'ai trouvé une solution grâce à python qui permet de faire un man in the middle avec la manette ! Mais il faut bien avouer que ce n'est pas à la portée de tout le monde.
MakeMKV
Et entre nous, je ne vais pas non plus vous embêter avec mes problèmes pour lire des DVD officiels d'une ancienne série. Aucun problème avec les 3 premières saisons et le premier DVD de la 4e et dernière saison (parce qu'il ne faut pas se le cacher mais quand une série est considérée terminée et que parce qu'il y a sûrement de l'argent à se faire on refait une saison des années plus tard, ça ne donne jamais des merveilles, je considère donc la saison 4 comme la dernière) mais à partir du 2e DVD de la saison 4, ce dernier se montait comme périphérique TSITFAT. La solution n'a pas été simple a trouvé mais maintenant tout fonctionne grâce à MakeMKV. Des personnes se demandent encore pourquoi des gens piratent des séries, mais même avec les DVD dans les mains j'ai dû regardé des épisodes en streaming le temps que je trouve comment corriger ce problème de TSITFAT... Et encore sur un ordi, merci VLC, on peut passer les menus parce que les annonces sur les DVD officiels pour dire que le piratage c'est mal et que sur un lecteur DVD de salon on ne peut pas passer, c'est vraiment mais alors vraiment la meilleure solution pour favoriser le piratage...
Pour parler vraiment de choses chouettes, je suis resté dans le silence alors que je n'aurais jamais été autant prolifique cette année 2020. J'ai mis en production un projet pro qui aura duré plus d'un an et demi, ce qui explique aussi mon silence et qui maintenant est en place depuis fin octobre sans trop de problème, en tout cas pas forcément de ma faute. Les certificats Let's Encrypt ont changé et n'étaient plus compatibles avec les anciennes version d'Android, heureusement c'est de nouveau fonctionnel : https://letsencrypt.org/2020/12/21/extending-android-compatibility.html
J'ai aussi dû modifier mes cours comme jamais pour qu'ils puissent être adaptés aux cours à distance (avec le recul que de temps perdu quand on voit le résultat). J'ai dû mettre en place de nouvelles modalités pour évaluer mes matières (que de temps gagné pour la mise en place des futurs examens). Il était évident que l'évaluation à distance allait conduire à une triche massive de la part des étudiant⋅es. Le nombre de collègues qui ont fait comme si c'était une évaluation normale ont eu la surprise de voir des copies semblables/identiques, sérieusement ?
De mon côté j'ai mis en place des générateurs d'énoncés pour évaluer mes matières avec des thèmes différents (merci ÉS pour toutes ces propositions) et des questions différentes pour chaque copie et même avec ça, j'ai eu le droit à des réponses qui parlaient d'abeilles alors que la copie parlait de chèvres...
Quand j'aurais un peu de temps j'essayerai de partager tout ça parce que je pense que ça pourrait être utile. C'est autre chose que la génération de QCM avec LaTeX et il est sûr que ça prend plus de temps pour faire la correction, mais au moins on sait ce qu'on évalue. Petit aperçu pour l'évaluation de requêtes algébriques ou SQL :
- « Donner le nombre de membres des troupes qui se sont produites dans des festivités qui se sont déroulées dans des villes dont l'altitude est 75 »
- « Donner le genre musical du groupe qui a l'année de formation la plus grande (ou les genres musicaux des groupes si plusieurs groupes ont la même année de formation) »
Tout ceci est généré automatiquement et je suis assez fier du résultat mais beaucoup moins du code. Coder vite et bien ce n'est pas toujours simple.
J'avais prévu depuis longtemps de ne pas intervenir en cours fin 2020 et c'est plutôt bien tombé parce que l'organisation de la rentrée a été plutôt compliquée. C'est guère mieux pour ce 2e semestre, mais il y a un peu plus d'expérience et il semblerait acquis (avant de nouvelles annonces) que les examens à distance c'est terminé. J'en ai quand même profité pour mettre à jour mes cours HTML/CSS/JS/PHP en supprimant jquery, en remplaçant highlight.js par CodeMirror et en ajoutant Split Grid (un petit plus que j'ai ajouté pour changer la largeur de colonnes de l'éditeur quand j'en ai besoin).
Je pense être quelqu'un de très exigeant et je n'ai pratiquement plus rien à redire sur ces supports, je suis presque entièrement satisfait par mon approche pour faire ces cours. Je ne parle pas du fond mais bien de la forme. Je remercie vraiment GNU Emacs, Org Mode, reveal.js, org-reveal, PHP.js et MathJax.
À dans un an et demi ? Je devrais avoir plus de temps pour partager des choses, je pense donc que ça sera avant mais je ne préfère pas m'avancer, on ne sait jamais de quoi sera fait l'avenir.]]>2021-02-19T18:02:21+00:00frtontofA simple and smart (or stupid) blog
Je pourrais résumé 2020 comme l'année de Merdouille. Cette simple phrase n'est pas anodine et correspond à quelques choses de très personnel, très loin de tout ce que se rappelleront la plupart des gens.
Parce qu'en ce moment des personnes ont besoin d'avoir des informations positives, je ne vais vous parler que de choses chouettes.
Accès à distance avec la banque à l'écureuil
Je ne parlerai donc pas de ma banque à l'écureuil qui depuis la mise en place de l'authentification par SMS ne me donne plus aucun accès sur internet et ne me propose aucune solution alternative. Même leur service technique n'a pas su m'expliquer pourquoi, la personne par téléphone m'a simplement dit que ça arrivait parfois et qu'il fallait demander à mon agence de me mettre sur liste blanche. Sauf que c'est sur décision du directeur d'agence et que ce dernier n'a pas voulu. En cherchant de mon côté je me suis aperçu que c'était lié à mon téléphone, mon nokia 1110 ne reçoit pas le SMS d'authentification, mais il reçoit bien celui du mot de passe de réinitialisation. J'ai bien sûr dit à ma banque que je n'allais pas changer de téléphone et que je voulais donc fermer mes comptes ce à quoi on m'a répondu de fournir mon relevé d'impôts... C'est quoi le rapport ??? Je n'avais déjà plus de chèque/carte bancaire sur ce compte, mais maintenant je me retrouve donc avec un compte vide chez l'écureuil après avoir effectué les virements nécessaires.
Linux Mint 20.1 et libinput
Je ne vous parlerai pas non plus de mes récents problèmes avec Linux Mint. C'est vrai que ça faisait longtemps que tout se passait bien sauf qu'à ma dernière mise à jour sur Linux Mint 20.1, écran noir au redémarrage bloqué sur grub. La solution était assez simple à trouver avec une live USB :
- sudo grub-install /dev/sda
- sudo update-grub
mais c'est assez déstabilisant parce que ça ne m'était jamais arrivé. Je n'ai pas cherché à comprendre mais peut-être que c'était lié à mon partitionnement sur mon disque qui était déjà bien découpé. Je n'abandonnerai pas pour autant tout ça pour passer à Windows 10 comme certaines personnes parce qu'au fond je sais que j'aurais encore plus de problèmes avec Windows. Je suis tout à fait d'accord avec Sebsauvage et j'ai beaucoup moins de demandes/problèmes depuis que j'ai passé mes proches à Linux que quand ces personnes étaient sous Windows (on parle de personnes qui ont un usage limité à la bureautique/internet avec les ordinateurs). Avec Linux Mint 20.1 j'ai également de temps en temps un problème avec mon touchpad à cause de la nouvelle bibliothèque libinput mais c'était annoncé : https://linuxmint.com/rel_ulyssa_mate.php et la solution proposée est très acceptable : apt install xserver-xorg-input-synaptics
Par contre je vais quand même faire un vrai reproche que je crois encore lié à libinput mais avant de l'imposer par défaut il faudrait s'assurer que ça fonctionne bien. Si vous utilisez des manettes et qu'il faut les calibrer vous ne pourrez pas le faire simplement. Avant il y avait jstest-gtk et il n'y a aucun équivalent avec la nouvelle version evtest-qt. Heureusement j'ai trouvé une solution grâce à python qui permet de faire un man in the middle avec la manette ! Mais il faut bien avouer que ce n'est pas à la portée de tout le monde.
MakeMKV
Et entre nous, je ne vais pas non plus vous embêter avec mes problèmes pour lire des DVD officiels d'une ancienne série. Aucun problème avec les 3 premières saisons et le premier DVD de la 4e et dernière saison (parce qu'il ne faut pas se le cacher mais quand une série est considérée terminée et que parce qu'il y a sûrement de l'argent à se faire on refait une saison des années plus tard, ça ne donne jamais des merveilles, je considère donc la saison 4 comme la dernière) mais à partir du 2e DVD de la saison 4, ce dernier se montait comme périphérique TSITFAT. La solution n'a pas été simple a trouvé mais maintenant tout fonctionne grâce à MakeMKV. Des personnes se demandent encore pourquoi des gens piratent des séries, mais même avec les DVD dans les mains j'ai dû regardé des épisodes en streaming le temps que je trouve comment corriger ce problème de TSITFAT... Et encore sur un ordi, merci VLC, on peut passer les menus parce que les annonces sur les DVD officiels pour dire que le piratage c'est mal et que sur un lecteur DVD de salon on ne peut pas passer, c'est vraiment mais alors vraiment la meilleure solution pour favoriser le piratage...
Pour parler vraiment de choses chouettes, je suis resté dans le silence alors que je n'aurais jamais été autant prolifique cette année 2020. J'ai mis en production un projet pro qui aura duré plus d'un an et demi, ce qui explique aussi mon silence et qui maintenant est en place depuis fin octobre sans trop de problème, en tout cas pas forcément de ma faute. Les certificats Let's Encrypt ont changé et n'étaient plus compatibles avec les anciennes version d'Android, heureusement c'est de nouveau fonctionnel : https://letsencrypt.org/2020/12/21/extending-android-compatibility.html
J'ai aussi dû modifier mes cours comme jamais pour qu'ils puissent être adaptés aux cours à distance (avec le recul que de temps perdu quand on voit le résultat). J'ai dû mettre en place de nouvelles modalités pour évaluer mes matières (que de temps gagné pour la mise en place des futurs examens). Il était évident que l'évaluation à distance allait conduire à une triche massive de la part des étudiant⋅es. Le nombre de collègues qui ont fait comme si c'était une évaluation normale ont eu la surprise de voir des copies semblables/identiques, sérieusement ?
De mon côté j'ai mis en place des générateurs d'énoncés pour évaluer mes matières avec des thèmes différents (merci ÉS pour toutes ces propositions) et des questions différentes pour chaque copie et même avec ça, j'ai eu le droit à des réponses qui parlaient d'abeilles alors que la copie parlait de chèvres...
Quand j'aurais un peu de temps j'essayerai de partager tout ça parce que je pense que ça pourrait être utile. C'est autre chose que la génération de QCM avec LaTeX et il est sûr que ça prend plus de temps pour faire la correction, mais au moins on sait ce qu'on évalue. Petit aperçu pour l'évaluation de requêtes algébriques ou SQL :
- « Donner le nombre de membres des troupes qui se sont produites dans des festivités qui se sont déroulées dans des villes dont l'altitude est 75 »
- « Donner le genre musical du groupe qui a l'année de formation la plus grande (ou les genres musicaux des groupes si plusieurs groupes ont la même année de formation) »
Tout ceci est généré automatiquement et je suis assez fier du résultat mais beaucoup moins du code. Coder vite et bien ce n'est pas toujours simple.
J'avais prévu depuis longtemps de ne pas intervenir en cours fin 2020 et c'est plutôt bien tombé parce que l'organisation de la rentrée a été plutôt compliquée. C'est guère mieux pour ce 2e semestre, mais il y a un peu plus d'expérience et il semblerait acquis (avant de nouvelles annonces) que les examens à distance c'est terminé. J'en ai quand même profité pour mettre à jour mes cours HTML/CSS/JS/PHP en supprimant jquery, en remplaçant highlight.js par CodeMirror et en ajoutant Split Grid (un petit plus que j'ai ajouté pour changer la largeur de colonnes de l'éditeur quand j'en ai besoin).
Je pense être quelqu'un de très exigeant et je n'ai pratiquement plus rien à redire sur ces supports, je suis presque entièrement satisfait par mon approche pour faire ces cours. Je ne parle pas du fond mais bien de la forme. Je remercie vraiment GNU Emacs, Org Mode, reveal.js, org-reveal, PHP.js et MathJax.
À dans un an et demi ? Je devrais avoir plus de temps pour partager des choses, je pense donc que ça sera avant mais je ne préfère pas m'avancer, on ne sait jamais de quoi sera fait l'avenir.]]>
Filtre calendrier ICS
http://tontof.net/index.php?2019/06/27/17/06/27-filtre-calendrier-ics
On m'a demandé si c'était possible et après une rapide recherche, je n'ai rien trouvé qui permettait de faire ça : je n'ai pas réussi à utiliser https://icalfilter.com/
Je serai curieux de savoir si c'est possible de le faire avec un https://framagenda.org mais en utilisant un parseur et un formatteur PHP c'est plutôt simple.
Dans un fichier index.php <?php require_once 'vendor/autoload.php';
use ICal\ICal;
use Jsvrcek\ICS\Model\Calendar;
use Jsvrcek\ICS\Model\CalendarEvent;
use Jsvrcek\ICS\Model\Relationship\Attendee;
use Jsvrcek\ICS\Model\Relationship\Organizer;
use Jsvrcek\ICS\Utility\Formatter;
use Jsvrcek\ICS\CalendarStream;
use Jsvrcek\ICS\CalendarExport;
try {
$ical = new ICal('https://raw.githubusercontent.com/u01jmg3/ics-parser/master/examples/ICal.ics', array( 'defaultSpan' => 2, // Default value 'defaultTimeZone' => 'UTC', 'defaultWeekStart' => 'MO', // Default value 'disableCharacterReplacement' => false, // Default value 'filterDaysAfter' => null, // Default value 'filterDaysBefore' => null, // Default value 'replaceWindowsTimeZoneIds' => false, // Default value 'skipRecurrence' => false, // Default value 'useTimeZoneWithRRules' => false, // Default value ));
} catch (\Exception $e) {
die($e);
}
]]>2019-06-27T17:06:27+00:00frtontofA simple and smart (or stupid) blog
On m'a demandé si c'était possible et après une rapide recherche, je n'ai rien trouvé qui permettait de faire ça : je n'ai pas réussi à utiliser https://icalfilter.com/
Je serai curieux de savoir si c'est possible de le faire avec un https://framagenda.org mais en utilisant un parseur et un formatteur PHP c'est plutôt simple.
Dans un fichier index.php <?php require_once 'vendor/autoload.php';
use ICal\ICal;
use Jsvrcek\ICS\Model\Calendar;
use Jsvrcek\ICS\Model\CalendarEvent;
use Jsvrcek\ICS\Model\Relationship\Attendee;
use Jsvrcek\ICS\Model\Relationship\Organizer;
use Jsvrcek\ICS\Utility\Formatter;
use Jsvrcek\ICS\CalendarStream;
use Jsvrcek\ICS\CalendarExport;
try {
$ical = new ICal('https://raw.githubusercontent.com/u01jmg3/ics-parser/master/examples/ICal.ics', array( 'defaultSpan' => 2, // Default value 'defaultTimeZone' => 'UTC', 'defaultWeekStart' => 'MO', // Default value 'disableCharacterReplacement' => false, // Default value 'filterDaysAfter' => null, // Default value 'filterDaysBefore' => null, // Default value 'replaceWindowsTimeZoneIds' => false, // Default value 'skipRecurrence' => false, // Default value 'useTimeZoneWithRRules' => false, // Default value ));
} catch (\Exception $e) {
die($e);
}