PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Chimrod : De la calligraphie en javascript

dimanche 3 janvier 2021 à 00:00

À la suite de mon article précédent, j’ai essayé d’aller un peu plus loin dans ce qu’il était possible de faire en javascript. La page pour construire les graphes montrait déjà qu’il était possible de charger du javascript dans la page, et modifier directement le contenu du blog à partir du code exécuté.

En suivant toujours la même démarche (code en OCaml, compilé en javascript), j’ai mis en place une ardoise dans laquelle je souhaitais retrouver sur PC le rendu que l’on peut avoir avec une plume dans la main: l’ardoise calligraphique.

Ce que j’ai appris

Les courbes de beziers! Je ne pensais pas qu’il y aurait autant à faire avec! Pour ceux que cela intéresse, la page A Primer on Bézier Curves est une référence avec tout ce qu’il faut pour mettre en place ses propres librairies.

Afin d’avoir un tracé souple de la courbe, j’ai suivi un document de l’UCLA qui explique comment construire les courbes de beziers en suivant une série de points, ce qui m’a fait faire un détour par les produits matriciels pour résoudre ce genre d’équations:

\\begin{equation*} \\begin{bmatrix}4 && 1 && 0 && 0 \\\\ 1 && 4 && 1 && 0 \\\\0 && 1 && 4 && 1 \\\\0 && 0 && 1 && 4 \\end{bmatrix} \\begin{bmatrix} B_1 \\\\ B_2 \\\\ B_3 \\\\ B_4 \\end{bmatrix} = \\begin{bmatrix} (6 S_1 - S_0) \\\\ 6S_2 \\\\ 6 S_3 \\\\ (6S_4 - S_5) \\end{bmatrix} \\end{equation*}

A priori, il n’existe pas de librairie pour faire de la réduction de matrice en javascript, mais l’avantage d’utiliser OCaml est d’avoir sous la main quelques librairies permettant de faire le boulot directement.

Ensuite, travailler le DOM. Vu que le site est statique, j’ai choisi de modifier la page directement à partir du code javascript. En ajoutant un élément, en retirant ceux dont je n’avais nécessité, cela permet de changer l’apparence directement pour se contruire son application. Cela m’a permis de me plonger dans la librairie brr qui permet d’interragir avec la page via des évènemens fonctionnels.

Enfin, les webWorkers, qui sont des threads pouvant être lancés dans le code javascript. Dans l’application, je les utilise pour lisser la courbe une fois que celle-ci a été contruite une première fois.

Ce qu’il faudrait continuer

Il me manque tout un cadre mathématique pour aller plus loin, j’aurai par exemple besoin de déterminer l’extrémité exacte de la courbe afin de traiter ces cas de manière précise, et j’ai besoin de comprendre le code avant de m’y mettre…

Par conséquent, l’export SVG est un peu biaisé, on retrouve bien ce qui est affiché sur l’écran, mais cela donne quelque chose qui n’est pas vraiment éditable comme je l’aurai souhaité.

Il faudrait aussi aller plus loin dans les mouvements de plumes, permettre des rotations locales, juste sur un segment et non pas sur la totalité du tracé, enfin des petits ajustements pour qu’il y ait vraiment une plus-value.

D’autres pistes

Cela m’a aussi donné d’autres pistes pour continuer avec javascript et le blog. En utilisant l’API Web Storage, on peut également stocker des données comme si l’on travaillait sur un fichier, les données étant stockées dans l’espace du navigateur. En combinant cela avec le côté statique du site, je pense à une page de prise de note, qui dont le code serait uniquement exécuté dans le navigateur, sans avoir besoin de serveur comme support.

Le blog offrant un espace dans lequel je peux mettre en ligne mes applications, cela me donne envie de continuer et m’en servir comme petit terrain d’exipérimentation…

Gravatar de Chimrod
Original post of Chimrod.Votez pour ce billet sur Planet Libre.

Articles similaires

miamondo : DWService, une application de télémaintenance originaire d’Estonie

vendredi 1 janvier 2021 à 23:35

DWService est une application de télémaintenance qui nous vient d’Estonie. C’est une alternative libre à TeamViewer. Elle permet entre autre de prendre le contrôle d’un ordinateur à distance.


Il y a quelques mois, j’ai découvert qu’il existait une alternative libre et open source à TeamViewer. Ce n’est pas que je me sers de ce genre d’outils tous les jours mais il m’arrive parfois de devoir dépanner à distance, l’ordinateur d’un membre de ma famille ou d’un ami.

