<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.4">Jekyll</generator><link href="https://arkemie.net/feed.xml" rel="self" type="application/atom+xml" /><link href="https://arkemie.net/" rel="alternate" type="text/html" /><updated>2025-12-15T15:48:31+01:00</updated><id>https://arkemie.net/feed.xml</id><title type="html">Arkemie</title><subtitle>Quand les symboles s’unissent aux nombres</subtitle><author><name>Jaden ACHAIN</name></author><entry><title type="html">Python - Streamlit</title><link href="https://arkemie.net/fiche/python-streamlit/" rel="alternate" type="text/html" title="Python - Streamlit" /><published>2025-09-22T00:00:00+02:00</published><updated>2025-09-22T00:00:00+02:00</updated><id>https://arkemie.net/fiche/python-streamlit</id><content type="html" xml:base="https://arkemie.net/fiche/python-streamlit/"><![CDATA[]]></content><author><name>Jaden ACHAIN</name></author><category term="Fiche" /><summary type="html"><![CDATA[Créer un site web avec python]]></summary></entry><entry><title type="html">Linux - Commandes utiles</title><link href="https://arkemie.net/fiche/linux-commandes/" rel="alternate" type="text/html" title="Linux - Commandes utiles" /><published>2025-09-08T00:00:00+02:00</published><updated>2025-09-08T00:00:00+02:00</updated><id>https://arkemie.net/fiche/linux-commandes</id><content type="html" xml:base="https://arkemie.net/fiche/linux-commandes/"><![CDATA[<h3 id="extraction-de-colonnes-dun-fichier">Extraction de Colonnes d’un Fichier</h3>

<p>La commande cut est utilisée pour extraire des sections de chaque ligne d’un fichier texte.</p>

<p><code class="language-plaintext highlighter-rouge">cut OPTION... [FILE]...</code></p>

<p>Options Communes :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-d : Spécifie le délimiteur.
-f : Spécifie les champs à extraire.
</code></pre></div></div>

<h3 id="suppression-de-lignes-vides">Suppression de Lignes Vides</h3>

<p>sed (Stream Editor) est un outil puissant pour manipuler les fichiers texte, comme supprimer ou insérer des lignes, remplacer du texte, etc.</p>

<p><code class="language-plaintext highlighter-rouge">sed [OPTION]... {script-only-if-no-other-script} [input-file]...</code></p>

<p>Options Communes :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-i : Modifie le fichier en place.
-e : Ajoute le script à exécuter.
</code></pre></div></div>

<h3 id="recherche-de-fichiers">Recherche de Fichiers</h3>

<p>find est utilisé pour rechercher des fichiers dans un système de fichiers selon divers critères comme le nom, la date de modification, la taille, etc.</p>

<p><code class="language-plaintext highlighter-rouge">find [chemin] [option] [action]</code></p>

<p>Options Communes :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-name : Recherche par nom de fichier.
-mtime : Recherche basée sur la dernière modification.
-size : Recherche par taille de fichier.
</code></pre></div></div>

<h3 id="compression-de-fichiers">Compression de Fichiers</h3>

<p>Linux offre plusieurs outils de compression, dont les plus courants sont tar, gzip, et bzip2. tar est souvent utilisé pour regrouper plusieurs fichiers en un seul, tandis que gzip et bzip2 sont utilisés pour la compression.</p>

<p><code class="language-plaintext highlighter-rouge">tar [OPTION]... [ARCHIVE] [FICHIERS]...</code></p>

<p>Options de Compression :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-z : Utilise gzip pour la compression.
-j : Utilise bzip2 pour la compression.
-c : Crée une archive.
-x : Extrait une archive.
</code></pre></div></div>

<h3 id="affichage-de-contenu-de-fichier">Affichage de Contenu de Fichier</h3>

<p>head et tail sont utilisés pour afficher le début et la fin d’un fichier, respectivement. sed peut être utilisé pour une manipulation plus complexe de texte.</p>

<p><code class="language-plaintext highlighter-rouge">head [OPTION]... [FICHIER]... tail [OPTION]... [FICHIER]...</code></p>

<p>Options Communes :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-n : Nombre de lignes à afficher.
</code></pre></div></div>

<h3 id="recherche-dans-un-fichier">Recherche dans un Fichier</h3>

<p>grep est utilisé pour rechercher des motifs dans des fichiers texte.</p>

<p><code class="language-plaintext highlighter-rouge">grep [OPTION]... MOTIF [FICHIER]...</code></p>

<p>Options Communes :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-c : Compte le nombre de lignes contenant le motif.
-i : Recherche insensible à la casse.
-v : Inverse la recherche (affiche les lignes ne contenant pas le motif).
</code></pre></div></div>

<h3 id="redirection-de-sortie">Redirection de Sortie</h3>

<p>La redirection est une fonctionnalité des shells Unix qui permet de rediriger la sortie standard (stdout) et l’erreur standard (stderr) vers des fichiers ou d’autres commandes.</p>

<p>Syntaxe :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&gt; : Redirige stdout vers un fichier.
2&gt; : Redirige stderr vers un fichier.
&amp;&gt; : Redirige à la fois stdout et stderr.
</code></pre></div></div>]]></content><author><name>Jaden ACHAIN</name></author><category term="Fiche" /><summary type="html"><![CDATA[Liste de commandes utiles sous Linux]]></summary></entry><entry><title type="html">Machine Learning - Apprentissage par renforcement</title><link href="https://arkemie.net/fiche/machine-learning-reinforcement-learning/" rel="alternate" type="text/html" title="Machine Learning - Apprentissage par renforcement" /><published>2025-09-05T00:00:00+02:00</published><updated>2025-09-05T00:00:00+02:00</updated><id>https://arkemie.net/fiche/machine-learning-reinforcement-learning</id><content type="html" xml:base="https://arkemie.net/fiche/machine-learning-reinforcement-learning/"><![CDATA[<h1 id="apprentissage-par-renforcement">Apprentissage par renforcement</h1>]]></content><author><name>Jaden ACHAIN</name></author><category term="Fiche" /><summary type="html"><![CDATA[Dans un problème de reinforcement learning, le modèle prend des décisions qui sont pondérées par des récompenses]]></summary></entry><entry><title type="html">Reflet</title><link href="https://arkemie.net/%C3%A9criture/histoire/reflet/" rel="alternate" type="text/html" title="Reflet" /><published>2025-07-31T00:00:00+02:00</published><updated>2025-07-31T00:00:00+02:00</updated><id>https://arkemie.net/%C3%A9criture/histoire/reflet</id><content type="html" xml:base="https://arkemie.net/%C3%A9criture/histoire/reflet/"><![CDATA[<p>Une fois rentré chez moi, je me dirigeai vers la salle de bain.<br />
Le reflet du miroir qui se dressait au-dessus de l’évier m’inspirait un goût amer.<br />
La dissonance entre le gouffre qui constituait mon passé et l’image qu’avait l’air d’avoir Ash me donnait l’impression d’être devant deux versions de moi distinctes.</p>

