<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[a39]]></title><description><![CDATA[Un blogue pour les passionnés du Web.]]></description><link>https://a39.ca/</link><image><url>https://a39.ca/favicon.png</url><title>a39</title><link>https://a39.ca/</link></image><generator>Ghost 5.82</generator><lastBuildDate>Sat, 28 Mar 2026 19:19:50 GMT</lastBuildDate><atom:link href="https://a39.ca/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Le Vidéoway, de retour - partie 1]]></title><description><![CDATA[On recrée le Vidéoway.]]></description><link>https://a39.ca/videoway-partie-1/</link><guid isPermaLink="false">688ebc67a38063014f608916</guid><category><![CDATA[Essais]]></category><dc:creator><![CDATA[J. P. Savard]]></dc:creator><pubDate>Sat, 28 Mar 2026 00:30:01 GMT</pubDate><media:content url="https://a39.fly.storage.tigris.dev/2026/03/261755_177537198977006_3635380_n.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://a39.fly.storage.tigris.dev/2026/03/261755_177537198977006_3635380_n.jpg" alt="Le Vid&#xE9;oway, de retour - partie 1"><p>Pour ceuses qui ont moins de 30 ans, je vous explique: le Vid&#xE9;oway, c&apos;&#xE9;tait le pr&#xE9;d&#xE9;cesseur des Illico et H&#xE9;lix &#x2013; si tu voulais le c&#xE2;ble chez Vid&#xE9;otron c&apos;&#xE9;tait &#xE7;a qu&apos;ils te donnaient. Du moins, en 1990 jusqu&apos;&#xE0; son remplacement par le service num&#xE9;rique d&apos;Illico dans les ann&#xE9;es 2000. Et, oui, d&#xE9;j&#xE0; l&#xE0; il y avait l&apos;interactivit&#xE9;: c&apos;&#xE9;tait un peu l&apos;anc&#xEA;tre du canal 900 d&apos;Illico, ou pour les Europ&#xE9;ens, comparer avec le Minitel fran&#xE7;ais ou le Ceefax britannique, sauf qu&apos;on avait une couche compl&#xE8;tement graphique avec non seulement le guide t&#xE9;l&#xE9;, mais aussi les nouvelles, la m&#xE9;t&#xE9;o, les r&#xE9;sultats sportifs, les num&#xE9;ros gagnants de Loto-Qu&#xE9;bec, des services vari&#xE9;s, et m&#xEA;me des jeux. C&apos;&#xE9;tait genre l&apos;Internet avant l&apos;Internet.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://a39.fly.storage.tigris.dev/2025/08/261755_177537198977006_3635380_n.jpg" class="kg-image" alt="Le Vid&#xE9;oway, de retour - partie 1" loading="lazy" width="515" height="402"><figcaption><span style="white-space: pre-wrap;">Et &#xE7;a c&apos;est juste un menu. Y&apos;en avait, du choix.</span></figcaption></figure><p>Et pour les jeux, &#xE7;a niaisait pas, c&#xF4;t&#xE9; qualit&#xE9; &#xE7;a rivalisait avec les consoles de jeux vid&#xE9;o de l&apos;&#xE9;poque. Tellement que, dans un espoir de pr&#xE9;server la m&#xE9;moire du Vid&#xE9;oway, on a eu droit &#xE0; des recr&#xE9;ations de jeux tels que <a href="https://collectorvision.com/games/deadtombnes.php?ref=a39.ca" rel="noreferrer">Temporel, Inc.</a>, <a href="https://collectorvision.com/games/jester.php?ref=a39.ca" rel="noreferrer">Le fou du roi</a> et Mordicus par des fans.</p><p>Parce que depuis la fermeture du service en 2006, c&apos;est pratiquement devenu un <em>lost media</em>, et tout ce qui nous reste, c&apos;est du mat&#xE9;riel promotionel, et du monde qui ont enregistr&#xE9; leur partie de Temporel sur leur VHS. Apr&#xE8;s tout, c&apos;&#xE9;tait <em>stream&#xE9;</em>, et non t&#xE9;l&#xE9;charg&#xE9;, un peu comme un <a href="https://fr.wikipedia.org/wiki/Bulletin_board_system?ref=a39.ca" rel="noreferrer">BBS</a> de l&apos;&#xE9;poque. Et on a m&#xEA;me demand&#xE9; &#xE0; Vid&#xE9;otron et Loto-Qu&#xE9;bec, sans succ&#xE8;s. C&apos;est perdu.</p><p>Mais, &#xE0; d&#xE9;faut d&apos;avoir le logiciel, on peut le recr&#xE9;er, non? On ne conna&#xEE;t pas grand chose du Vid&#xE9;oway, &#xE0; part <a href="https://forums.bannister.org/ubbthreads.php?ubb=showflat&amp;Number=99891&amp;ref=a39.ca" rel="noreferrer">un effort de r&#xE9;tro-ing&#xE9;nierie</a>, mais &#xE7;a a pas donn&#xE9; grand chose...</p><p>N&#xE9;anmoins, <a href="https://fr.wikipedia.org/wiki/Vid%C3%A9oway?ref=a39.ca" rel="noreferrer">Wikip&#xE9;dia</a> mentionne que le Vid&#xE9;oway &#xE9;tait bas&#xE9; sur la technologie T&#xE9;lidon. Ce qui, selon moi, fait beaucoup de sens. De l&#xE0;, T&#xE9;lidon &#xE9;tant bien document&#xE9;, on peut tr&#xE8;s bien recr&#xE9;er un serveur, en esp&#xE9;rant que &#xE7;a marche du premier coup sur un Vid&#xE9;oway. Et bien s&#xFB;r c&apos;est ce que j&apos;ai fait, avec du Node.js et un peu d&apos;huile de coude. Si &#xE7;a int&#xE9;resse, le code est toute sur Codeberg.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://codeberg.org/videoway?ref=a39.ca"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Vid&#xE9;oway Revival Project</div><div class="kg-bookmark-description">Codeberg is a non-profit community-led organization that aims to help free and open source projects prosper by giving them a safe and friendly home.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://codeberg.org/assets/img/favicon.svg" alt="Le Vid&#xE9;oway, de retour - partie 1"><span class="kg-bookmark-author">Codeberg.org</span><span class="kg-bookmark-publisher">Codeberg</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://codeberg.org/avatars/4adff67dd94bbd4b799410e14ddc23e428cdae695ec75f79aa9c0e3b0b8b7cfb" alt="Le Vid&#xE9;oway, de retour - partie 1"></div></a></figure><p>Bien s&#xFB;r, il faudra tester avec un client. J&apos;ai pas de Vid&#xE9;oway pour le moment, donc mon choix s&apos;est port&#xE9; sur Microstar Personality+III, un des rares clients qui supporte le protocole NAPLPS utilis&#xE9; par T&#xE9;lidon, est contemporain avec le Vid&#xE9;oway, et qu&apos;on peut appeler un BBS avec, c&apos;est &#xE0; dire, se connecter facilement &#xE0; un serveur avec un &#xE9;mulateur de modem Hayes 56k. On pourrait aussi utiliser un &#xE9;mulateur de NABU, qui supporte les m&#xEA;mes protocoles, mais &#xE7;a me semblait un peu trop compliqu&#xE9;. Donc, j&apos;ai install&#xE9; FreeDOS 1.4 dans 86Box et j&apos;ai activ&#xE9; l&apos;&#xE9;mulateur de modem Hayes qui vient avec.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://a39.fly.storage.tigris.dev/2026/03/Copie-d--cran_20260327_200732-1.png" width="848" height="643" loading="lazy" alt="Le Vid&#xE9;oway, de retour - partie 1"></div><div class="kg-gallery-image"><img src="https://a39.fly.storage.tigris.dev/2026/03/Copie-d--cran_20260327_200405.png" width="728" height="574" loading="lazy" alt="Le Vid&#xE9;oway, de retour - partie 1"></div><div class="kg-gallery-image"><img src="https://a39.fly.storage.tigris.dev/2026/03/Copie-d--cran_20260327_200646.png" width="728" height="574" loading="lazy" alt="Le Vid&#xE9;oway, de retour - partie 1"></div></div></div></figure><p>Et avec &#xE7;a on peut se connecter au serveur:</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://a39.fly.storage.tigris.dev/2026/03/Screenshot_20250730_142318.png" width="648" height="564" loading="lazy" alt="Le Vid&#xE9;oway, de retour - partie 1"></div><div class="kg-gallery-image"><img src="https://a39.fly.storage.tigris.dev/2026/03/Screenshot_20250730_102536.png" width="648" height="564" loading="lazy" alt="Le Vid&#xE9;oway, de retour - partie 1"></div><div class="kg-gallery-image"><img src="https://a39.fly.storage.tigris.dev/2026/03/Screenshot_20250730_142543.png" width="648" height="564" loading="lazy" alt="Le Vid&#xE9;oway, de retour - partie 1"></div></div></div><figcaption><p><span style="white-space: pre-wrap;">R&#xE9;sultats. Pas la m&#xEA;me police, mais &#xE7;a marche.</span></p></figcaption></figure><p>On aime &#xE7;a. Bien s&#xFB;r, sur ce client on est sur du 640x480 alors que le Vid&#xE9;oway &#xE9;tait, selon ce qui nous est parvenu, en 512x400, mais, &#xE0; part pour le texte, c&apos;est un protocole enti&#xE8;rement vectoriel, donc &#xE7;a devrait pas trop changer. Prochaine &#xE9;tape: &#xE7;a prend un Vid&#xE9;oway, et un truc pour envoyer les donn&#xE9;es binaires par c&#xE2;ble. Apparemment, le Vid&#xE9;oway communiquait avec les serveurs de Vid&#xE9;otron via un canal sp&#xE9;cial. En tout cas, ce serait &#xE9;videmment &#xE0; investiguer.</p><p>Si vous &#xEA;tes int&#xE9;ress&#xE9;s &#xE0; contribuer, ou juste jaser de Vid&#xE9;oway, il y a un serveur Discord:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://discord.gg/SjQpMjSpcx?ref=a39.ca"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Join the Videoway: Revival (EN/FR) Discord Server!</div><div class="kg-bookmark-description">Check out the Videoway: Revival (EN/FR) community on Discord - hang out with 58 other members and enjoy free voice and text chat.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://discord.gg/assets/favicon.ico" alt="Le Vid&#xE9;oway, de retour - partie 1"><span class="kg-bookmark-author">Discord</span></div></div></a></figure><p>&#xC0; la prochaine pour une partie 2, peut-&#xEA;tre...</p>]]></content:encoded></item><item><title><![CDATA[GNU Karl Tremblay]]></title><description><![CDATA[Une proposition pour le web québécois, pour honorer la mémoire de Karl Tremblay.]]></description><link>https://a39.ca/gnu-karl-tremblay/</link><guid isPermaLink="false">6918bc982dc42c02a07a0917</guid><category><![CDATA[Essais]]></category><dc:creator><![CDATA[J. P. Savard]]></dc:creator><pubDate>Sat, 15 Nov 2025 18:39:58 GMT</pubDate><media:content url="https://a39.fly.storage.tigris.dev/2025/11/2016-10_Les_Cowboys_fringants_Concert_metropolis_21.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://a39.fly.storage.tigris.dev/2025/11/2016-10_Les_Cowboys_fringants_Concert_metropolis_21.jpg" alt="GNU Karl Tremblay"><p>Dans les romans <em>Discworld</em> de Terry Pratchett, les <em>clacks</em> sont une s&#xE9;rie de tours &#xE0; s&#xE9;maphores qui peuvent envoyer des messages &#xE0; l&apos;aide de codes standardis&#xE9;s, similaire &#xE0; un t&#xE9;l&#xE9;graphe.</p><p>L&apos;inventeur de ce syst&#xE8;me, Robert Dearheart, a perdu son fils, John, dans un accident en travaillant sur ces <em>clacks</em>. Il eut l&apos;id&#xE9;e d&apos;envoyer son nom dans le syst&#xE8;me de mani&#xE8;re qu&apos;il sera relay&#xE9; pour toujours, ou du moins tant que le syst&#xE8;me fonctionne, avec les signaux suivants: <strong>G</strong> pour envoyer le message &#xE0; la prochaine tour, <strong>N</strong> pour ne pas journaliser le message, et <strong>U</strong> pour retourner le message d&apos;o&#xF9; il vient &#xE0; la fin de la ligne, parce qu&apos;une personne ne meurt pas si son nom est toujours mentionn&#xE9;.</p><p>Dans notre monde, des d&#xE9;veloppeurs web fans de <em>Discworld</em> ont eu la brillante id&#xE9;e d&apos;adapter ce syst&#xE8;me &#xE0; notre Internet pour honorer la m&#xE9;moire de l&apos;auteur Terry Pratchett en envoyant un en-t&#xEA;te HTTP particulier avec chaque page web:</p><pre><code class="language-http">X-Clacks-Overhead: GNU Terry Pratchett</code></pre><p>Bien s&#xFB;r, on peut faire de m&#xEA;me pour n&apos;importe qui dont on d&#xE9;sire honorer la m&#xE9;moire, par exemple Karl Tremblay, le chanteur des Cowboys Fringants.</p><p>Donc aujourd&apos;hui, en ce deuxi&#xE8;me anniversaire de la disparition de ce cher Karl, je propose que le web qu&#xE9;b&#xE9;cois ajoute cette en-t&#xEA;te &#xE0; leur r&#xE9;ponses HTTP:</p><pre><code class="language-http">X-Clacks-Overhead: GNU Karl Tremblay</code></pre><p>Ou, si ce n&apos;est pas possible, dans la page HTML:</p><pre><code class="language-html">&lt;head&gt;
  &lt;meta http-equiv=&quot;X-Clacks-Overhead&quot; content=&quot;GNU Karl Tremblay&quot; /&gt;