DWService est une application qui nous vient d’Estonie, un petit pays assez singulier puisqu’il s’est converti au tout numérique quelques années après son indépendance obtenue en 1991. Aujourd’hui, l‘Estonie est ultra-connectée, à tel point qu’il serait plus judicieux de parler d’elle en utilisant le vocable e-stonie. Pourtant, tout n’est pas parfait dans ce choix d’une société digitalisée à l’extrême. Il y a toujours un risque que les informations numériques des citoyens estoniens soient interceptées par des pirates informatiques, ou exploitées par un régime autoritaire qui réussirait à prendre le pouvoir. Cela reste toutefois une expérience digne d’intérêt et qui a inspiré d’autres pays. Sachez également que l’Estonie rémunère des hackeurs pour tester la résistance de sa forteresse numérique et corriger les failles de sécurité éventuelles. Il faut juste qu’un orage magnétique ne frappe pas cette petite nation, sans quoi c’est retour direct à l’âge de pierre. Et par les temps qui courent, on sait que science-fiction et réalité peuvent se confondre…

L’e-stonie

Bref, c’est tout de même avec une certaine confiance que j’ai testé DWService. Comme je l’ai déjà dit en introduction, il s’agit d’une application qui permet de prendre le contrôle d’un autre ordinateur à distance et ceci, quel que soit son système d’exploitation (Linux, Windows 10 ou Apple). Mais ce qui fait la particularité de DWService par rapport à TeamViewer, c’est que tout se déroule dans le navigateur.

Alors, comment ça fonctionne? Eh bien, ce n’est pas très compliqué. Sur l’ordinateur qui va être « capturé », il faut d’abord se rendre sur la page d’accueil de DWService avant de télécharger et d’installer dwagent. Si votre système d’exploitation est Windows 10, une fois téléchargé, vous allez exécuter un fichier de type *.exe, tandis que si vous tournez sous Linux, vous allez lancer ce fichier : ./dwagent.sh (évidemment après lui avoir conféré les droits d’exécution: chmod +x ./dwagent.sh). En théorie, si je ne raconte pas de bêtises, l’ordinateur qui prend le contrôle à distance n’est même pas obligé de télécharger le fichier dwagent.sh.

C’est ainsi que j’ai procédé pour tester cette application.

mkdir ~/.config/dwagent 
cd ~/.config/dwagent
chmod +x ./dwagent.sh
./dwagent.sh

Ensuite, le programme m’a demandé de choisir entre trois possibilités:

  1. Installer
  2. Exécuter
  3. Je refuse

J’ai choisi exécuter.

À la suite de quoi le programme m’a fourni un n° d’identifiant (xxx-xxx-xxx-xxx) et un mot de passe (xxxx). Je suis retourné dans ma cuisine, où j’avais installé mon ordinateur portable. J’ai renseigné ces informations sur le site de DWService, dans la fenêtre intitulée Identifiant.

Et après quelques secondes, je me suis retrouvé devant cette fenêtre :

J’ai cliqué sur écran. Et là, miracle! J’ai vu apparaître le second écran de mon ordinateur de bureau, celui que vous voyez sur l’image ci-dessous:

Revenons sur l’image précédente. Vous constatez que vous avez la possibilité d’avoir accès à tous les dossiers et à tous les fichiers. Vous pouvez télécharger ou téléverser ce que vous voulez. Vous avez même une console à votre disposition. Tout ça pour dire qu’il faut avoir pleine confiance en celui qui prend le contrôle de votre ordinateur. S’il est vêtu d’un chandail à capuche rabattue sur une cagoule et qu’il s’exprime avec un accent russe, méfiez-vous quand-même… C’est un conseil d’ami que je vous donne. Mais bon… Normalement, il s’agit d’un outil pour les administrateurs. Il s’utilise donc principalement dans un cadre professionnel. Ce n’est pas pour faire le mariole.

Pour conclure, il existe d’autres possibilités de se connecter et d’identifier les agents dont vous pouvez prendre le contrôle. Tout est expliqué ici mais pas forcément d’une manière limpide, ce qui rend la prise en main de l’application pas toujours intuitive. Attention, DWService ne fonctionne pas avec Wayland. Si vous êtes sur Ubuntu par exemple, au moment d’entrer votre mot de passe, il faut désactiver Wayland ou bien vous débrouiller pour le faire tourner sur Xwayland, qui est une espèce d’entretoise entre X et Wayland.

Voilà… Donc, il est clair pour moi que je vais remplacer TeamViewer par DWService mais simplement pour faire du dépannage à distance. Je n’ai pas forcément envie de transférer des fichiers par ce biais.

Gravatar de miamondo
Original post of miamondo.Votez pour ce billet sur Planet Libre.

citizenz7 : Symfony 5 : bien débuter

vendredi 1 janvier 2021 à 20:24
symfony-5-bien-debuter

Gravatar de citizenz7
Original post of citizenz7.Votez pour ce billet sur Planet Libre.

antistress : Deux de mes fiertés : la cigarette et les réseaux sociaux

vendredi 1 janvier 2021 à 11:41

Pouce renversé devant une cigarette se consumant
Crédits photo en fin de billet [1]

Étant dans ma quarante-cinquième année, j'ai eu la chance (je crois que ça en est une) de connaître une adolescence sans smartphone et surtout sans réseaux sociaux (au sens étriqué et artificiel où on entend « réseaux sociaux » de nos jours, puisque ces termes ont été préemptés au bénéfice de quelques sociétés et de leur marque [2]). J'ai plus de vingt ans lorsque Facebook se répand autour de moi.