<p>Je plongeai mes yeux dans ceux du reflet que je reconnaissais à peine.</p>

<blockquote>
  <p>« Qui suis-je ? Qu’ai-je fait ? » Dis-je avec une profonde tristesse qui s’emparait de moi.</p>
</blockquote>

<blockquote>
  <p>« C’est une fois détruit que tu renaîtras », ces mots résonnaient au fond de moi</p>
</blockquote>

<p>L’image de mon corps décharné me revint, et les sensations qui m’avaient parcouru.<br />
Cette froideur, ce silence, ce vacarme, ce rythme.
Je ne reconnaissais plus les pulsations de mon propre cœur.<br />
Puis j’entendis quelque chose couler, je me souvenais de l’écho d’un rêve qui avait précédé mon réveil.</p>

<p>Une longue rivière, puis des grésillements, sa couleur changea : un rose pâle puis un rouge de plus en plus sombre.
La surface devenait agitée, la rivière s’emballait, l’eau montait, et avalait la végétation autour.
Petit à petit, le liquide noircit jusqu’à ce que plus rien ne puisse être discerné à travers.
Et les flots finissent par tout recouvrir.</p>

<p>Ensuite, il se calma et on put apercevoir les étoiles à sa surface.<br />
Puis un bruit sourd, une onde au loin, comme le résultat d’un ricochet.<br />
Puis un autre son plus fort, d’autres cercles qui se rapprochait de moi.
Le rythme s’accéléra puis tout devint blanc.</p>

<blockquote>
  <p>« Réveille toi », me chuchota une voix</p>
</blockquote>

<p>Le son de cette voix qui me semblait familier me déstabilisait, j’ouvris les yeux et après quelques minutes figées à essayer de remettre les évènements dans l’ordre, je compris que j’étais dans mon lit, et que le soleil s’était levé il y a peu de temps.</p>

<p>Un vide total se situait entre le moment dans la salle de bain et cet instant.
J’avais terriblement chaud.</p>

<p>Je me levai, et trébuchai.
Un bruit strident perça mon oreille gauche.<br />
Je mis ma main pour la boucher comme si le son venait de l’extérieur et je sentis des gouttes perler le long de mon oreille.</p>

<p>Je regardai mes doigts pleins de sang, et me relevai difficilement en m’aidant de mon bras droit pour m’agenouiller.</p>

<p>Un flash d’un souvenir me frappa, j’étais en pleine rue, le soir, je ne reconnaissais pas les lieux.<br />
J’étais au sol, le genou qui trempait dans une flaque d’eau, ma main gauche ensanglantée et ma main droite tenait un couteau.<br />
Puis j’entendis une sirène, je me relevai et me retournai pour apercevoir mon lit.</p>

<p>Mes draps étaient trempés de sueur, je me dirigeai vers la salle de bain pour prendre une douche et m’éclaircir les idées.</p>

<p>Je pris le pommeau pour m’arroser le visage et des flashs me revint.<br />
Je vis une figure déformée avec mes mains autour de son cou.</p>

<p>Je secouai la tête pour dissiper ces images, comme une boule à neige dont on ne voudrait pas voir ce qu’elle cachait sous ses flocons.<br />
Je dirigeai l’eau vers le plafond de la douche et levai le visage vers l’eau glacée.</p>

<p>La température changea et devint brulante, j’aperçus des flammes sortir d’une porte, avec un sentiment étrange de satisfaction, voire de plaisir.
J’entendis une explosion et un souffle ardent sortir des fenêtres.
Je ne bougeais pas, comme pour savourer chaque seconde de la scène.</p>

<p>Je me débattis pour reprendre le contrôle, pour me libérer de cette étreinte.
La douleur du poing contre le mur fut efficace, je me tordis sous la douleur, mais j’étais à nouveau revenu dans la salle d’eau.<br />
Je suis sorti me sécher et m’habilla.<br />
J’étais plus que motivé à sortir me changer les idées et je me dirigeai vers l’adresse du bureau du psychiatre.</p>]]></content><author><name>Jaden ACHAIN</name></author><category term="Écriture" /><category term="Histoire" /><summary type="html"><![CDATA[Une fois rentré chez moi, je me dirigeai vers la salle de bain. Le reflet du miroir qui se dressait au-dessus de l’évier m’inspirait un goût amer. La dissonance entre le gouffre qui constituait mon passé et l’image qu’avait l’air d’avoir Ash me donnait l’impression d’être devant deux versions de moi distinctes.]]></summary></entry><entry><title type="html">Le laboratoire d’Ash</title><link href="https://arkemie.net/%C3%A9criture/histoire/laboratoire-ash/" rel="alternate" type="text/html" title="Le laboratoire d’Ash" /><published>2025-05-10T00:00:00+02:00</published><updated>2025-05-10T00:00:00+02:00</updated><id>https://arkemie.net/%C3%A9criture/histoire/laboratoire-ash</id><content type="html" xml:base="https://arkemie.net/%C3%A9criture/histoire/laboratoire-ash/"><![CDATA[<p>Une fois à l’adresse indiquée, j’aperçus un bâtiment assez imposant, un ensemble de baies vitrées sur une dizaine de niveaux.<br />
La façade se compose d’une arche de pierre constituée de blocs avec plusieurs signes sur chacun d’eux.
La porte est composée d’un bois massif assez sombre sur au moins trois mètres de haut.</p>