&lt;/head&gt;</code></pre><p>Parce que tant qu&apos;on &#xE9;coutera du Cowboys, Karl ne mourra jamais.</p><h2 id="liens-utiles">Liens utiles</h2><p>Pour plus d&apos;infos et la marche &#xE0; suivre (en anglais):</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://xclacksoverhead.org/?ref=a39.ca"><div class="kg-bookmark-content"><div class="kg-bookmark-title">XClacksOverhead.org</div><div class="kg-bookmark-description">Information on the X-Clacks-Overhead transmission header.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://xclacksoverhead.org/favicon.png" alt="GNU Karl Tremblay"><span class="kg-bookmark-author">X-Clacks-Overhead</span></div></div><div class="kg-bookmark-thumbnail"><img src="http://dev.local" alt="GNU Karl Tremblay"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="http://www.gnuterrypratchett.com/?ref=a39.ca"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GNU Terry Pratchett</div><div class="kg-bookmark-description">A man is not dead while his name is still spoken. GNU Terry Pratchett.</div><div class="kg-bookmark-metadata"><span class="kg-bookmark-publisher">Tiago Peczenyj</span></div></div><div class="kg-bookmark-thumbnail"><img src="http://www.gnuterrypratchett.com/gmail.png" alt="GNU Karl Tremblay"></div></a></figure>]]></content:encoded></item><item><title><![CDATA[J'ai demandé à mes amis de nommer un chiffre de 1 à 10]]></title><description><![CDATA[<p>Fun fact, on peut calculer la valeur de &#x3C0; avec &#xE7;a. Ouais, la constante pour calculer la circonf&#xE9;rence d&apos;un cercle, qui vaut &#xE0; peu pr&#xE8;s 3.1416. C&apos;est un truc que j&apos;aime faire &#xE0; l&apos;occasion du jour</p>]]></description><link>https://a39.ca/pi-2025/</link><guid isPermaLink="false">67d3a10fa38063014f608730</guid><dc:creator><![CDATA[J. P. Savard]]></dc:creator><pubDate>Fri, 14 Mar 2025 17:21:23 GMT</pubDate><media:content url="https://a39.fly.storage.tigris.dev/2025/03/Screenshot_20250314_020529.png" medium="image"/><content:encoded><![CDATA[<img src="https://a39.fly.storage.tigris.dev/2025/03/Screenshot_20250314_020529.png" alt="J&apos;ai demand&#xE9; &#xE0; mes amis de nommer un chiffre de 1 &#xE0; 10"><p>Fun fact, on peut calculer la valeur de &#x3C0; avec &#xE7;a. Ouais, la constante pour calculer la circonf&#xE9;rence d&apos;un cercle, qui vaut &#xE0; peu pr&#xE8;s 3.1416. C&apos;est un truc que j&apos;aime faire &#xE0; l&apos;occasion du jour de &#x3C0;, le 14 mars (ou 3-14 en format ISO 8601), une oeuvre d&apos;art ou une exp&#xE9;rience sur la th&#xE9;matique.</p><p>Cette ann&#xE9;e, j&apos;ai donc pos&#xE9; la question &#xE0; mes amis et abonn&#xE9;s: nommez-moi 3 nombres r&#xE9;els entre 0.0 et 10.0. Soit, une coordonn&#xE9;e dans un espace 3D. Comment on arrive &#xE0; &#x3C0; avec &#xE7;a?</p><p>Avec la m&#xE9;thode de Monte-Carlo. En gros, on dessine un cercle inscrit dans un carr&#xE9; dont le centre est &#xE0; l&apos;origine. L&apos;id&#xE9;e, donc, c&apos;est de prendre des coordonn&#xE9;es al&#xE9;atoires, calculer la distance de l&apos;origine avec le th&#xE9;or&#xE8;me de Pythagore, regarder si c&apos;est inf&#xE9;rieur au rayon \(R\) du cercle, et ensuite calculer le ratio en utilisant cette charmante formule:</p><p>\[ \frac{\pi}{4}\approx\frac{\#\ points\ o&#xF9;\ x^2+y^2\lt R^2}{\#\ points\ total} \]</p><p>Truc que j&apos;ai fait auparavant en 2023, et &#xE7;a m&apos;a donn&#xE9; \( \pi\approx3.43 \). Pas pire, pour un &#xE9;chantillon de 15.</p><p>L&#xE0;, on &#xE9;tait en 2 dimensions, mais est-ce &#xE7;a marche en 3D? Oui! Faut juste adapter la formule pour une sph&#xE8;re dans un cube:</p><p>\[ \frac{\pi}{6}\approx\frac{\#\ points\ o&#xF9;\ x^2+y^2+z^2\lt R^2}{\#\ points\ total} \]</p><p>En fait, on peut g&#xE9;n&#xE9;raliser &#xE0; \(n\) dimensions:</p><p>\[ \frac{\pi^{\frac{n}{2}}}{2^{n}\cdot\Gamma(\frac{n}{2}+1)}\approx\frac{\#\ points\ o&#xF9;\ {x_1}^2+{x_2}^2+\cdots+{x_n}^2\lt R^2}{\#\ points\ total} \]</p><p>En tout cas. Je vous demande pas de comprendre tout &#xE7;a et de retenir la formule par coeur. L&apos;id&#xE9;e c&apos;est de savoir si &#xE7;a tient si au lieu de prendre des nombres al&#xE9;atoires, on demande &#xE0; du peuple al&#xE9;atoire. Donc, j&apos;ai demand&#xE9; &#xE0; mes suiveux sur le F&#xE9;divers et sur Facebook, et, au moment d&apos;&#xE9;crire ces lignes, avec un &#xE9;chantillon de 25...</p><p>\[ \pi=3.6 \]</p><p>Pas pire. En fait, vu que j&apos;ai pris mes donn&#xE9;es &#xE0; deux places on peut aller regarder lequel est le meilleur:</p><p>F&#xE9;divers: \( \pi\approx3.158 \)<br>Facebook: \( \pi=5 \)</p><p>Conclusion: le F&#xE9;divers est objectivement le meilleur r&#xE9;seau social.</p><figure class="kg-card kg-image-card"><img src="https://a39.fly.storage.tigris.dev/2025/03/Screenshot_20250314_014424.png" class="kg-image" alt="J&apos;ai demand&#xE9; &#xE0; mes amis de nommer un chiffre de 1 &#xE0; 10" loading="lazy" width="917" height="617"></figure>]]></content:encoded></item><item><title><![CDATA[Et si la LNH avait un système de relégation?]]></title><description><![CDATA[<p>Des fois je pense &#xE0; des affaires bizarres. Mettons que la Ligue Nationale de Hockey (LNH) avait un syst&#xE8;me de promotion et rel&#xE9;gation, comme au soccer europ&#xE9;en. Quess&#xE9; &#xE7;a donne?</p><p>&#xC9;tant fan d&apos;histoire alternative et de programmation de trucs</p>]]></description><link>https://a39.ca/lnh-systeme-relegation/</link><guid isPermaLink="false">6753606ea38063014f608353</guid><dc:creator><![CDATA[J. P. Savard]]></dc:creator><pubDate>Sat, 14 Dec 2024 21:27:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1711413236898-d2fef57ad3a3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fG5obCUyMGhvY2tleXxlbnwwfHx8fDE3MzQyMTE3MTl8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1711413236898-d2fef57ad3a3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fG5obCUyMGhvY2tleXxlbnwwfHx8fDE3MzQyMTE3MTl8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Et si la LNH avait un syst&#xE8;me de rel&#xE9;gation?"><p>Des fois je pense &#xE0; des affaires bizarres. Mettons que la Ligue Nationale de Hockey (LNH) avait un syst&#xE8;me de promotion et rel&#xE9;gation, comme au soccer europ&#xE9;en. Quess&#xE9; &#xE7;a donne?</p><p>&#xC9;tant fan d&apos;histoire alternative et de programmation de trucs compl&#xE8;tement d&#xE9;biles, fallait que j&apos;explore l&apos;id&#xE9;e, que j&apos;&#xE9;crive une simulation. Le pire, c&apos;est que c&apos;est enti&#xE8;rement faisable! Le code fait m&#xEA;me pas 100 lignes de JavaScript!</p><p>En premier, faudra se mettre une couple de r&#xE8;gles. Y&apos;a beaucoup de possibilit&#xE9;s, mais on va faire &#xE7;a simple. Par exemple, on va partir la simulation en 1967. Pourquoi? C&apos;est l&apos;ann&#xE9;e o&#xF9; la LNH a pass&#xE9; de 6 &#xE0; 12 &#xE9;quipes, et ils ont mis toutes les nouvelles &#xE9;quipes dans la m&#xEA;me division Ouest.</p><table>
<thead>
<tr>
<th style="text-align:center">Division Est</th>
<th style="text-align:center">Division Ouest</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">Blackhawks de Chicago</td>
<td style="text-align:center">Blues de St-Louis</td>
</tr>
<tr>
<td style="text-align:center">Bruins de Boston</td>
<td style="text-align:center">Flyers de Philadelphia</td>
</tr>
<tr>
<td style="text-align:center">Canadiens de Montr&#xE9;al</td>
<td style="text-align:center">Kings de Los Angeles</td>
</tr>
<tr>
<td style="text-align:center">Maple Leafs de Toronto</td>
<td style="text-align:center">North Stars du Minnesota*</td>
</tr>
<tr>
<td style="text-align:center">Rangers de New York</td>
<td style="text-align:center">Penguins de Pittsburgh</td>
</tr>
<tr>
<td style="text-align:center">Red Wings de Detroit</td>
<td style="text-align:center">Seals de Oakland*</td>
</tr>
</tbody>
</table>
<div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">Les North Stars du Minnesota sont aujourd&apos;hui les Stars de Dallas, et les Seals ont d&#xE9;m&#xE9;nag&#xE9; &#xE0; Cleveland avant de fusionner avec les North Stars.</div></div><p>Probablement une bonne ann&#xE9;e pour faire de la division Est notre division 1, et l&apos;Ouest la division 2. Parce que &#xE7;a avait pris un bout avant que les nouvelles &#xE9;quipes soient bonnes, &#xE7;a aurait pu donner une nouvelle dimension aux stats. &#xC9;galement:</p><ul><li>Chaque ann&#xE9;e, les deux pires &#xE9;quipes de division 1 sont rel&#xE9;gu&#xE9;s en division 2, et les deux meilleures de division 2 sont promus en division 1.</li><li>Seulement les matchs intradivision compteraient dans le calcul. Dans notre histoire alternative, il y aurait quand m&#xEA;me des matchs interdivision mais qui compteraient seulement pour le format des playoffs, qu&apos;on ne toucherait pas pour le moment.</li><li>Chaque nouvelle &#xE9;quipe est ajout&#xE9;e en division 2, et au besoin, on rel&#xE8;gue moins, voire aucune &#xE9;quipe, histoire de garder les deux divisions sensiblement de la m&#xEA;me grosseur. Au besoin, on ferait un ajustement similaire &#xE0; la suppression d&apos;une &#xE9;quipe, mais c&apos;est encore jamais arriv&#xE9;: Cleveland &#xE9;tait en division 2 lors de sa fusion, et le Utah HC a pu remplacer les Coyotes de l&apos;Arizona &#xE9;galement en division 2, comme une &#xE9;quipe d&#xE9;m&#xE9;nag&#xE9;e qui pourra garder sa place dans la division de son pr&#xE9;d&#xE9;cesseur.</li></ul><p>Justement, les stats: la LNH a <a href="https://www.nhl.com/stats?ref=a39.ca" rel="noreferrer">un beau site web fancy</a> expr&#xE8;s juste pour &#xE7;a. On peut aller chercher pratiquement n&apos;importe quoi, du genre les statistiques des Canadiens contre toutes les autres &#xE9;quipes depuis la fondation de la ligue en 1917, ou encore la date o&#xF9; Connor McDavid a compt&#xE9; son 1000e point. Et, on va pas faire &#xE7;a manuellement pour toutes les saisons depuis 1967, ils ont s&#xFB;rement une API pour &#xE7;a, non? Eh ben oui. Et c&apos;est compl&#xE8;tement gratuit, en plus.</p><p>Donc le but de l&apos;exercice: aller chercher seulement les statistiques pour les matchs jou&#xE9;s par deux &#xE9;quipes d&apos;une m&#xEA;me division en ignorant les autres matchs. Et c&apos;est l&#xE0; que c&apos;est le fun: on peut sortir &#xE7;a en seulement une requ&#xEA;te d&#xE9;j&#xE0; tri&#xE9;e. Voici un petit programme en JavaScript qui fait exactement &#xE7;a:</p><figure class="kg-card kg-code-card"><pre><code class="language-javascript">var API = &quot;https://api.nhle.com/stats/rest/fr/team/summary&quot;;