Mais revenons à mon adolescence : je me souviens très clairement qu'à la fin des années 80, début des 90, fumer la cigarette était perçu comme très cool, et vous connaissez le besoin de conformation aux pairs caractéristique de cet âge.

Je ne sais par quel miracle j'ai réussi à ne pas céder à la tentation de fumer ma première cigarette – celle qui décide des suivantes – laquelle tentation s'est pourtant présentée à moi à d'innombrables reprises.

Pour ce qui est des réseaux sociaux, éviter la tentation a sans doute été plus facile compte tenu que j'avais dépassé l'adolescence lorsqu'ils se sont répandus. Mais cela ne veut pas dire que je n'ai pas été confronté, de multiples fois, à cette tentation, à la pression sociale.

J'ai notamment ce souvenir précis, tandis que j'étais en vacances avec une tribu d'amis dont certains plus jeunes qui insistaient pour que je les rejoigne sur Facebook. Je me souviens m'être retrouvé à hésiter devant l'écran d'accueil particulièrement léché de Facebook.

Ce qui m'a fait tenir était que j'avais alors acquis ma conviction de libriste et que les problèmes de vie privée posés par des services comme Facebook étant déjà clairement identifiés et commentés dans ma sphère informationnelle. J'ai pu arbitrer en faveur de mes valeurs et en défaveur de Facebook. De justesse.

Bien plus tard les réseaux sociaux alternatifs, décentralisés et/ou respectueux de la vie privée, ont commencé à émerger, de sorte qu'il est devenu possible de fréquenter des réseaux sociaux en ligne « sans se compromettre » (ni compromettre le Monde).

Mais, à ce moment là, c'est une autre conviction qui m'a tenu éloigné des réseaux sociaux mêmes respectueux de la vie privée : celle que je devais maîtriser ma sphère informationnelle pour me dégager une disponibilité psychique.

Par un mélange de chance et de conscience je peux dire aujourd'hui que je n'ai ni (eu) besoin d'arrêter ni la cigarette ni les réseaux sociaux, faute d'y avoir préalablement succombé.

Et c'est tant mieux, parce que ceux qui ont eu à prendre la décision d'arrêter savent mieux que moi à quel point c'est difficile.

Surtout, je suis très heureux de l'équilibre que j'y ai trouvé.


[1] L'illustration de ce billet est une composition réalisée par mes soins avec GIMP à partir de cette photographie et de cette icône (que j'ai préalablement modifiée : source ici) ; elle est soumise à la licence CC BY-SA 2.0.
[2] Des sites comme LinuxFR ou des forums comme celui de HFR sont pour moi des réseaux sociaux.

Gravatar de antistress
Original post of antistress.Votez pour ce billet sur Planet Libre.

Eddy33 : Fedora 33 vs Fedora 32 : comparaison des performances pour les versions 64 bits

lundi 28 décembre 2020 à 15:14

Salut.

Voici les résultats comparatifs de Fedora 33 vs Fedora 32.

Pour rappel, ma machine est équipée d'un Quad Core Intel Q6600 à 2,4 GHz avec 4 Go de RAM.

Je me suis limité au benchmark UnixBench qui fournit un indice global, ce qui me simplifiera la comparaison. La version UnixBench utilisée est la version 4.1.0.

Mon protocole de tests est le suivant :
Voici les résultats obtenus :

Fedora 33 version 64 bits :

Série 1 : 695.5
Série 2 : 699.9
Série 3 : 714.6
Série 4 : 711.5
Série 5 : 714.1
Série 6 : 605.6
Série 7 : 683.1
Série 8 : 695.9
Série 9 : 707.2
Série 10 : 697.6

Moyenne : 692,5

Fedora 32 version 64 bits :

Voici pour rappel les résultats obtenus avec Fedora 32 :
Série 1 : 672.0
Série 2 : 680.7
Série 3 : 671.5
Série 4 : 687.4
Série 5 : 681.9
Série 6 : 675.2
Série 7 : 670.2
Série 8 : 688.8
Série 9 : 679.6
Série 10 : 682.9

Moyenne : 679.0

Résultats :

Pour Fedora 33, on obtient un indice moyen de 692,5 pour UnixBench.
Pour Fedora 32, j'avais obtenu un indice moyen de 679.0 pour UnixBench.


On a donc une petite hausse de 2,0 % de Fedora 33 64 bits par rapport à Fedora 32 64 bits :

perfs_fedora_F33.png

Conclusion :

Au moment de ces tests, le noyau Fedora 33 (basé sur le noyau vanilla 5.9.14) est un peu plus performant de près de 2 % que le noyau Fedora 32 (basé sur le noyau vanilla  5.6.6). On retrouve la fluctuation habituelle peu significative par rapport aux précédents tests.

++

Gravatar de Eddy33
Original post of Eddy33.Votez pour ce billet sur Planet Libre.