<p>Je n’ai pas l’impression de reconnaitre l’endroit, je cherche le nom du bureau pour trouver l’étage et me dirige vers l’ascenseur.<br />
Je monte au 10e niveau et je sonne à l’entrée avec l’écriteau indiquant les personnes qui y travaillent.</p>

<p>Un individu m’ouvre et me demande la raison de ma visite.<br />
Je lui explique que je suis venu voir Ash Grignard.
Iel repart en me précisant où se situe le laboratoire au bout de l’allée centrale.
À droite et à gauche, je perçois de longs couloirs avec de nombreux bureaux, mais le silence règne.</p>

<p>Une fois devant, j’ai quelques secondes d’hésitation, un peu de stress et d’inquiétude, je ne sais pas sur qui je vais tomber.<br />
Je ne sais pas comment réagir si la personne me reconnait alors que je n’aurai sûrement aucun souvenir d’elle.</p>

<p>Une bruyante explosion interrompt mes pensées et fait vibrer les vitres teintées de la pièce juste devant moi.
Dans un excès de zèle, j’ouvre brusquement la porte.</p>

<p>J’aperçois dans un nuage gris avec de nombreuses particules de cendre qui flotte dans l’air, des agitations et des cris de plusieurs silhouettes.
Un souffle vint dissiper un peu la fumée et je distinguai une ombre avec un extincteur qui éteint un feu.<br />
Une autre silhouette court dans tous les sens et passe d’une sorte de machine à une autre en appuyant sur ce qui ressemble à des leviers et des valves.
L’émanation finit par s’atténuer et les deux personnes stoppent leurs mouvements.
Leurs bras pendaient en reprenant leurs souffles.<br />
Après quelques secondes, les deux laborantin-e-s dont leurs tenues, qui étaient censée être blanche à la base, mais dont les taches de multiples couleurs, et dépôts de cendre et de fumées, les rendaient méconnaissables, se tournèrent vers moi.</p>

<p>L’un deux accourut vers moi, puis s’arrêta brusquement, et leva la tête pour scruter mon visage.
Iel était assez petit et fin, d’environ 1,60 m. Son attitude était assez enfantine, mais les cernes sur son visage marquaient les années, et sûrement aussi les nuits blanches.</p>

<blockquote>
  <p>« Hey, Jaden, je n’ai aucune nouvelle de toi depuis des mois », s’exclama Ash</p>
</blockquote>

<p>Iel regarda sa montre qui affichait un tas de chiffres sur plusieurs parties du cadran et releva la tête vers moi.</p>

<blockquote>
  <p>« Cela fait même 8 mois, et 15 jours exactement, le temps passe si vite, j’ai eu beaucoup de tâches ces dernières semaines. Comme tu peux voir, on travaille sur de nouveaux alliages et compositions, dont certaines ne sont pas encore très stables. »</p>
</blockquote>

<blockquote>
  <p>« Pas très stable ? le mélange nous a littéralement explosé au visage, nous allons devoir travailler plusieurs jours pour réparer tous les tuyaux et mécanismes de la Zone 4”, exclama l’autre personne</p>
</blockquote>

<p>Je reste quelques minutes immobile devant la dispute. Le bruit incompréhensible se dissipait doucement et le décor était devint flou comme une peinture sous la pluie.<br />
Petit à petit, la pièce semblait s’éloigner, comme si c’était une pièce de théâtre que je passais d’acteurices à spectateurices.<br />
Puis une parole vint me ramener sur terre.</p>

<blockquote>
  <p>« Es-tu toujours parmi nous ? Comment avancent les recherches sur le nouveau modèle d’artefact dont tu m’avais parlé ? » me demanda Ash</p>
</blockquote>

<blockquote>
  <p>« Excuse-moi, les derniers jours ont été difficiles, je me sens un peu perdu », répondis-je</p>
</blockquote>

<blockquote>
  <p>« Bon, j’ai besoin d’une pause, viens, on va sortir boire quelque chose », continua Ash</p>
</blockquote>

<blockquote>
  <p>« Eh! est-ce moi qui vais ranger tout ce désordre ? » lança l’autre laborantin-e</p>
</blockquote>

<blockquote>
  <p>« On verra ça plus tard, on doit discuter avec Jaden »</p>
</blockquote>

<p>Je l’accompagnai sans trop réfléchir en marchant de façon automatique, comme une marionnette désincarnée.<br />
Les questions se bousculaient dans ma tête, sans pouvoir les discerner, tel un brouillard épais qui m’entourait.
Nous sortons du bâtiment pour nous diriger vers un café situé à quelques pas.
Ash se dirigea vers le comptoir pour commander, et puis m’invita à m’asseoir dans un coin de la pièce.
La personne du comptoir vint nous poser deux verres de jus de fruits, et Ash commença à me dévisager avec un air plus sérieux.</p>

<blockquote>
  <p>« Tu avais l’air déjà assez distant la dernière fois qu’on s’est vu. Qu’est-ce qui se passe ? On travaille ensemble depuis bien 6 ans. Tu as toujours eu des phases hautes et basses, mais je ne t’ai jamais vu ainsi. »</p>
</blockquote>

<p>J’ai pris une grande respiration, une gorgée de liquide et quelques secondes d’hésitation.</p>

<blockquote>
  <p>« Je n’ai plus aucun souvenir », dis-je en bégayant légèrement</p>
</blockquote>

<blockquote>
  <p>« Comment ça ? Une soirée trop arrosée ? je ne t’imaginais pas boire de l’alcool, et encore moins à te mettre si mal », dit Ash avec une petite voix</p>
</blockquote>

<p>Je me grattai nerveusement le front et le visage</p>

<blockquote>
  <p>« Non, vraiment plus aucun souvenir », ajouté-je avec un air triste</p>