function query(q)
{
    var url = new URLSearchParams({
        &quot;isAggregate&quot;: true,
        &quot;isGame&quot;: true,
        &quot;start&quot;: 0,
        &quot;limit&quot;: -1,
        &quot;sort&quot;: &apos;[{&quot;property&quot;:&quot;pointPct&quot;,&quot;direction&quot;:&quot;DESC&quot;},{&quot;property&quot;:&quot;wins&quot;,&quot;direction&quot;:&quot;DESC&quot;},{&quot;property&quot;:&quot;losses&quot;,&quot;direction&quot;:&quot;ASC&quot;},{&quot;property&quot;:&quot;otLosses&quot;,&quot;direction&quot;:&quot;DESC&quot;},{&quot;property&quot;:&quot;ties&quot;,&quot;direction&quot;:&quot;DESC&quot;},{&quot;property&quot;:&quot;goalsFor&quot;,&quot;direction&quot;:&quot;DESC&quot;},{&quot;property&quot;:&quot;goalsAgainst&quot;,&quot;direction&quot;:&quot;ASC&quot;},{&quot;property&quot;:&quot;franchiseId&quot;,&quot;direction&quot;:&quot;ASC&quot;}]&apos;,
        &quot;cayenneExp&quot;: q,
    });
    return fetch(API+&quot;?&quot;+url, {method: &apos;GET&apos;})
        .then(res =&gt; res.json())
}