</blockquote>

<blockquote>
  <p>« Qu’est-ce que tu entends par là ? Ne me reconnais-tu même plus ? » ajouta Ash avec des yeux tout ronds.</p>
</blockquote>

<blockquote>
  <p>« Non », d’un ton sec avec une certaine déception dans le visage</p>
</blockquote>

<p>Le mot fit l’effet d’une enclume qui tombait du ciel avec un bruit sourd et net.<br />
Je vis sa bouche ouverte de surprise, mais cette fois aucun mot n’en sort.<br />
Je voyais dans ses yeux son esprit gesticuler, courir d’une réflexion à une autre.<br />
Après quelques minutes, sa bouche se referma et son regard se dirigea vers le plafond.</p>

<blockquote>
  <p>« Hum », sorti de la bouche d’Ash</p>
</blockquote>

<blockquote>
  <p>« Quoi ? », m’exclamai-je</p>
</blockquote>

<blockquote>
  <p>« Non rien, je crois que j’ai compris ce qui a provoqué l’explosion tout à l’heure », dit Ash d’un air détaché</p>
</blockquote>

<p>Iel me regarda à nouveau, le regard perçant, mais avec une chaleur douce et apaisante.</p>

<blockquote>
  <p>« Ash, enchanté », dit Ash avant de s’esclaffer</p>
</blockquote>

<p>Je ne savais pas vraiment comment réagir, puis un léger sourire se dessina sur mon visage.<br />
Je ressentais une sensation bizarre, comme si je découvrais une nouvelle émotion.<br />
Je me rendis compte que ces derniers jours je suis passé de douleurs à incompréhension, et cette légèreté me fit comme un baume au cœur.</p>

<blockquote>
  <p>« Jaden, tout le plaisir est pour moi », ajoutai-je avec une certaine désinvolture</p>
</blockquote>

<p>Iel s’esclaffa à nouveau en postillonnant sur la table, et renversa un peu du jus.
Et moi, je repris mon verre pour boire une grande gorgée.<br />
Après ce petit moment léger et quelques gorgées, il me regarda avec un air grave.</p>

<blockquote>
  <p>« Depuis combien de temps est-ce arrivé ? », me questionna Ash d’un air sérieux</p>
</blockquote>

<blockquote>
  <p>« C’est mon deuxième jour, je me suis réveillé à l’hôpital hier, et j’ai trouvé l’adresse de ce qui semble être chez moi », annoncé-je</p>
</blockquote>

<blockquote>
  <p>« Tu as d’autres symptômes ? Est-ce que des réminiscences sont apparues depuis ? », ajouta rapidement Ash</p>
</blockquote>

<blockquote>
  <p>« Non, je n’ai aucun souvenir. Ou du moins, je ne me remémore rien de très clair.</p>
</blockquote>

<blockquote>
  <p>J’enchaine de nombreuses migraines très violentes », ajouté-je avec une certaine hésitation.</p>
</blockquote>

<blockquote>
  <p>« “rien de clair”, que veux-tu dire par là » ?</p>
</blockquote>

<blockquote>
  <p>« Des sortes de flash, mais ils sont flous, et je ne me remémore plus de leur contenu. »</p>
</blockquote>

<p>J’essayais de me rappeler ce qui s’était passé plus tôt les jours précédents, mais les souvenirs s’échappaient comme des savons dans des mains humides, plus j’essayais, plus le savon partait loin.<br />
Mes yeux se balançaient de droite à gauche comme pour balayer le flot de mon inconscient, la surface du lac où je me sentais si seul et perdu.<br />
Et puis d’un coup, un cri strident résonna dans ma tête, je fermai les paupières et pris ma tête entre mes mains.</p>

<blockquote>
  <p>« Jaden, tu vas bien ? », dit Ash en s’approchant de moi</p>
</blockquote>

<p>Le son s’arrêta net, je rouvre les yeux en sentant un liquide chaud couler de mon nez.<br />
Je m’essuyai avec la main droite et perçue des traces rouges sur mes doigts.</p>

<blockquote>
  <p>« Qu’est-ce qui se passe ? Qu’est-ce qui t’arrive ? », dit Ash avec une grande inquiétude dans le son de sa voix</p>
</blockquote>

<blockquote>
  <p>« Je n’en ai aucune idée, quand j’essayai de me souvenir de quelque chose, cela me mettait dans tous mes états », dis-je avec toujours cette hésitation</p>
</blockquote>

<blockquote>
  <p>« Tu devrais consulter un-e médecin, je peux t’en recommander un qui à l’habitude des personnes comme toi », ajouta Ash d’un ton plus froid que d’habitude</p>
</blockquote>

<blockquote>
  <p>« Comme moi ? Qu’est-ce que tu sous-entends par là ? » dis-je avec une certaine gêne.</p>
</blockquote>

<blockquote>
  <p>« Je ne sais pas dans quoi tu as mis ton nez, mais je sais que ça sort souvent du cadre légal imposé par notre domaine d’activité. Je ne serais pas surpris que ton état soit lié à tes récents travaux », ajouta Ash en regardant le sol pour fuir mon regard.</p>
</blockquote>

<p>Ash prit quelques minutes en regardant son verre d’un air subitement triste.</p>

<blockquote>
  <p>« Jaden, on se connait depuis longtemps, mais tu n’as jamais voulu parler du contenu de tes recherches et travaux. Tu as toujours été assez distant à propos de ta vie personnelle. J’ai toujours senti que quelque chose te pesait, et avec le temps tu t’enfermais de plus en plus chez toi. Je ne suis pas là pour te juger, mais tu devrais te faire aider. »</p>
</blockquote>

<p>Je ressentais tout le poids de ces mots et la difficulté que ça pouvait être de les prononcer.<br />
Je ne sus pas quoi répondre, à la fois à cause du malaise de la situation, mais aussi parce que je n’avais aucune idée de ce dont Ash parlait.<br />
Je ressentais qu’une certaine colère montait en moi. C’était une colère contre moi, du moins contre la version de moi que je découvrais.<br />
Ash me posa une carte de visite devant moi.</p>

<blockquote>
  <p>« Si tu n’arrives pas à m’en parler, cette personne sera peut-être plus à même de t’aider à t’ouvrir, et à lire en toi. Je dois retourner travailler. Je paie. Je t’invite », dit Ash en me regardant d’un air compatissant.</p>
</blockquote>

<p>Ash se leva en sortant un porte-monnaie de sa poche puis se retourna vers moi.</p>

<blockquote>
  <p>« On essaye de se recroiser dans pas trop longtemps, et surtout avant une autre catastrophe », ajouta Ash avec un léger sourire pour détendre l’atmosphère</p>
</blockquote>

<p>Il repartit et se dirigea vers le comptoir.
Je pris la carte de visite et lus ce qu’il indiquait.</p>

<blockquote>
  <p>« Rey, psychiatre-addictologue »</p>
</blockquote>

<p>Je pris quelques minutes pour digérer ce qu’il s’est passé et tout ce qui s’est dit, et décida de rentrer chez moi pour me reposer, et puis pour contacter ce médecin.</p>]]></content><author><name>Jaden ACHAIN</name></author><category term="Écriture" /><category term="Histoire" /><summary type="html"><![CDATA[Une fois à l’adresse indiquée, j’aperçus un bâtiment assez imposant, un ensemble de baies vitrées sur une dizaine de niveaux. La façade se compose d’une arche de pierre constituée de blocs avec plusieurs signes sur chacun d’eux. La porte est composée d’un bois massif assez sombre sur au moins trois mètres de haut.]]></summary></entry><entry><title type="html">Atelier</title><link href="https://arkemie.net/%C3%A9criture/histoire/atelier/" rel="alternate" type="text/html" title="Atelier" /><published>2025-04-20T00:00:00+02:00</published><updated>2025-04-20T00:00:00+02:00</updated><id>https://arkemie.net/%C3%A9criture/histoire/atelier</id><content type="html" xml:base="https://arkemie.net/%C3%A9criture/histoire/atelier/"><![CDATA[<p>Quand j’ouvris les yeux, j’eus une désagréable impression de déjà vu, comme si tous les réveils se ressemblaient, et que je recommençais une boucle.<br />
C’est de la même manière que si je mourais pour renaitre à nouveau, mais avec le poids des vies précédentes, tel un éternel purgatoire dont le sens m’échappait.<br />
Beaucoup de choses paraissent me passer sous les doigts, mais une volonté de remettre de l’ordre dans tout ça m’animait.</p>

<p>La lumière m’indiqua qu’un autre jour s’est levé, j’ai dû rester la nuit sur au sol.<br />
Les courbatures ne contredisaient pas ce ressenti, je me relevais avec difficulté.</p>

<p>Le soleil pénétrait timidement les lieux et me permit de mieux contempler l’endroit.<br />
Je suis dans un salon, avec à gauche un fauteuil et des plantes, la vue donnait sur la rue qui longeait l’entrée du bâtiment.<br />
À droite, j’aperçus une table et un petit coin repas.<br />
Au fond, un meuble fait de cubes séparait la pièce en deux, avec une porte après la cuisine.</p>

<p>J’avançai timidement pour découvrir un lit, et un bureau proche du balcon.<br />
Dessus on pouvait trouver des papiers éparpillés et un carnet ouvert en plein milieu.<br />
À côté, je constate un couloir qui donne sur une salle d’eau.</p>

<p>Je n’avais pas encore complètement récupéré de ce réveil difficile et je pris une petite pause en m’asseyant sur la couche pour contempler ce lieu qui semblait important pour moi.<br />
Il dégageait quelque chose de fort, comme si mon empreinte était disséminée sur chaque surface.
Je commençais à me rappeler la courte journée d’hier.<br />
Ma sortie du coma, sans aucun souvenir, d’avoir fui l’hôpital et d’avoir trouvé l’adresse de mon appartement.</p>

<p>Une grosse douleur envahit mon crâne, le souffle coupé, je fermai les yeux avec les deux mains sur mon front, puis quelques secondes plus tard le malaise s’estompa.<br />
Ma respiration revint à la normale et je me levais timidement.<br />
Mon regard se posa sur ce carnet où je pouvais apercevoir d’innombrables formules mathématiques et quelques schémas mécaniques.</p>

<p>Je pris le calepin pour lire en détail ce qui s’y trouvait, mais la blessure se réveilla à nouveau.
Elle me fit lâcher le cahier qui tomba au sol sur la tranche pour s’ouvrir sur une nouvelle page.<br />
Cette fois, c’était une écriture plus brouillonne avec plusieurs ratures dont je n’arrivais pas à interpréter la signification.</p>

<p>Je m’agenouillai difficilement pour récupérer le carnet avec la main gauche qui soutenait ma tête qui me tourmentait.<br />
Je ferme à nouveau les yeux quelques secondes et la douleur s’éclipsa.
Je commençais à reconnaitre certains déclencheurs de ces douleurs, et le moyen de les apaiser.</p>

<p>Je feuilletais le livret et trouvais de nombreuses pages similaires, avec des équations, des croquis de machine, ou alors des formules chimiques avec des descriptions sur leurs propriétés physiques.
Puis parfois des tracés qui ressemblent à des plans de lieu sans autres précisions.
Je fermai le cahier, et j’abandonnai temporairement la compréhension de mes recherches pour continuer d’explorer l’appartement.</p>

<p>Je sortis de la chambre pour tourner sur la gauche vers la zone qui semblait donner sur une cave ou un garage.<br />
Quand j’ouvris la porte, une forte odeur m’enivra.<br />
La pièce servait sûrement d’atelier.</p>

<p>Je descendis les quelques marches pour apercevoir à gauche une sorte de laboratoire de chimie et un peu plus loin un plan de travail avec du matériel divers.<br />
À droite, on pouvait voir tout un espace de bricolage et d’assemblage avec plusieurs grosses caisses.
Par curiosité, mais aussi une forme de nostalgie, je m’avançai vers les outils et j’attrapai le premier qui se trouvait à portée.</p>