var teams = [
    [1,5,6,10,11,12], // Division 1
    [13,14,15,16,17,18] // Division 2
];
var saison = &quot;19671968&quot;; // 1967-1968

for(var d = 0; d &lt; 2; d++)
    query(&quot;gameTypeId=2 and franchiseId in (&quot;+teams[d].join(&quot;,&quot;)+&quot;) and opponentFranchiseId in (&quot;+teams[d].join(&quot;,&quot;)+&quot;) and seasonId=&quot;+saison)
    .then(res=&gt;{
        console.table(res.data);
    });</code></pre><figcaption><p><span style="white-space: pre-wrap;">Le seul truc &#xE0; comprendre, c&apos;est que c&apos;est pas compliqu&#xE9;.</span></p></figcaption></figure><p>Et voici &#xE0; peu pr&#xE8;s ce que &#xE7;a donne pour la saison 1967-68:</p><p>Division 1</p><table>
<thead>
<tr>
<th></th>
<th>franchiseId</th>
<th>franchiseName</th>
<th>gamesPlayed</th>
<th>wins</th>
<th>losses</th>
<th>ties</th>
<th>goalsFor</th>
<th>goalsAgainst</th>
<th>points</th>
<th>pointPct</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>1</td>
<td>&apos;Canadiens de Montr&#xE9;al&apos;</td>
<td>50</td>
<td>26</td>
<td>17</td>
<td>7</td>
<td>160</td>
<td>121</td>
<td>59</td>
<td>0.59</td>
</tr>
<tr>
<td>1</td>
<td>6</td>
<td>&apos;Bruins de Boston&apos;</td>
<td>50</td>
<td>23</td>
<td>18</td>
<td>9</td>
<td>174</td>
<td>148</td>
<td>55</td>
<td>0.55</td>
</tr>
<tr>
<td>2</td>
<td>5</td>
<td>&apos;Maple Leafs de Toronto&apos;</td>
<td>50</td>
<td>23</td>
<td>20</td>
<td>7</td>
<td>132</td>
<td>120</td>
<td>53</td>
<td>0.53</td>
</tr>
<tr>
<td>3</td>
<td>10</td>
<td>&apos;Rangers de New York&apos;</td>
<td>50</td>
<td>22</td>
<td>19</td>
<td>9</td>
<td>143</td>
<td>138</td>
<td>53</td>
<td>0.53</td>
</tr>
<tr>
<td>4</td>
<td>11</td>
<td>&apos;Blackhawks de Chicago&apos;</td>
<td>50</td>
<td>17</td>
<td>22</td>
<td>11</td>
<td>135</td>
<td>173</td>
<td>45</td>
<td>0.45</td>
</tr>
<tr>
<td>5</td>
<td>12</td>
<td>&apos;Red Wings de Detroit&apos;</td>
<td>50</td>
<td>13</td>
<td>28</td>
<td>9</td>
<td>147</td>
<td>191</td>
<td>35</td>
<td>0.35</td>
</tr>
</tbody>
</table>
<p>Division 2</p><table>
<thead>
<tr>
<th></th>
<th>franchiseId</th>
<th>franchiseName</th>
<th>gamesPlayed</th>
<th>wins</th>
<th>losses</th>
<th>ties</th>
<th>goalsFor</th>
<th>goalsAgainst</th>
<th>points</th>
<th>pointPct</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>16</td>
<td>&apos;Flyers de Philadelphie&apos;</td>
<td>50</td>
<td>23</td>
<td>17</td>
<td>10</td>
<td>118</td>
<td>108</td>
<td>56</td>
<td>0.56</td>
</tr>
<tr>
<td>1</td>
<td>18</td>
<td>&apos;Blues de St. Louis&apos;</td>
<td>50</td>
<td>22</td>
<td>18</td>
<td>10</td>
<td>119</td>
<td>108</td>
<td>54</td>
<td>0.54</td>
</tr>
<tr>
<td>2</td>
<td>17</td>
<td>&apos;Penguins de Pittsburgh&apos;</td>
<td>50</td>
<td>21</td>
<td>19</td>
<td>10</td>
<td>136</td>
<td>126</td>
<td>52</td>
<td>0.52</td>
</tr>
<tr>
<td>3</td>
<td>15</td>
<td>&apos;Stars de Dallas&apos;</td>
<td>50</td>
<td>20</td>
<td>19</td>
<td>11</td>
<td>142</td>
<td>140</td>
<td>51</td>
<td>0.51</td>
</tr>
<tr>
<td>4</td>
<td>14</td>
<td>&apos;Kings de Los Angeles&apos;</td>
<td>50</td>
<td>21</td>
<td>21</td>
<td>8</td>
<td>129</td>
<td>140</td>
<td>50</td>
<td>0.5</td>
</tr>
<tr>
<td>5</td>
<td>13</td>
<td>&apos;Barons de Cleveland&apos;</td>
<td>50</td>
<td>11</td>
<td>24</td>
<td>15</td>
<td>115</td>
<td>137</td>
<td>37</td>
<td>0.37</td>
</tr>
</tbody>
</table>
<div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">Note: L&apos;API de la LNH va retourner le nom de la franchise tel qu&apos;elle s&apos;appelle de nos jours, par exemple les <i><em class="italic" style="white-space: pre-wrap;">Stars de Dallas</em></i> pour les <i><em class="italic" style="white-space: pre-wrap;">North Stars du Minnesota</em></i>, ou les <i><em class="italic" style="white-space: pre-wrap;">Barons de Cleveland</em></i> pour les <i><em class="italic" style="white-space: pre-wrap;">Seals de Oakland</em></i>. C&apos;est techniquement incorrect mais &#xE7;a &#xE9;vite de dealer avec les d&#xE9;m&#xE9;nagements de franchise plus tard dans le code.</div></div><p>Ensuite, pour la saison 1968-69, on pourra transf&#xE9;rer les Flyers et les Blues dans la Division 1 et les Blackhawks et les Red Wings en seconde division, et on r&#xE9;p&#xE8;te l&apos;exercice.</p><table>
<thead>
<tr>
<th></th>
<th>franchiseId</th>
<th>franchiseName</th>
<th>gamesPlayed</th>
<th>wins</th>
<th>losses</th>
<th>ties</th>
<th>goalsFor</th>
<th>goalsAgainst</th>
<th>points</th>
<th>pointPct</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>1</td>
<td>&apos;Canadiens de Montr&#xE9;al&apos;</td>
<td>36</td>
<td>19</td>
<td>12</td>
<td>5</td>
<td>117</td>
<td>94</td>
<td>43</td>
<td>0.59722</td>
</tr>
<tr>
<td>1</td>
<td>6</td>
<td>&apos;Bruins de Boston&apos;</td>
<td>36</td>
<td>17</td>
<td>11</td>
<td>8</td>
<td>131</td>
<td>109</td>
<td>42</td>
<td>0.58333</td>
</tr>
<tr>
<td>2</td>
<td>10</td>
<td>&apos;Rangers de New York&apos;</td>
<td>36</td>
<td>17</td>
<td>12</td>
<td>7</td>
<td>103</td>
<td>96</td>
<td>41</td>
<td>0.56944</td>
</tr>
<tr>
<td>3</td>
<td>5</td>
<td>&apos;Maple Leafs de Toronto&apos;</td>
<td>36</td>
<td>14</td>
<td>14</td>
<td>8</td>
<td>110</td>
<td>117</td>
<td>36</td>
<td>0.5</td>
</tr>
<tr>
<td>4</td>
<td>18</td>
<td>&apos;Blues de St. Louis&apos;</td>
<td>32</td>
<td>10</td>
<td>15</td>
<td>7</td>
<td>79</td>
<td>86</td>
<td>27</td>
<td>0.42187</td>
</tr>
<tr>
<td>5</td>
<td>16</td>
<td>&apos;Flyers de Philadelphie&apos;</td>
<td>32</td>
<td>6</td>
<td>19</td>
<td>7</td>
<td>61</td>
<td>99</td>
<td>19</td>
<td>0.29687</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th></th>
<th>franchiseId</th>
<th>franchiseName</th>
<th>gamesPlayed</th>
<th>wins</th>
<th>losses</th>
<th>ties</th>
<th>goalsFor</th>
<th>goalsAgainst</th>
<th>points</th>
<th>pointPct</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>12</td>
<td>&apos;Red Wings de Detroit&apos;</td>
<td>32</td>
<td>19</td>
<td>11</td>
<td>2</td>
<td>117</td>
<td>95</td>
<td>40</td>
<td>0.625</td>
</tr>
<tr>
<td>1</td>
<td>11</td>
<td>&apos;Blackhawks de Chicago&apos;</td>
<td>32</td>
<td>18</td>
<td>12</td>
<td>2</td>
<td>135</td>
<td>99</td>
<td>38</td>
<td>0.59375</td>
</tr>
<tr>
<td>2</td>
<td>13</td>
<td>&apos;Barons de Cleveland&apos;</td>
<td>36</td>
<td>17</td>
<td>13</td>
<td>6</td>
<td>124</td>
<td>114</td>
<td>40</td>
<td>0.55555</td>
</tr>
<tr>
<td>3</td>
<td>14</td>
<td>&apos;Kings de Los Angeles&apos;</td>
<td>36</td>
<td>13</td>
<td>17</td>
<td>6</td>
<td>100</td>
<td>127</td>
<td>32</td>
<td>0.44444</td>
</tr>
<tr>
<td>4</td>
<td>17</td>
<td>&apos;Penguins de Pittsburgh&apos;</td>
<td>36</td>
<td>13</td>
<td>20</td>
<td>3</td>
<td>105</td>
<td>118</td>
<td>29</td>
<td>0.40277</td>
</tr>
<tr>
<td>5</td>
<td>15</td>
<td>&apos;Stars de Dallas&apos;</td>
<td>36</td>
<td>12</td>
<td>19</td>
<td>5</td>
<td>103</td>
<td>131</td>
<td>29</td>
<td>0.40277</td>
</tr>
</tbody>
</table>
<div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">C&apos;est pour &#xE7;a qu&apos;on va trier par le pourcentage de points, &#xE0; ce point les diff&#xE9;rentes &#xE9;quipes n&apos;auront pas jou&#xE9; le m&#xEA;me nombre de matchs, faudra donc les mettre au m&#xEA;me niveau.</div></div><p>Et on r&#xE9;p&#xE8;te pour chaque saison, en prenant bien soin de tenir en compte les additions et soustractions d&apos;&#xE9;quipes, et, uh, la saison 2004-05...</p><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Ce qu&apos;il s&apos;est pass&#xE9; en 2004-2005 reste en 2004-2005.</div></div><p>...et on a un classement pour 2023-24, que voici:</p><div class="kg-card kg-callout-card kg-callout-card-green"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">Pour le fun, on va mettre le classement officiel &#xE0; c&#xF4;t&#xE9;, en deuxi&#xE8;me colonne.</div></div><table>
<thead>
<tr>
<th></th>
<th>ranking</th>
<th>franchiseId</th>
<th>franchiseName</th>
<th>gamesPlayed</th>
<th>wins</th>
<th>losses</th>
<th>otLosses</th>
<th>goalsFor</th>
<th>goalsAgainst</th>
<th>points</th>
<th>pointPct</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>7</td>
<td>6</td>
<td>&apos;Bruins de Boston&apos;</td>
<td>39</td>
<td>21</td>
<td>10</td>
<td>8</td>
<td>123</td>
<td>112</td>
<td>50</td>
<td>0.64102</td>
</tr>
<tr>
<td>1</td>
<td>9</td>
<td>25</td>
<td>&quot;Oilers d&apos;Edmonton&quot;</td>
<td>38</td>
<td>21</td>
<td>13</td>
<td>4</td>
<td>135</td>
<td>115</td>
<td>46</td>
<td>0.60526</td>
</tr>
<tr>
<td>2</td>
<td>8</td>
<td>27</td>
<td>&apos;Avalanche du Colorado&apos;</td>
<td>39</td>
<td>23</td>
<td>15</td>
<td>1</td>
<td>136</td>
<td>143</td>
<td>47</td>
<td>0.60256</td>
</tr>
<tr>
<td>3</td>
<td>5</td>
<td>35</td>
<td>&apos;Jets de Winnipeg&apos;</td>
<td>39</td>
<td>23</td>
<td>15</td>
<td>1</td>
<td>127</td>
<td>109</td>
<td>47</td>
<td>0.60256</td>
</tr>
<tr>
<td>4</td>
<td>13</td>
<td>31</td>
<td>&apos;Lightning de Tampa Bay&apos;</td>
<td>38</td>
<td>22</td>
<td>15</td>
<td>1</td>
<td>138</td>
<td>131</td>
<td>45</td>
<td>0.5921</td>
</tr>
<tr>
<td>5</td>
<td>11</td>
<td>34</td>
<td>&apos;Predators de Nashville&apos;</td>
<td>39</td>
<td>22</td>
<td>15</td>
<td>2</td>
<td>123</td>
<td>119</td>
<td>46</td>
<td>0.58974</td>
</tr>
<tr>
<td>6</td>
<td>4</td>
<td>33</td>
<td>&apos;Panthers de la Floride&apos;</td>
<td>38</td>
<td>21</td>
<td>15</td>
<td>2</td>
<td>122</td>
<td>99</td>
<td>44</td>
<td>0.57894</td>
</tr>
<tr>
<td>7</td>
<td>14</td>
<td>38</td>
<td>&apos;Golden Knights de Vegas&apos;</td>
<td>38</td>
<td>19</td>
<td>13</td>
<td>6</td>
<td>118</td>
<td>110</td>
<td>44</td>
<td>0.57894</td>
</tr>
<tr>
<td>8</td>
<td>18</td>
<td>24</td>
<td>&apos;Capitals de Washington&apos;</td>
<td>40</td>
<td>19</td>
<td>15</td>
<td>6</td>
<td>106</td>
<td>113</td>
<td>44</td>
<td>0.55</td>
</tr>
<tr>
<td>9</td>
<td>21</td>
<td>16</td>
<td>&apos;Flyers de Philadelphie&apos;</td>
<td>39</td>
<td>19</td>
<td>16</td>
<td>4</td>
<td>109</td>
<td>122</td>
<td>42</td>
<td>0.53846</td>
</tr>
<tr>
<td>10</td>
<td>24</td>
<td>21</td>
<td>&apos;Flames de Calgary&apos;</td>
<td>39</td>
<td>18</td>
<td>17</td>
<td>4</td>
<td>123</td>
<td>126</td>
<td>40</td>
<td>0.51282</td>
</tr>
<tr>
<td>11</td>
<td>16</td>
<td>18</td>
<td>&apos;Blues de St. Louis&apos;</td>
<td>39</td>
<td>18</td>
<td>18</td>
<td>3</td>
<td>111</td>
<td>119</td>
<td>39</td>
<td>0.5</td>
</tr>
<tr>
<td>12</td>
<td>19</td>
<td>17</td>
<td>&apos;Penguins de Pittsburgh&apos;</td>
<td>40</td>
<td>17</td>
<td>17</td>
<td>6</td>
<td>124</td>
<td>125</td>
<td>40</td>
<td>0.5</td>
</tr>
<tr>
<td>13</td>
<td>23</td>
<td>23</td>
<td>&apos;Devils du New Jersey&apos;</td>
<td>40</td>
<td>18</td>
<td>19</td>
<td>3</td>
<td>128</td>
<td>140</td>
<td>39</td>
<td>0.4875</td>
</tr>
<tr>
<td>14</td>
<td>15</td>
<td>22</td>
<td>&apos;Islanders de New York&apos;</td>
<td>40</td>
<td>16</td>
<td>18</td>
<td>6</td>
<td>109</td>
<td>133</td>
<td>38</td>
<td>0.475</td>
</tr>
<tr>
<td>15</td>
<td>20</td>
<td>37</td>
<td>&apos;Wild du Minnesota&apos;</td>
<td>41</td>
<td>16</td>
<td>20</td>
<td>5</td>
<td>121</td>
<td>137</td>
<td>37</td>
<td>0.45121</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th></th>
<th>ranking</th>
<th>franchiseId</th>
<th>franchiseName</th>
<th>gamesPlayed</th>
<th>wins</th>
<th>losses</th>
<th>otLosses</th>
<th>goalsFor</th>
<th>goalsAgainst</th>
<th>points</th>
<th>pointPct</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>2</td>
<td>15</td>
<td>&apos;Stars de Dallas&apos;</td>
<td>38</td>
<td>31</td>
<td>7</td>
<td>0</td>
<td>145</td>
<td>94</td>
<td>62</td>
<td>0.81578</td>
</tr>
<tr>
<td>1</td>
<td>6</td>
<td>20</td>
<td>&apos;Canucks de Vancouver&apos;</td>
<td>39</td>
<td>26</td>
<td>8</td>
<td>5</td>
<td>135</td>
<td>100</td>
<td>57</td>
<td>0.73076</td>
</tr>
<tr>
<td>2</td>
<td>3</td>
<td>26</td>
<td>&apos;Hurricanes de la Caroline&apos;</td>
<td>38</td>
<td>27</td>
<td>10</td>
<td>1</td>
<td>136</td>
<td>91</td>
<td>55</td>
<td>0.72368</td>
</tr>
<tr>
<td>3</td>
<td>1</td>
<td>10</td>
<td>&apos;Rangers de New York&apos;</td>
<td>38</td>
<td>26</td>
<td>9</td>
<td>3</td>
<td>140</td>
<td>109</td>
<td>55</td>
<td>0.72368</td>
</tr>
<tr>
<td>4</td>
<td>12</td>
<td>14</td>
<td>&apos;Kings de Los Angeles&apos;</td>
<td>40</td>
<td>26</td>
<td>10</td>
<td>4</td>
<td>132</td>
<td>100</td>
<td>56</td>
<td>0.7</td>
</tr>
<tr>
<td>5</td>
<td>10</td>
<td>5</td>
<td>&apos;Maple Leafs de Toronto&apos;</td>
<td>39</td>
<td>22</td>
<td>12</td>
<td>5</td>
<td>142</td>
<td>126</td>
<td>49</td>
<td>0.6282</td>
</tr>
<tr>
<td>6</td>
<td>17</td>
<td>12</td>
<td>&apos;Red Wings de Detroit&apos;</td>
<td>40</td>
<td>20</td>
<td>15</td>
<td>5</td>
<td>131</td>
<td>138</td>
<td>45</td>
<td>0.5625</td>
</tr>
<tr>
<td>7</td>
<td>25</td>
<td>39</td>
<td>&apos;Kraken de Seattle&apos;</td>
<td>39</td>
<td>18</td>
<td>14</td>
<td>7</td>
<td>120</td>
<td>109</td>
<td>43</td>
<td>0.55128</td>
</tr>
<tr>
<td>8</td>
<td>22</td>
<td>19</td>
<td>&apos;Sabres de Buffalo&apos;</td>
<td>41</td>
<td>19</td>
<td>18</td>
<td>4</td>
<td>127</td>
<td>121</td>
<td>42</td>
<td>0.51219</td>
</tr>
<tr>
<td>9</td>
<td>27</td>
<td>28</td>
<td>&quot;Coyotes de l&apos;Arizona&quot;</td>
<td>37</td>
<td>17</td>
<td>18</td>
<td>2</td>
<td>106</td>
<td>116</td>
<td>36</td>
<td>0.48648</td>
</tr>
<tr>
<td>10</td>
<td>28</td>
<td>1</td>
<td>&apos;Canadiens de Montr&#xE9;al&apos;</td>
<td>39</td>
<td>16</td>
<td>18</td>
<td>5</td>
<td>108</td>
<td>129</td>
<td>37</td>
<td>0.47435</td>
</tr>
<tr>
<td>11</td>
<td>26</td>
<td>30</td>
<td>&quot;S&#xE9;nateurs d&apos;Ottawa&quot;</td>
<td>40</td>
<td>18</td>
<td>21</td>
<td>1</td>
<td>128</td>
<td>136</td>
<td>37</td>
<td>0.4625</td>
</tr>
<tr>
<td>12</td>
<td>29</td>
<td>36</td>
<td>&apos;Blue Jackets de Columbus&apos;</td>
<td>39</td>
<td>13</td>
<td>18</td>
<td>8</td>
<td>124</td>
<td>146</td>
<td>34</td>
<td>0.43589</td>
</tr>
<tr>
<td>13</td>
<td>31</td>
<td>11</td>
<td>&apos;Blackhawks de Chicago&apos;</td>
<td>38</td>
<td>12</td>
<td>22</td>
<td>4</td>
<td>93</td>
<td>147</td>
<td>28</td>
<td>0.36842</td>
</tr>
<tr>
<td>14</td>
<td>30</td>
<td>32</td>
<td>&quot;Ducks d&apos;Anaheim&quot;</td>
<td>40</td>
<td>13</td>
<td>24</td>
<td>3</td>
<td>97</td>
<td>134</td>
<td>29</td>
<td>0.3625</td>
</tr>
<tr>
<td>15</td>
<td>32</td>
<td>29</td>
<td>&apos;Sharks de San Jose&apos;</td>
<td>41</td>
<td>9</td>
<td>26</td>
<td>6</td>
<td>98</td>
<td>166</td>
<td>24</td>
<td>0.29268</td>
</tr>
</tbody>
</table>
<p>Okay, je ne suis pas analyste, mais le r&#xE9;sultat est absolument int&#xE9;ressant. Genre, le Canadien est pas dernier. On pourrait en jaser durant des heures, mais je vous laisse en faire votre propre id&#xE9;e. Cliquez sur le lien ci-dessous et dites-moi ce que vous en pensez.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://lnh.a39.ca/?ref=a39.ca"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Classement LNH mais dans un autre univers</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://a39.ca/favicon.ico" alt="Et si la LNH avait un syst&#xE8;me de rel&#xE9;gation?"></div></div></a></figure><p>En conclusion, j&apos;esp&#xE8;re que vous aimez l&apos;id&#xE9;e, et si vous &#xEA;tres bon en programmation et vous voulez changer les r&#xE8;gles j&apos;ai mis <a href="https://a39.dev/a39/lnh?ref=a39.ca" rel="noreferrer">le code source ici</a> &#x1F603;</p>]]></content:encoded></item><item><title><![CDATA[La fois où j'ai volé Garfield]]></title><description><![CDATA[<p>OK, faut que je vous conte une histoire. La fois o&#xF9; j&apos;ai commis un vol qualifi&#xE9;. Non, j&apos;ai pas pris une BD &#xE0; l&apos;Imaginaire pis j&apos;ai pas pay&#xE9;, loin de l&#xE0;. Quelque chose de pas mal plus wack.</p>]]></description><link>https://a39.ca/je-suis-garfield/</link><guid isPermaLink="false">673bda4ba38063014f6082da</guid><category><![CDATA[Essais]]></category><dc:creator><![CDATA[J. P. Savard]]></dc:creator><pubDate>Tue, 19 Nov 2024 01:51:55 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1624969862644-791f3dc98927?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fHN0ZWFsaW5nfGVufDB8fHx8MTczMTk3NTg5NHww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1624969862644-791f3dc98927?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fHN0ZWFsaW5nfGVufDB8fHx8MTczMTk3NTg5NHww&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="La fois o&#xF9; j&apos;ai vol&#xE9; Garfield"><p>OK, faut que je vous conte une histoire. La fois o&#xF9; j&apos;ai commis un vol qualifi&#xE9;. Non, j&apos;ai pas pris une BD &#xE0; l&apos;Imaginaire pis j&apos;ai pas pay&#xE9;, loin de l&#xE0;. Quelque chose de pas mal plus wack.</p><p>J&apos;ai vol&#xE9; Garfield.com. Le site web. Du moins, le contr&#xF4;le de ce qu&apos;il y a dessus.</p><p>Tout a commenc&#xE9; un beau jour de novembre, ce cher <a href="https://www.youtube.com/@TeleNostalGeek?ref=a39.ca" rel="noreferrer">T&#xE9;l&#xE9; Nostalgeek</a>, qui t&#xE9;l&#xE9;charge des vieilles &#xE9;missions de Canal Famille des ann&#xE9;es 90 sur YouTube avait commenc&#xE9; &#xE0; mettre des &#xE9;pisodes de Garfield et ses amis. Gros retour dans mon enfance. Et dit Garfield, dit les strips qui passent dans le journal, dit le site Garfield.com, qui avait des tonnes de goodies dessus dans le temps. Dans le temps, parce que aujourd&apos;hui, y&apos;a plus rien.</p><p>Tellement plus rien que c&apos;&#xE9;tait juste une page d&apos;erreur du service Netlify qui dit qu&apos;il y avait pas de site &#xE0; cet endroit. Comme si le domaine. &#xE7;a pointait vers un site qui n&apos;existe pas. Et &#xE7;a, c&apos;est dangereux. Je vous explique pourquoi.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://a39.fly.storage.tigris.dev/2024/11/20241118_19h06m09s_grim.png" class="kg-image" alt="La fois o&#xF9; j&apos;ai vol&#xE9; Garfield" loading="lazy" width="578" height="371"><figcaption><span style="white-space: pre-wrap;">&#xC7;a ressemblait pas mal &#xE0; &#xE7;a.</span></figcaption></figure><p>Th&#xE9;oriquement, &#xE7;a veut dire qu&apos;il y avait un site &#xE0; cet endroit mais pour quelconque raison le site a &#xE9;t&#xE9; supprim&#xE9; depuis. Mais y&apos;a rien qui emp&#xEA;cherait quiconque de refaire un site &#xE0; la m&#xEA;me place...</p><p>Faque, pour le fun, j&apos;ai pris un site random que j&apos;ai sur Netlify, mettons mon portfolio, et j&apos;ai ajout&#xE9; &quot;garfield.com&quot; &#xE0; la liste des alias de domaine. Et vu que plus personne utilise garfield.com sur Netlify, &#xE0; ma grande surprise, &#xE7;a a juste march&#xE9;.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://a39.fly.storage.tigris.dev/2024/11/20241108_01h12m17s_grim.png" class="kg-image" alt="La fois o&#xF9; j&apos;ai vol&#xE9; Garfield" loading="lazy" width="992" height="476"><figcaption><span style="white-space: pre-wrap;">Encore l&#xE0;, &#xE7;a ressemblait pas mal &#xE0; &#xE7;a.</span></figcaption></figure><p>On est le 7 novembre, vers 18 heures, heure du Qu&#xE9;bec. Garfield.com redirige vers mon portfolio personnel. Je suis, &#xE0; toutes fins et intentions, Garfield. Grosse panique. C&apos;&#xE9;tait certainement pas trop l&#xE9;gal ce que j&apos;ai fait l&#xE0;. J&apos;&#xE9;tais genre un scientifique fou, bien qu&apos;empreint de fiert&#xE9; que sa derni&#xE8;re manigance marche, commence &#xE0; se questionner sur l&apos;&#xE9;thique de toute c&apos;t&apos;affaire-l&#xE0;. J&apos;ai contact&#xE9; quelques personnes, conduit quelques tests, juste pour m&apos;assurer que c&apos;&#xE9;tait pas juste moi: en effet, il semble qu&apos;il y ait un proxy qui redirige les utilisateurs des &#xC9;tats-Unis sur nick.com, et ceux du reste du monde, du moins du Canada et de la France, sur mon site web. Au moins les avocats de chez Nickelodeon s&apos;en rendront pas compte tout de suite.</p><p>Et c&apos;est pour &#xE7;a que c&apos;est dangereux: &#xE7;a aurait pu &#xEA;tre n&apos;importe qui, incluant une personne malveillante qui aurait mis un faux site plein de virus, et &#xE7;a aurait march&#xE9; partout sauf aux &#xC9;tats-Unis.</p><p>Et l&#xE0; me vient l&apos;id&#xE9;e que justement, faudrait leur dire. Mais &#xE0; qui? Qui d&#xE9;tient les copyrights sur Garfield? Apr&#xE8;s un peu de recherche, je d&#xE9;termine que c&apos;est la multinationale Paramount Global (qui d&#xE9;tient Nickelodeon, qui a achet&#xE9; Paws, Inc., la compagnie fond&#xE9;e par Jim Davis afin de g&#xE9;rer sa cr&#xE9;ation) qui devrait recevoir ce genre de message. 19 heures, j&apos;envoie donc une missive, via la page de contact de leur site web corporatif, et &#xE9;galement via une adresse courriel que j&apos;ai trouv&#xE9; dans le <a href="https://fr.wikipedia.org/wiki/Whois?ref=a39.ca" rel="noreferrer">registre WHOIS</a> du nom de domaine en question, probablement le d&#xE9;partement qui g&#xE8;re leur s&#xFB;rement nombreux noms de domaine.</p><blockquote>Hello,<br><br>I am writing concerning your domain name <em>garfield.com</em>: I have found that it points to a now deleted website on Netlify, at least here in Canada. This is concerning because since the site was deleted, but the domain name still points there, anyone can tell Netlify to point garfield.com to their account, effectively take ownership, and use the domain for nefarious purposes.<br><br>I have taken the liberty to do exactly that and point garfield.com to a site on Netlify under my control to prevent anyone else from using the domain for nefarious purposes, until you fix the issue, either by pointing garfield.com somewhere else, or in the event you wish to create a new site on Netlify again I will also delete the domain from my account on Netlify upon request and/or after the issue will be fixed.<br><br>I am open to any question you have, and for any collaboration. Thanks!</blockquote><p>En bon fran&#xE7;ais, je prends bien soin de m&apos;expliquer, leur donner mon enti&#xE8;re collaboration et leur assurer que je ne ferai rien de trop con, pour ne pas m&apos;attrirer quelconque trouble, et je remplace &#xE9;galement le site par une case de BD de Garfield, juste pour &#xEA;tre bien s&#xFB;r. Celui o&#xF9; il fume une pipe, parce que pourquoi pas. C&apos;est quoi le pire qui peut arriver? Ils devraient comprendre et juste changer leur DNS, si tout va bien. Au pire, un petit <em>cease and desist</em>, que je pourrai imm&#xE9;diatement m&apos;y plier et l&apos;encadrer apr&#xE8;s parce que lol. Ils sont bien capables de reprendre contr&#xF4;le comme des grands.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://a39.fly.storage.tigris.dev/2024/11/pipe.jpg" class="kg-image" alt="La fois o&#xF9; j&apos;ai vol&#xE9; Garfield" loading="lazy" width="400" height="400"><figcaption><span style="white-space: pre-wrap;">Je me trouvais dr&#xF4;le.</span></figcaption></figure><p>J&apos;oublie &#xE7;a l&#xE0;, et vers minuit je regarde de nouveau, et comme de fait, garfield.com redirige vers ytv.com, tout comme nick.com qui redirige &#xE9;galement vers ytv.com au Canada. Tout est bien qui finit bien.</p><p>Au moment d&apos;&#xE9;crire ces lignes, ni Paramount, ni le d&#xE9;partement dont j&apos;ai trouv&#xE9; l&apos;adresse courriel n&apos;a autrement r&#xE9;pondu &#xE0; ma missive. J&apos;aurais esp&#xE9;r&#xE9; plus, mais hey.</p><p>Faque ouais. Le gros cambriolage de l&apos;ann&#xE9;e. Un vol d&apos;identit&#xE9;, pratiquement. Parce que juste pour quelques heures, la soir&#xE9;e du 7 novembre 2024, j&apos;&#xE9;tais Garfield.</p>]]></content:encoded></item><item><title><![CDATA[Bienvenue sur a39]]></title><description><![CDATA[Un nouveau blog sur les technologies.]]></description><link>https://a39.ca/bienvenue/</link><guid isPermaLink="false">662e89bb697ab20139ab65a2</guid><category><![CDATA[Méta]]></category><dc:creator><![CDATA[J. P. Savard]]></dc:creator><pubDate>Sun, 28 Apr 2024 22:28:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1575283819640-63334cdeca5b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGJpZW52ZW51ZXxlbnwwfHx8fDE3MTQzNDMxMTZ8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1575283819640-63334cdeca5b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGJpZW52ZW51ZXxlbnwwfHx8fDE3MTQzNDMxMTZ8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="Bienvenue sur a39"><p>Bienvenue dans mon humble demeure! Je m&#x2019;appelle J.P., et je suis votre h&#xF4;te pour la soir&#xE9;e.</p><p>Je suis tomb&#xE9; dans la marmite du Web quand j&#x2019;&#xE9;tais petit, en lisant des livres tels que <em>Le HTML pour les nuls</em>. C&#x2019;&#xE9;tait dans les ann&#xE9;es 2000, c&#x2019;&#xE9;tait le bon vieux temps quand t&#x2019;avais le droit &#xE0; 10 heures d&#x2019;Internet par mois, durant lequel tu ne pouvais pas utiliser le t&#xE9;l&#xE9;phone parce que tu t&#x2019;en servais pour justement se connecter sur Internet. C&#x2019;&#xE9;tait &#xE7;a ou aller &#xE0; l&#x2019;&#xE9;cole. (La blague c&apos;est qu&apos;ils avaient des ordinateurs connect&#xE9;s &#xE0; Internet 24/7 l&#xE0;-bas. C&apos;&#xE9;tait pas les meilleurs mais on faisait avec ce qu&apos;on pouvait.) Depuis, j&#x2019;ai fait, r&#xE9;alis&#xE9; et maintenu une bonne quantit&#xE9; de sites web, pour moi m&#xEA;me, pour des amis, des clients, et m&#xEA;me le gouvernement. Et durant ce temps, j&#x2019;ai essay&#xE9; beaucoup de choses, j&#x2019;ai touch&#xE9; &#xE0; un peu n&#x2019;importe quoi, &#xE7;a n&apos;a pas toujours march&#xE9;, mais j&#x2019;en ai appris.</p><p>Aujourd&#x2019;hui, j&#x2019;ai eu la brillante id&#xE9;e de rendre la pareille et de lancer un blogue. Un blogue o&#xF9; je compte partager mes exp&#xE9;riences en tant que d&#xE9;veloppeur web, de mes opinions tranch&#xE9;es &#xE0; propos d&#x2019;un peu tout et n&#x2019;importe quoi, des trucs et astuces utiles pour votre prochain site web et des pr&#xE9;sentations de nouvelles technologies qui pourraient vous int&#xE9;resser. En tout cas, j&#x2019;esp&#xE8;re que ce blogue vous rendra utile. Le but, c&#x2019;est de partager mon exp&#xE9;rience, d&#x2019;&#xE9;duquer mes semblables, de cr&#xE9;er une communaut&#xE9;, de dire au monde entier qu&apos;il n&apos;y a pas juste WordPress dans la vie, et que vous n&apos;avez pas besoin de vous ruiner pour faire quelque chose de beau, le tout avec une touche d&#x2019;humour qui saura attirer votre attention. &#xC9;galement, c&#x2019;est d&#x2019;exp&#xE9;rimenter, construire quelque chose que je serais &#xE0; l&#x2019;aise de proposer &#xE0; un client dans un contrat &#xE0; la pige. Donc, si vous voulez un petit site perso de ce genre &#xE7;a va me faire plaisir de s&#x2019;en parler ;)</p><p>J&#x2019;ai aucune id&#xE9;e si &#xE7;a va marcher ou non, mais hey, j&#x2019;aurai essay&#xE9;. C&#x2019;est comme &#xE7;a que je marche dans la vie: tu tires un peu n&#x2019;importe quoi sur le mur et tu regardes ce qui colle. Apr&#xE8;s tout, tu manques 100% des coups que tu ne tires pas.</p><p>Aussi, le nom. a39. Je voulais un nom court et m&#xE9;morable, qui ne voulait pas dire grand chose. Vous avez s&#xFB;rement vu <em>Les 12 travaux d&#x2019;Ast&#xE9;rix</em> durant un Cin&#xE9;-Cadeau &#xE0; T&#xE9;l&#xE9;-Qu&#xE9;bec. (Ou si vous n&#x2019;&#xEA;tes pas du Qu&#xE9;bec, vous l&#x2019;avez s&#xFB;rement vu quand m&#xEA;me. C&#x2019;est un classique. Si vous ne l&apos;avez pas vu, allez le voir.) En gros, l&#x2019;une des t&#xE2;ches que Ast&#xE9;rix et Ob&#xE9;lix doivent faire est d&#x2019;aller chercher un laisser-passer A38 dans une maison des fous. C&#x2019;est un peu &#xE7;a programmer: parfois il n&apos;y a rien qui marche comme tu le veux, rien ne m&#xE8;ne &#xE0; rien, et t&#x2019;as l&#x2019;impression d&#x2019;aller chercher ce laisser-passer A38. Ast&#xE9;rix, il pense en dehors de la bo&#xEE;te: il demande&#x2026; le A39. Et le chaos se cr&#xE9;e &#xE0; un point o&#xF9; il finit par recevoir ce qu&#x2019;il demandait. A39, c&apos;est la solution &#xE0; ton probl&#xE8;me. C&#x2019;est un peu po&#xE9;tique et nananne, oui, mais hey, c&#x2019;est court et m&#xE9;morable.</p><p>En tout cas. Je n&#x2019;ai point la pr&#xE9;tention de d&#xE9;tenir la v&#xE9;rit&#xE9; sur ce que je dis. Loin de l&#xE0;. Juste, parler de ce qui me passionne, et avoir du fun. Si vous aimez, je vous invite &#xE0; vous inscrire &#xE0; l&#x2019;infolettre, &#xE0; suivre le blogue sur les r&#xE9;seaux sociaux et &#xE0; l&#x2019;ajouter &#xE0; votre lecteur RSS (si vous avez encore &#xE7;a?) histoire de ne pas manquer une publication! Il y a m&#xEA;me des options payantes au cas o&#xF9; vous voudriez supporter le blogue, pour le moment &#xE7;a ne sert &#xE0; rien, mais il n&#x2019;est pas exclu qu&#x2019;il y aura quelque chose en retour! Dans tous les cas, tous les billets de blogue seront gratuits.</p><p>&#xC9;galement li&#xE9; &#xE0; ce site existe une communaut&#xE9; sur Discord afin de parler d&apos;un peu de tout et n&apos;importe quoi, sugg&#xE9;rer des id&#xE9;es pour le blogue, et parler de ce qui vous passionne. Le lien est dans le menu du haut, j&apos;esp&#xE8;re vous y voir!</p><p>En conclusion, j&#x2019;esp&#xE8;re que vous aimerez. &#xC0; bient&#xF4;t!</p>]]></content:encoded></item></channel></rss>