<p>Dès que mes doigts frôlèrent le métal froid de l’appareil, j’eus comme une illumination.<br />
Mes mains étaient tachées de sang.<br />
Je lâchai l’instrument et je reculai de 2 pas.</p>

<p>Les flashs recommençaient, j’étais dans les mêmes lieux, mais tout était en bazar.<br />
De nombreuses pièces de matériaux jonchaient le sol, ainsi que des tuyaux remplis de liquide, qui étaient disposés de toute part.<br />
Les scènes s’alternent avec un rythme saccadé et une fréquence à la fois harmonique et hypnotique.
C’est comme une mélodie, un rêve éveillé ou plutôt ce moment au réveil où les réminiscences s’entremêlent.<br />
Dans cet instant, on essaye avec difficulté de distinguer les souvenirs du songe et ceux de la réalité, lesquels ressemblent à des diapositives dans le désordre.<br />
Ma tête commença à me lancer, mais je tente de résister, je m’appuie sur le bureau pour économiser mes forces.</p>

<p>Je scrute derrière moi et je perçois une forme qui évoque un corps mécanique.<br />
Ma vision est floue, et les images apparaissent comme si je regardais à travers des filtres de différentes couleurs qui alternent sans arrêt.<br />
Je prends une longue respiration en luttant pour garder les yeux ouverts.</p>

<p>Le plancher est poussiéreux, des amas de poudre, mais aussi de nombreuses flaques jonchent le sol, mais l’absence de nuance des teintes m’empêche de distinguer leurs natures.<br />
J’essaye de m’approcher du centre de la pièce, mais pas sans mal, en titubant.<br />
Plus j’avançais vers cet artefact, plus la douleur devenait importante, tel un poids au fond de mes entrailles qui grossissait, comme si la gravité elle-même tentait de me bloquer la route.<br />
Mais la curiosité, ou plutôt le besoin de compréhension était plus fort.</p>

<p>Je finis par ramper à 4 pattes et j’atteins un des bras mécaniques.<br />
L’assemblage me semblait à la fois dénué de signification et en même temps comme si j’en reconnaissais la signature.<br />
Mais pour autant, je n’arrive pas à saisir l’intérêt de toutes ses gravures.<br />
Elles ressemblent à des circuits électroniques, et divers symboles qui pourraient s’apparenter à des runes.<br />
J’approchai mes doigts de ces tracés, comme pour en trouver le sens et au moment du contact, une décharge électrique me traversa l’ensemble du corps.<br />
Je ferme les yeux de douleur, paralysé par une sorte de souffle à la fois froid et brûlant.</p>

<p>Je finis par distinguer une emprise assez forte sur mon bras, mais je suis incapable de bouger.<br />
J’ouvre difficilement les paupières, comme si elles étaient collées, je perçois le plafond gribouillé de nombreux cercles et caractères d’une langue que je ne connais pas.<br />
Je sentis mon cœur se mettre à battre violemment, tel un marteau qu’on frapperait brutalement sur une enclume.<br />
Je ressens une terrible colère qui s’empare de moi brusquement, comme un réveil en plein milieu de la nuit par des travaux ou l’explosion d’une bombe.<br />
Cette agressivité se mêle à de la peur, de l’incompréhension et de la surprise.<br />
Je tourne légèrement la tête pour observer mon bras et la source de cette emprise.<br />
Je perçois que le corps s’est déplacé, mais le flou s’est intensifié.<br />
J’essaye de forcer mes yeux pour apercevoir ce qui se passe.<br />
Et c’est avec stupeur que je vois, tel un miroir, mon visage que j’ai à peine eu le temps de redécouvrir hier, qui semblait figé et creux, le regard dans ma direction.<br />
Et puis tout s’éteignit, la pièce fut plongée dans le noir, comme si les plombs avaient sauté.</p>

<blockquote>
  <p>Je n’éprouve plus rien, est-ce que je suis mort ?</p>
</blockquote>

<blockquote>
  <p>Je n’ai jamais ressenti autant d’apaisement et de légèreté.</p>
</blockquote>

<p>Mais ce fut de courte durée malheureusement, quand d’un coup je perçus l’attraction d’une chute dans le vide.<br />
Puis d’un choc si brutal qui me fit sursauter du plancher de quelques centimètres.<br />
Les yeux grand ouverts, mes mains se relâchèrent et je reculai face à l’horreur du souvenir et surtout des sensations qui ne ressemblaient à rien que j’ai pu vivre jusqu’à présent.<br />
J’aperçus à nouveau le sol propre et le centre de la pièce absent de tout corps.<br />
Je me retournai et l’atelier était rangé comme à mon arrivée.<br />
Je me tournai vers le plafond, mais celui-ci était vierge de tout motif.<br />
Je regagnai le plan de travail à la recherche de quoi que ce soit qui pourrait m’aider à comprendre ce qui vient de se produire, jusqu’à trouver une carte de visite.</p>

<blockquote>
  <p>Ash Grignard, laborantin des secteurs 4-10, 24 rue berthelot</p>
</blockquote>]]></content><author><name>Jaden ACHAIN</name></author><category term="Écriture" /><category term="Histoire" /><summary type="html"><![CDATA[Quand j’ouvris les yeux, j’eus une désagréable impression de déjà vu, comme si tous les réveils se ressemblaient, et que je recommençais une boucle. C’est de la même manière que si je mourais pour renaitre à nouveau, mais avec le poids des vies précédentes, tel un éternel purgatoire dont le sens m’échappait. Beaucoup de choses paraissent me passer sous les doigts, mais une volonté de remettre de l’ordre dans tout ça m’animait.]]></summary></entry><entry><title type="html">Python - Tests</title><link href="https://arkemie.net/fiche/python-testing/" rel="alternate" type="text/html" title="Python - Tests" /><published>2025-03-24T00:00:00+01:00</published><updated>2025-03-24T00:00:00+01:00</updated><id>https://arkemie.net/fiche/python-testing</id><content type="html" xml:base="https://arkemie.net/fiche/python-testing/"><![CDATA[]]></content><author><name>Jaden ACHAIN</name></author><category term="Fiche" /><summary type="html"><![CDATA[Tests en python]]></summary></entry><entry><title type="html">Python - POO</title><link href="https://arkemie.net/fiche/python-poo/" rel="alternate" type="text/html" title="Python - POO" /><published>2025-03-23T00:00:00+01:00</published><updated>2025-03-23T00:00:00+01:00</updated><id>https://arkemie.net/fiche/python-poo</id><content type="html" xml:base="https://arkemie.net/fiche/python-poo/"><![CDATA[<h2 id="aide">Aide</h2>

<p><code class="language-plaintext highlighter-rouge">help</code> : Fonction qui permet d’avoir la définition d’un objet ou d’une fonction (type, arguments, documentation, …)</p>

<p><code class="language-plaintext highlighter-rouge">type</code> : Fonction qui permet d’avoir le type d’un objet</p>

<h2 id="methodes-magiques">Methodes magiques</h2>

<p><code class="language-plaintext highlighter-rouge">__init__</code> : Constructeur d’une classe<br />
<code class="language-plaintext highlighter-rouge">__repr__</code> : Définit sa représentation textuelle<br />
<code class="language-plaintext highlighter-rouge">__getattr__</code> : Appelé si l’attribut n’existe pas<br />
<code class="language-plaintext highlighter-rouge">__setattr__</code> : Appelé pour définir un attribut
<code class="language-plaintext highlighter-rouge">__getattribute__(a_attribute)</code> : Donne la valeur d’un attribut passé en paramètre (équivalent de <code class="language-plaintext highlighter-rouge">object.a_attribute</code> ou <code class="language-plaintext highlighter-rouge">__dict__[a_attribute]</code>)</p>

<h2 id="propriétés-magiques">Propriétés magiques</h2>

<p><code class="language-plaintext highlighter-rouge">__doc__</code> : Commentaire de la classe<br />
<code class="language-plaintext highlighter-rouge">__dict__</code> :</p>
<ul>
  <li>Si class : Dictionnaire avec “nom de la méthode” =&gt; “son commentaire”</li>
  <li>Si objet : Dictionnaire avec “nom de l’attribut” =&gt; “valeur”</li>
</ul>]]></content><author><name>Jaden ACHAIN</name></author><category term="Fiche" /><summary type="html"><![CDATA[Outils python en POO]]></summary></entry><entry><title type="html">FollowChon</title><link href="https://arkemie.net/projet/followchon/" rel="alternate" type="text/html" title="FollowChon" /><published>2025-03-22T00:00:00+01:00</published><updated>2025-03-22T00:00:00+01:00</updated><id>https://arkemie.net/projet/followchon</id><content type="html" xml:base="https://arkemie.net/projet/followchon/"><![CDATA[<h1 id="followchon">FollowChon</h1>

<h2 id="objectifs">Objectifs</h2>

<p>Ce projet a plusieurs objectifs :</p>
<ul>
  <li>Créer et entrainer un modèle de détection de cochon d’inde (qui n’existe pas à l’heure actuelle)</li>
  <li>Produire un large dataset d’image annotées (93 000 à l’heure actuelle, entre 600 et 800 captures par jours)</li>
  <li>Suivi des comportements de mes cochons d’inde pour détecter les comportements anormaux</li>
</ul>

<h2 id="architecture">Architecture</h2>

<p>Ils tournent sur un raspberry pi 5 équipé d’une puce HAILO 8L (pour améliorer ses performances en détection d’objets).</p>

<p>Le projet est composé de 4 sous projets :</p>
<ul>
  <li>Vision (python) :
    <ul>
      <li>Analyse des images récupéré par le flux vidéo de la caméra ip</li>
      <li>Sauvegarde des résultats sous la forme de fichiers et de lignes dans une base de donnée</li>
    </ul>
  </li>
  <li>Backoffice (django) :
    <ul>
      <li>Permet de fournir une api pour accéder aux captures, detections, paramètres, logs et familles</li>
      <li>Permet de visualiser / trier / filtrer les données par une interface d’administration</li>
    </ul>
  </li>
</ul>

<p><a data-fslightbox="post-image" href="/assets/images/projets/followchon_backoffice.png" data-alt="Backoffice Django">
  <img src="/assets/images/projets/followchon_backoffice.png" alt="Backoffice Django" />
</a></p>

<ul>
  <li>Correction &amp; Validation (angular) :
    <ul>
      <li>Application qui permet de récupérer les captures, détections et familles pour :
        <ul>
          <li>Visualiser les résultats</li>
          <li>Ajouter ou corriger la position des boites des détections</li>
          <li>Corriger la classe associeé à chaque détection</li>
          <li>Faire un circuit de validation (brouillon / vérifié / archivé / supprimé)</li>
        </ul>
      </li>
      <li>Permets d’afficher quelques tendances, statistiques ou autres visualisations</li>
      <li>Avec des raccourcis clavier et une ergonomie pour traiter des centaines de captures en quelques dizaines de minutes</li>
    </ul>
  </li>
</ul>

<p><a data-fslightbox="post-image" href="/assets/images/projets/followchon_angular.png" data-alt="Application Angular">
  <img src="/assets/images/projets/followchon_angular.png" alt="Application Angular" />
</a></p>

<ul>
  <li>Dataset &amp; Train &amp; Convert (python) :
    <ul>
      <li>Pour chaque modèle (detection et classification)
        <ul>
          <li>Permets de produire des datasets d’entrainement avec des contraintes de qualité
            <ul>
              <li>Récupération des captures qui n’ont pas été utilisées par les précédents entrainements</li>
              <li>Pourcentage pour les sous-ensembles train / test / validation</li>
              <li>Avec pour chaque sous-ensemble :
                <ul>
                  <li>Pourcentage de données corrigées / sans besoin de correction</li>
                  <li>Pourcentage de donnée hétérogène (issue d’autres sources)</li>
                </ul>
              </li>
            </ul>
          </li>
          <li>Entrainement du modèle basé sur le modèle précédent et le nouveau dataset</li>
          <li>Le modèle de detection est converti en ONNX =&gt; HAR =&gt; HEF (via le Docker Hailo SDK)</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

<h2 id="vision">Vision</h2>

<p>Ensemble de scripts pythons qui s’occupent de plusieurs choses :</p>

<ul>
  <li>Récupérer un ensemble de paramètres par l’api du backoffice, dont notamment
    <ul>
      <li>Version des modèles</li>
      <li>Heure de début et de fin de l’analyse</li>
    </ul>
  </li>
  <li>Charger les modèles :
    <ul>
      <li>Au format HEF pour le modèle de detection (pour être utilisé par la puce HAILO)</li>
      <li>Au format PyTorch pour le modèle de classification</li>
    </ul>
  </li>
  <li>Lancer une commande ffmpeg pour récupérer le flux RTSP de ma caméra IP pour la stocker dans des fichiers mp4 découpés par minutes d’enregistrement</li>
  <li>
    <p>Le script va lire chaque fichier vidéo et récupérer les images</p>
  </li>
  <li>Il va ensuite faire l’inférence sur le modèle de detection</li>
  <li>Puis récupérer la portion d’image et l’envoyer au modèle de classification</li>
  <li>Enregistrer les fichiers et les lignes dans la base de données</li>
</ul>

<h1 id="autres-informations">Autres informations</h1>

<p>Outils utilisé :</p>
<ul>
  <li>ultralytics</li>
  <li>docker</li>
  <li>hailo sdk</li>
  <li>hailo drivers</li>
  <li>angular</li>
</ul>]]></content><author><name>Jaden ACHAIN</name></author><category term="Projet" /><summary type="html"><![CDATA[Deep Learning - Modèle vision de détection de cochon d'inde]]></summary></entry><entry><title type="html">Python - Scrapping</title><link href="https://arkemie.net/fiche/python-scrapping/" rel="alternate" type="text/html" title="Python - Scrapping" /><published>2025-03-22T00:00:00+01:00</published><updated>2025-03-22T00:00:00+01:00</updated><id>https://arkemie.net/fiche/python-scrapping</id><content type="html" xml:base="https://arkemie.net/fiche/python-scrapping/"><![CDATA[<h1 id="extraire-des-informations-dun-site-web">Extraire des informations d’un site web</h1>

<h2 id="accéder-au-site">Accéder au site</h2>

<p>La méthode CFFI est très efficace avec les sites protégé par CloudFlare.</p>

<h3 id="méthode-cffi">Méthode CFFI</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>from curl_cffi import requests 

source = requests.get(url, impersonate="chrome").text
</code></pre></div></div>

<h3 id="selenium">Selenium</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>from selenium import webdriver
</code></pre></div></div>

<h4 id="firefox">Firefox</h4>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.service import Service

service = Service("/snap/bin/firefox.geckodriver")
options = Options()

user_agent = f"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0"

options.set_preference("general.useragent.override", user_agent)
options.set_preference('dom.webdriver.enabled', False)
options.set_preference('useAutomationExtension', False)
options.set_preference("app.update.auto", False)
options.set_preference("general.startup.browser ", True)

options.add_argument("--profile")
options.add_argument("/home/user_xxx/snap/firefox/version_xxx/.mozilla/firefox/profile_xxx")

driver = webdriver.Firefox(service=service, options=options)
</code></pre></div></div>

<h4 id="chrome">Chrome</h4>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

service = Service("/snap/bin/chromium.chromedriver")
options = Options()

options.add_argument(f'--user-data-dir=/home/jaden/snap/chromium/common/chromium/Profile 1')
options.add_argument(f'--profile-directory=Profile 1')
options.add_argument(f'--user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36')
options.add_argument('--no-sandbox')
options.add_argument('--start-maximized')
options.add_argument('--disable-infobars')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-browser-side-navigation')
options.add_argument("--remote-debugging-port=9222")
options.add_argument('--disable-gpu')
options.add_argument("--log-level=3")
options.add_experimental_option("detach", True)
options.add_experimental_option('useAutomationExtension', False)
options.add_argument("--disable-blink-features=AutomationControlled") 
options.add_experimental_option("excludeSwitches", ["enable-automation"]) 


driver = webdriver.Chrome(service=service, options=options)
</code></pre></div></div>

<p>Autre version de chrome :</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import undetected_chromedriver as uc

driver = uc.Chrome(headless=True, use_subprocess=False)
</code></pre></div></div>

<p>Et ensuite :</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () =&gt; undefined})")

driver.get(url)
driver.implicitly_wait(5)

source = driver.page_source
</code></pre></div></div>

<p>Prend un screenshot de la partie visible : <code class="language-plaintext highlighter-rouge">driver.save_screenshot(screenshot_path)</code></p>

<p>Ferme le navigateur : <code class="language-plaintext highlighter-rouge">driver.exit()</code></p>

<h3 id="scraper">Scraper</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import cloudscraper

scraper = cloudscraper.create_scraper(browser={
        "browser": "firefox",
        "platform": "linux",
        "desktop": True
    })
    
source = scraper.get(url).text
</code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import cfscrape

scraper = cfscrape.create_scraper()

source = scraper.get(url).content
</code></pre></div></div>

<h2 id="parcourir-le-code-source">Parcourir le code source</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>from bs4 import BeautifulSoup

soup = BeautifulSoup(source, "html.parser")

# Trouver un élément avec les élements exactes
el = soup.find("iframe", class_="absolute inset-0")

# Trouver les élements qui correspondent à la requète CSS
elements = soup.select("ul#content &gt; li.item")

# Accéder à la propriété d'un élement
href = el["href"]

# Récupérer le contenu textuelle d'un élement
content = el.get_text()
</code></pre></div></div>]]></content><author><name>Jaden ACHAIN</name></author><category term="Fiche" /><summary type="html"><![CDATA[Extraire des informations d'un site web]]></summary></entry></feed>