<?xml
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://edualc.be/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	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"
>

<channel xml:lang="fr">
	<title>Edualc's Blog</title>
	<link>https://edualc.be/</link>
	<description></description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="http://edualc.be/spip.php?id_auteur=1&amp;page=backend" rel="self" type="application/rss+xml" />



	

	



<item xml:lang="fr">
		<title>Installation PyCharm</title>
		<link>http://edualc.be/spip.php?article51</link>
		<guid isPermaLink="true">http://edualc.be/spip.php?article51</guid>
		<dc:date>2026-04-15T19:46:40Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>edualc</dc:creator>







		<description>
&lt;p&gt;PyCharm
&lt;br class='autobr' /&gt;
Le seul IDE Python dont vous avez besoin &lt;br class='autobr' /&gt;
Built for web, data, and AI/ML professionals. Supercharged with an AI-enhanced IDE experience.
&lt;br class='autobr' /&gt;
PyCharm est d&#233;sormais un produit unifi&#233; ! &lt;br class='autobr' /&gt;
Tous les utilisateurs b&#233;n&#233;ficient d&#233;sormais automatiquement d'un essai gratuit d'un mois de la version Pro. Apr&#232;s cela, vous pouvez prendre un abonnement ou continuer &#224; utiliser les fonctionnalit&#233;s essentielles gratuitement (incluant d&#233;sormais la prise en charge de Jupyter). &lt;br class='autobr' /&gt;
Les utilisateurs de (&#8230;)&lt;/p&gt;


-
&lt;a href="http://edualc.be/spip.php?rubrique10" rel="directory"&gt;Python&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;a href=&#034;https://www.jetbrains.com/fr-fr/pycharm/download/?section=mac&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;PyCharm&lt;/a&gt;&lt;br class='autobr' /&gt;
Le seul IDE Python dont vous avez besoin&lt;/p&gt;
&lt;p&gt;Built for web, data, and AI/ML professionals. Supercharged with an AI-enhanced IDE experience.&lt;br class='autobr' /&gt;
PyCharm est d&#233;sormais un produit unifi&#233; !&lt;/p&gt;
&lt;p&gt;Tous les utilisateurs b&#233;n&#233;ficient d&#233;sormais automatiquement d'un essai gratuit d'un mois de la version Pro. Apr&#232;s cela, vous pouvez prendre un abonnement ou continuer &#224; utiliser les fonctionnalit&#233;s essentielles gratuitement (incluant d&#233;sormais la prise en charge de Jupyter).&lt;/p&gt;
&lt;p&gt;Les utilisateurs de PyCharm Professional ne sont pas concern&#233;s ; ils continueront de profiter d'un acc&#232;s complet &#224; toutes les fonctionnalit&#233;s Pro dans le produit unifi&#233;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://blog.jetbrains.com/pycharm/2025/04/unified-pycharm/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;En savoir plus&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Installation Python</title>
		<link>http://edualc.be/spip.php?article50</link>
		<guid isPermaLink="true">http://edualc.be/spip.php?article50</guid>
		<dc:date>2026-04-15T19:38:53Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>edualc</dc:creator>







		<description>
&lt;p&gt;https://www.python.org/ &lt;br class='autobr' /&gt;
https://www.python.org/downloads/ &lt;br class='autobr' /&gt;
This package will install Python 3.14.4 for macOS 10.15 or later. &lt;br class='autobr' /&gt;
Python for macOS consists of the Python programming language interpreter and its batteries-included standard library to allow easy access to macOS features. It also includes the Python integrated development environment, IDLE. You can also use the included pip to download and install third-party packages from the Python Package Index. &lt;br class='autobr' /&gt;
At the end of this (&#8230;)&lt;/p&gt;


-
&lt;a href="http://edualc.be/spip.php?rubrique10" rel="directory"&gt;Python&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;a href=&#034;https://www.python.org/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;https://www.python.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://www.python.org/downloads/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;https://www.python.org/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This package will install Python 3.14.4 for macOS 10.15 or later.&lt;/p&gt;
&lt;p&gt;Python for macOS consists of the Python programming language interpreter and its batteries-included standard library to allow easy access to macOS features. It also includes the Python integrated development environment, IDLE. You can also use the included pip to download and install third-party packages from the Python Package Index.&lt;/p&gt;
&lt;p&gt;At the end of this install, click on Install Certificates to install a set of current SSL root certificates.&lt;/p&gt;
&lt;p&gt;This package will install Python 3.14.4 for macOS 10.15 or later for the following architecture(s) : arm64, x86_64.&lt;/p&gt;
&lt;p&gt;Certificate verification and OpenSSL&lt;/p&gt;
&lt;p&gt;This package includes its own private copy of OpenSSL 3.0. The trust certificates in system and user keychains managed by the Keychain Access application and the security command line utility are not used as defaults by the Python ssl module. A sample command script is included in /Applications/Python 3.14 to install a curated bundle of default root certificates from the third-party certifi package (&lt;a href=&#034;https://pypi.org/project/certifi/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;https://pypi.org/project/certifi/&lt;/a&gt;). Double-click on Install Certificates to run it.&lt;/p&gt;
&lt;p&gt;The bundled pip has its own default certificate store for verifying download connections.&lt;br class='autobr' /&gt;
Install Options&lt;/p&gt;
&lt;p&gt;You can control some aspects of what is installed by this package. To see the options, click on the Customize button in the Installation Type step of the macOS installer app. Click on a package name in the list shown to see more information about that option.&lt;/p&gt;
&lt;p&gt;Free-threading support&lt;/p&gt;
&lt;p&gt;This installer package can optionally install an additional build of Python 3.14 that supports the free-threading feature (running with the global interpreter lock disabled).&lt;/p&gt;
&lt;p&gt;See the &lt;a href=&#034;https://docs.python.org/3.14/using/mac.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;macOS section of the Python Setup and Usage document&lt;/a&gt;, the release notice, and the &lt;a href=&#034;https://docs.python.org/3.14/whatsnew/3.14.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;3.14 What's New document&lt;/a&gt; for more information.&lt;br class='autobr' /&gt;
Just-in-time compiler support&lt;/p&gt;
&lt;p&gt;This installer package includes support for the experimental just-in-time (JIT) compiler feature. See the &lt;a href=&#034;https://docs.python.org/dev/whatsnew/3.14.html#binary-releases-for-the-experimental-just-in-time-compiler&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;3.14 What's New document&lt;/a&gt; and the release notice for more information. Note that the just-in-time compiler is not available with the optional free-threading build.&lt;/p&gt;
&lt;p&gt;Using IDLE or other Tk applications&lt;/p&gt;
&lt;p&gt;This package includes its own private version of Tcl/Tk 8.6. It does not use any system-supplied or third-party supplied versions of Tcl/Tk.&lt;/p&gt;
&lt;p&gt;Due to security checks introduced with macOS 10.15 Catalina, when launching IDLE, macOS may open a window with a message &#034;Python&#034; would like to access files in your Documents folder. This is normal as IDLE uses your Documents folder as its default when opening and saving files ; you can still choose other locations in the Open and Save file dialog windows. Click on the OK button to proceed.&lt;/p&gt;
&lt;p&gt;Apple Silicon Mac support&lt;/p&gt;
&lt;p&gt;On Apple Silicon Macs, it is possible to run Python either with native ARM64 code or under Intel 64 emulation using Rosetta 2. This option might be useful for testing or if binary wheels are not yet available with native ARM64 binaries. To easily force Python to run in emulation mode, invoke it from a command line shell with the python3-intel64 command instead of just python3.&lt;/p&gt;
&lt;p&gt;Other changes&lt;/p&gt;
&lt;p&gt;For other changes in this release, see the What's new section in the Documentation Set for this release and its Release Notes link at &lt;a href=&#034;https://www.python.org/downloads/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;https://www.python.org/downloads/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One more thing : to verify the identity of secure network connections, this Python needs a set of SSL root certificates. You can download and install a current curated set from &lt;a href=&#034;https://pypi.org/project/certifi/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;the Certifi project&lt;/a&gt; by double-clicking on the Install Certificates icon in the &lt;a href=&#034;file://localhost/Applications/Python%203.14/&#034; class=&#034;spip_out&#034;&gt;Finder window.&lt;/a&gt; See &lt;a href=&#034;file://localhost/Applications/Python%203.14/ReadMe.rtf&#034; class=&#034;spip_out&#034;&gt;the ReadMe file&lt;/a&gt; for more information.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>DeepSeek vs. ChatGPT : Comment se comparent-ils ?</title>
		<link>http://edualc.be/spip.php?article49</link>
		<guid isPermaLink="true">http://edualc.be/spip.php?article49</guid>
		<dc:date>2026-04-12T18:41:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>edualc</dc:creator>







		<description>
&lt;p&gt;https://www.datacamp.com/fr/blog/deepseek-vs-chatgpt&lt;/p&gt;


-
&lt;a href="http://edualc.be/spip.php?rubrique5" rel="directory"&gt;D&#233;veloppement&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;a href=&#034;https://www.datacamp.com/fr/blog/deepseek-vs-chatgpt&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;https://www.datacamp.com/fr/blog/deepseek-vs-chatgpt&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Adresses</title>
		<link>http://edualc.be/spip.php?article43</link>
		<guid isPermaLink="true">http://edualc.be/spip.php?article43</guid>
		<dc:date>2026-04-11T23:09:21Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>edualc</dc:creator>







		<description>
&lt;p&gt;TypeScript-un-passage-oblige&lt;/p&gt;


-
&lt;a href="http://edualc.be/spip.php?rubrique13" rel="directory"&gt;JavaScript - TypeScript &lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;a href=&#034;https://infodocbib.net/2023/01/typescript-un-passage-oblige/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;TypeScript-un-passage-oblige&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Comment ex&#233;cuter un programme python sur un serveur apache</title>
		<link>http://edualc.be/spip.php?article44</link>
		<guid isPermaLink="true">http://edualc.be/spip.php?article44</guid>
		<dc:date>2026-04-11T17:21:03Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>edualc</dc:creator>







		<description>
&lt;p&gt;Configurer Apache pour Python se fait principalement via mod_wsgi ou https://pypi.org/project/mod-wsgi/pour les applications web (Flask/Django) ou CGI pour des scripts simples. Sur Ubuntu, installez le module avec sudo apt install libapache2-mod-wsgi-py3, configurez le VirtualHost avec WSGIScriptAlias, puis red&#233;marrez &lt;br class='autobr' /&gt;
10 avr.at 15:17 &lt;br class='autobr' /&gt;
comment ex&#233;cuter un programme python sur un serveur apache &lt;br class='autobr' /&gt;
C'est une question de discussion, pas une demande d'impl&#233;mentation. &lt;br class='autobr' /&gt;
Pour ex&#233;cuter un (&#8230;)&lt;/p&gt;


-
&lt;a href="http://edualc.be/spip.php?rubrique10" rel="directory"&gt;Python&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Configurer Apache pour Python se fait principalement via &lt;a href=&#034;https://modwsgi.readthedocs.io/en/master/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;mod_wsgi&lt;/a&gt; ou &lt;a href=&#034;https://pypi.org/project/mod-wsgi/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;https://pypi.org/project/mod-wsgi/&lt;/a&gt;pour les applications web (Flask/Django) ou CGI pour des scripts simples. Sur Ubuntu, installez le module avec sudo apt install libapache2-mod-wsgi-py3, configurez le VirtualHost avec WSGIScriptAlias, puis red&#233;marrez&lt;/p&gt;
&lt;p&gt;10 avr.at 15:17&lt;/p&gt;
&lt;p&gt;comment ex&#233;cuter un programme python sur un serveur apache&lt;/p&gt;
&lt;p&gt;C'est une question de discussion, pas une demande d'impl&#233;mentation.&lt;/p&gt;
&lt;p&gt;Pour ex&#233;cuter un programme Python sur un serveur Apache, il y a principalement 3 approches :&lt;br class='autobr' /&gt;
1. mod_wsgi (recommand&#233; pour les apps web)&lt;/p&gt;
&lt;p&gt;# Installation&lt;br class='autobr' /&gt;
sudo apt install libapache2-mod-wsgi-py3&lt;/p&gt;
&lt;p&gt;# Config Apache (VirtualHost)&lt;br class='autobr' /&gt;
WSGIScriptAlias / /var/www/myapp/app.wsgi&lt;br class='autobr' /&gt;
&lt;Directory /var/www/myapp&gt;&lt;br class='autobr' /&gt; Require all granted&lt;br class='autobr' /&gt;
&lt;/Directory&gt;&lt;/p&gt;
&lt;p&gt;Fichier app.wsgi :&lt;/p&gt;
&lt;p&gt;from myapp import app as application&lt;/p&gt;
&lt;p&gt;2. CGI (simple mais lent)&lt;/p&gt;
&lt;p&gt;ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/&lt;/p&gt;
&lt;p&gt;Script Python dans /usr/lib/cgi-bin/script.py :&lt;/p&gt;
&lt;p&gt;# !/usr/bin/env python3&lt;br class='autobr' /&gt;
print(&#034;Content-Type : text/html\n&#034;)&lt;br class='autobr' /&gt;
print(&#034;&lt;/p&gt;
&lt;h1&gt;Hello&lt;/h1&gt;
&lt;p&gt;&#034;)&lt;/p&gt;
&lt;p&gt;Puis chmod +x script.py.&lt;br class='autobr' /&gt;
3. Reverse Proxy (moderne, recommand&#233;)&lt;/p&gt;
&lt;p&gt;Lancer votre app Python (Flask/FastAPI) sur un port, puis configurer Apache en proxy :&lt;/p&gt;
&lt;p&gt;ProxyPass / &lt;a href=&#034;http://localhost:8000/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://localhost:8000/&lt;/a&gt;&lt;br class='autobr' /&gt;
ProxyPassReverse / &lt;a href=&#034;http://localhost:8000/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://localhost:8000/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;mod_wsgi est le plus int&#233;gr&#233;, mais le reverse proxy avec Gunicorn/Uvicorn est l'approche moderne la plus courante.&lt;/p&gt;
&lt;p&gt; &#9888;&#65039; Note : Ce projet Lovable est une app React c&#244;t&#233; client &#8212; il ne peut pas h&#233;berger de backend Python. Si vous avez besoin d'ex&#233;cuter du code serveur dans Lovable, utilisez Lovable Cloud (bas&#233; sur des Edge Functions TypeScript).&lt;/p&gt;
&lt;p&gt;C'est une question de discussion, pas une demande d'impl&#233;mentation.&lt;/p&gt;
&lt;p&gt;Pour ex&#233;cuter un programme Python sur un serveur Apache, il y a principalement 3 approches :&lt;br class='autobr' /&gt;
1. mod_wsgi (recommand&#233; pour les apps web)&lt;/p&gt;
&lt;p&gt;# Installation&lt;br class='autobr' /&gt;
sudo apt install libapache2-mod-wsgi-py3&lt;/p&gt;
&lt;p&gt;# Config Apache (VirtualHost)&lt;br class='autobr' /&gt;
WSGIScriptAlias / /var/www/myapp/app.wsgi&lt;br class='autobr' /&gt;
&lt;Directory /var/www/myapp&gt;&lt;br class='autobr' /&gt; Require all granted&lt;br class='autobr' /&gt;
&lt;/Directory&gt;&lt;/p&gt;
&lt;p&gt;Fichier app.wsgi :&lt;/p&gt;
&lt;p&gt;from myapp import app as application&lt;/p&gt;
&lt;p&gt;2. CGI (simple mais lent)&lt;/p&gt;
&lt;p&gt;ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/&lt;/p&gt;
&lt;p&gt;Script Python dans /usr/lib/cgi-bin/script.py :&lt;/p&gt;
&lt;p&gt;# !/usr/bin/env python3&lt;br class='autobr' /&gt;
print(&#034;Content-Type : text/html\n&#034;)&lt;br class='autobr' /&gt;
print(&#034;&lt;/p&gt;
&lt;h1&gt;Hello&lt;/h1&gt;
&lt;p&gt;&#034;)&lt;/p&gt;
&lt;p&gt;Puis chmod +x script.py.&lt;br class='autobr' /&gt;
3. Reverse Proxy (moderne, recommand&#233;)&lt;/p&gt;
&lt;p&gt;Lancer votre app Python (Flask/FastAPI) sur un port, puis configurer Apache en proxy :&lt;/p&gt;
&lt;p&gt;ProxyPass / &lt;a href=&#034;http://localhost:8000/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://localhost:8000/&lt;/a&gt;&lt;br class='autobr' /&gt;
ProxyPassReverse / &lt;a href=&#034;http://localhost:8000/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://localhost:8000/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;mod_wsgi est le plus int&#233;gr&#233;, mais le reverse proxy avec Gunicorn/Uvicorn est l'approche moderne la plus courante.&lt;/p&gt;
&lt;p&gt; &#9888;&#65039; Note : Ce projet Lovable est une app React c&#244;t&#233; client &#8212; il ne peut pas h&#233;berger de backend Python. Si vous avez besoin d'ex&#233;cuter du code serveur dans Lovable, utilisez Lovable Cloud (bas&#233; sur des Edge Functions TypeScript).&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Racourcis typographiques</title>
		<link>http://edualc.be/spip.php?article42</link>
		<guid isPermaLink="true">http://edualc.be/spip.php?article42</guid>
		<dc:date>2026-04-09T18:11:20Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>edualc</dc:creator>







		<description>
&lt;p&gt;racourcis typographiques&lt;/p&gt;


-
&lt;a href="http://edualc.be/spip.php?rubrique5" rel="directory"&gt;D&#233;veloppement&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;a href=&#034;https://edualc.be/ecrire/?exec=article_edit&amp;id_article=41#aide-raccourcis-code&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;racourcis typographiques&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Installer un serveur node.js</title>
		<link>http://edualc.be/spip.php?article41</link>
		<guid isPermaLink="true">http://edualc.be/spip.php?article41</guid>
		<dc:date>2026-04-09T08:52:57Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>edualc</dc:creator>







		<description>
&lt;p&gt;Node.js node.js &lt;br class='autobr' /&gt;
Node.js est une plate-forme de d&#233;veloppement serveur en JavaScript. Node.js propose une programmation &#233;v&#232;nementielle non bloquante, ce qui permet de cr&#233;er des applications temps-r&#233;el, tout en mutualisant le code JS entre client et serveur. &lt;br class='autobr' /&gt;
L'architecture de la plateforme est compos&#233;e de : l'API Node qui est un ensemble de modules pr&#234;ts &#224; l'emploi : client et serveur HTTP, acc&#232;s au syst&#232;me de fichiers, gestion des chemins sur l'OS, etc. Ces modules sont bas&#233;s sur l'API (&#8230;)&lt;/p&gt;


-
&lt;a href="http://edualc.be/spip.php?rubrique12" rel="directory"&gt; Serveur node.js&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Node.js &lt;/h2&gt;
&lt;p&gt;&lt;a href=&#034;https://web.iamvdo.me/js/nodejs&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;node.js&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Node.js est une plate-forme de d&#233;veloppement serveur en JavaScript. Node.js propose une programmation &#233;v&#232;nementielle non bloquante, ce qui permet de cr&#233;er des applications temps-r&#233;el, tout en mutualisant le code JS entre client et serveur.&lt;/p&gt;
&lt;p&gt;L'architecture de la plateforme est compos&#233;e de :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; l'API Node qui est un ensemble de modules pr&#234;ts &#224; l'emploi : client et serveur HTTP, acc&#232;s au syst&#232;me de fichiers, gestion des chemins sur l'OS, etc. Ces modules sont bas&#233;s sur l'API CommonJS, afin de rendre le code d'un module interop&#233;rable sur diff&#233;rentes plateformes (navigateur, serveur, etc.). Il est bien entendu possible de cr&#233;er ses propres modules CommonJS.&lt;/li&gt;&lt;li&gt; la machine virtuelle V8 qui est un compilateur JavaScript (celui de Chrome)&lt;/li&gt;&lt;li&gt; l'interpr&#233;teur Node qui permet d'ex&#233;cuter le tout&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Voici un exemple simpliste de serveur HTTP, qui retourne toujours le contenu du fichier index.html situ&#233; &#224; la racine du projet, et ce, peu importe la requ&#234;te de l'utilisateur&lt;/p&gt;
&lt;p&gt;let fs = require('fs') ;&lt;br class='autobr' /&gt;
let http = require('http').createServer((req, res) =&gt; &lt;i&gt;&lt;br class='autobr' /&gt; fs.readFile(__dirname + '/index.html', (err, data) =&gt; &lt;i&gt;&lt;br class='autobr' /&gt; if (err) &lt;i&gt;&lt;br class='autobr' /&gt; res.writeHead(500) ;&lt;br class='autobr' /&gt; return res.end('Error loading index.html') ;&lt;br class='autobr' /&gt; &lt;/i&gt;&lt;br class='autobr' /&gt; res.writeHead(200) ;&lt;br class='autobr' /&gt; res.end(data) ;&lt;br class='autobr' /&gt; &lt;/i&gt;) ;&lt;br class='autobr' /&gt;
&lt;/i&gt;).listen(80) ;&lt;/p&gt;
&lt;p&gt;$ node nom_du_fichier&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;npm&lt;/h2&gt;
&lt;p&gt;npm est le gestionnaire phare de modules Node. Il est souvent install&#233; par d&#233;faut lors de l'installation de Node. Voici quelques commandes :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;strong&gt;npm init&lt;/strong&gt; cr&#233;e un nouveau package.json&lt;/li&gt;&lt;li&gt; &lt;strong&gt;npm (i)nstall&lt;/strong&gt; [&lt;package&gt;] installe le package demand&#233; ou tous les packages list&#233;s dans package.json (dependencies et devDependencies)&lt;/li&gt;&lt;li&gt; &lt;strong&gt;npm (up)date&lt;/strong&gt; [&lt;package&gt;] mets &#224; jour&lt;/li&gt;&lt;li&gt; &lt;strong&gt;npm star&lt;/strong&gt;t ex&#233;cute le script start&lt;/li&gt;&lt;li&gt; &lt;strong&gt;npm run&lt;/strong&gt;(-script)
&lt;script&gt; ex&#233;cute le script demand&#233;&lt;/li&gt;&lt;li&gt; &lt;strong&gt;npm adduser&lt;/strong&gt; cr&#233;e un nouvel utilisateur&lt;/li&gt;&lt;li&gt; &lt;strong&gt;npm publish&lt;/strong&gt; publie un nouveau module&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Il existe &#233;galement d'autres gestionnaires, comme yarn (Facebook) ou pnpm (performant npm, haha).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Mon node.js&lt;/h2&gt;
&lt;p&gt;Last login : Fri Apr 10 11:14:24 on console&lt;br class='autobr' /&gt;
You have mail.&lt;br class='autobr' /&gt;
MacOsXs-MBP : macosx$ node&lt;br class='autobr' /&gt;
Welcome to Node.js v17.9.1.&lt;br class='autobr' /&gt;
Type &#034;.help&#034; for more information.&lt;br class='autobr' /&gt;
&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>D&#233;couvrez EmDash, le successeur spirituel de WordPress</title>
		<link>http://edualc.be/spip.php?article40</link>
		<guid isPermaLink="true">http://edualc.be/spip.php?article40</guid>
		<dc:date>2026-04-08T20:31:41Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>edualc</dc:creator>







		<description>
&lt;p&gt;Notre nouveau CMS s'appelle EmDash. Nous le consid&#233;rons comme le successeur spirituel de WordPress. Il est enti&#232;rement &#233;crit en TypeScript. Il est sans serveur, mais vous pouvez l'ex&#233;cuter sur votre propre mat&#233;riel ou sur la plateforme de votre choix. &lt;br class='autobr' /&gt;
Les plugins sont ex&#233;cut&#233;s dans un environnement isol&#233; et s&#233;curis&#233; gr&#226;ce aux Dynamic Workers, ce qui r&#233;sout le probl&#232;me de s&#233;curit&#233; fondamental de l'architecture des plugins WordPress. De plus, EmDash utilise Astro, le framework web le plus (&#8230;)&lt;/p&gt;


-
&lt;a href="http://edualc.be/spip.php?rubrique11" rel="directory"&gt;EmDash&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Notre nouveau CMS s'appelle EmDash. Nous le consid&#233;rons comme le successeur spirituel de WordPress. Il est enti&#232;rement &#233;crit en TypeScript. Il est sans serveur, mais vous pouvez l'ex&#233;cuter sur votre propre mat&#233;riel ou sur la plateforme de votre choix.&lt;/p&gt;
&lt;p&gt;Les plugins sont ex&#233;cut&#233;s dans un &lt;a href=&#034;https://developers.cloudflare.com/workers/reference/how-workers-works/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;environnement isol&#233; et s&#233;curis&#233;&lt;/a&gt; gr&#226;ce aux &lt;a href=&#034;https://developers.cloudflare.com/workers/runtime-apis/bindings/worker-loader/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Dynamic Workers&lt;/a&gt;, ce qui r&#233;sout le probl&#232;me de s&#233;curit&#233; fondamental de l'architecture des plugins WordPress. De plus, EmDash utilise &lt;a href=&#034;https://astro.build/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Astro&lt;/a&gt;, le framework web le plus rapide pour les sites web ax&#233;s sur le contenu.&lt;/p&gt;
&lt;p&gt;EmDash est un logiciel libre, sous licence MIT, disponible sur &lt;a href=&#034;https://github.com/emdash-cms/emdash&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;GitHub&lt;/a&gt;. Bien qu'EmDash vise la compatibilit&#233; avec les fonctionnalit&#233;s de WordPress, aucun code WordPress n'a &#233;t&#233; utilis&#233; pour sa cr&#233;ation. Cela nous permet de le distribuer sous la licence MIT, plus permissive. Nous esp&#233;rons ainsi encourager davantage de d&#233;veloppeurs &#224; adapter, &#233;tendre et contribuer au d&#233;veloppement d'EmDash.&lt;/p&gt;
&lt;p&gt;Vous pouvez d&#233;ployer d&#232;s aujourd'hui la pr&#233;version d'EmDash v0.1.0 sur votre compte Cloudflare ou sur n'importe quel serveur Node.js dans le cadre de notre b&#234;ta d&#233;veloppeur.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://www.cloudflare.com/developer-platform/products/workers/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;https://www.cloudflare.com/developer-platform/products/workers/&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Introduction : CloudFlare veut remplacer WordPress</title>
		<link>http://edualc.be/spip.php?article39</link>
		<guid isPermaLink="true">http://edualc.be/spip.php?article39</guid>
		<dc:date>2026-04-08T15:34:44Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>edualc</dc:creator>







		<description>
&lt;p&gt;Programmez &lt;br class='autobr' /&gt;
WordPress fait tourner 40 % du web, mais son architecture est aujourd'hui aux limites des possibilit&#233;s dixit Cloudlfare. Aujourd'hui, 96 % des vuln&#233;rabilit&#233;s de s&#233;curit&#233; de WordPress proviennent des plugins. EmDash a &#233;t&#233; con&#231;u pour remplacer le mod&#232;le historique de WordPress par une stack moderne, s&#233;curis&#233;e et AI native. L'&#233;diteur annonce EmDash qui se veut le successeur &#224; Wordpress mais mieux s&#233;curis&#233; et plus moderne. &lt;br class='autobr' /&gt;
L&#224; encore, les agents IA sont intervenus pour b&#226;tir un CMS (&#8230;)&lt;/p&gt;


-
&lt;a href="http://edualc.be/spip.php?rubrique11" rel="directory"&gt;EmDash&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;a href=&#034;https://www.programmez.com/node/39275&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Programmez&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;WordPress fait tourner 40 % du web, mais son architecture est aujourd'hui aux limites des possibilit&#233;s dixit Cloudlfare. Aujourd'hui, 96 % des vuln&#233;rabilit&#233;s de s&#233;curit&#233; de WordPress proviennent des plugins. EmDash a &#233;t&#233; con&#231;u pour remplacer le mod&#232;le historique de WordPress par une stack moderne, s&#233;curis&#233;e et AI native. L'&#233;diteur annonce EmDash qui se veut le successeur &#224; Wordpress mais mieux s&#233;curis&#233; et plus moderne.&lt;/p&gt;
&lt;p&gt;L&#224; encore, les agents IA sont intervenus pour b&#226;tir un CMS de 0. Il aura fallu 2 mois de travail pour reconstruire Wordpress, dans les premi&#232;res builds. Il est &#233;crit en &lt;a href=&#034;https://www.typescriptlang.org/fr/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;TypeScript&lt;/a&gt;. Il est serverless mais il peut s'ex&#233;cuter sur votre hardware ou toute autre plateforme. Les plugins tournent dans des sandbox pour garantir la s&#233;curit&#233;. Ils s'ex&#233;cutent sur &lt;a href=&#034;https://developers.cloudflare.com/dynamic-workers/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Dynamic Workers&lt;/a&gt; de Cloudflare. Derri&#232;re EmDash, nous trouvons &lt;a href=&#034;https://astro.build/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Astro&lt;/a&gt;, un framework web orient&#233; contenu web. Le CMS est open source, sous licence MIT. L'&#233;diteur annonce une compatibilit&#233; avec WordPress.&lt;/p&gt;
&lt;p&gt;Pour le moment, le projet est &#224; peine lanc&#233; en version 0.1.0.&lt;/p&gt;
&lt;p&gt;Parmi ses principales fonctionnalit&#233;s :&lt;/p&gt;
&lt;p&gt; S&#233;curit&#233; cloisonn&#233;e : contrairement aux plugins WordPress, les plugins EmDash s'ex&#233;cutent dans des environnements isol&#233;s via des Dynamic Workers sandbox&#233;s. Ils ne peuvent effectuer que les actions explicitement autoris&#233;es lors de l'installation, ce qui r&#233;sout de fait la crise de s&#233;curit&#233; des plugins.&lt;br class='autobr' /&gt; Con&#231;u pour l'&#232;re de l'IA : EmDash int&#232;gre un serveur &lt;a href=&#034;https://modelcontextprotocol.io/docs/getting-started/intro&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Model Context Protocol&lt;/a&gt;(MCP) natif ainsi que des &lt;a href=&#034;https://agentskills.io/home&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Agent Skills&lt;/a&gt;, permettant aux agents IA de g&#233;rer du contenu, migrer des bases de donn&#233;es et &#233;crire du code de mani&#232;re programmatique.&lt;br class='autobr' /&gt; Mon&#233;tisation native : la plateforme inclut nativement la prise en charge du x402 (Payment Required), permettant aux cr&#233;ateurs de facturer aux agents IA l'acc&#232;s &#224; leur contenu &#224; la demande.&lt;br class='autobr' /&gt; Scale-to-zero : EmDash offre des gains de performance massifs et r&#233;duit fortement les co&#251;ts d'h&#233;bergement gr&#226;ce &#224; une mise &#224; l'&#233;chelle jusqu'&#224; z&#233;ro en p&#233;riode d'inactivit&#233;.&lt;/p&gt;
&lt;p&gt;L'approche serverless est int&#233;ressante car WordPress exige une installation, une administration et un serveur ou une instance. EmDash doit, th&#233;oriquement, monter en charge bien plus facilement et proprement.&lt;/p&gt;
&lt;p&gt;C&#244;t&#233; front, nous trouvons :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Pages : les pages sont g&#233;n&#233;r&#233;es par Astro&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Layout : structure HTML&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Composants : pour composer l'UI de son site&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Styles : CSS ou Tailwind&lt;/p&gt;
&lt;p&gt;Le CMS supporte les agents, propose une CLI et un serveur MCP par d&#233;faut. Un outil de migration des sites WordPress est disponible. A voir la qualit&#233; de l'importation.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://blog.cloudflare.com/emdash-wordpress/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Annonce&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#034;https://github.com/emdash-cms/emdash/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;GitHub&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Ecriture avec LaTex</title>
		<link>http://edualc.be/spip.php?article36</link>
		<guid isPermaLink="true">http://edualc.be/spip.php?article36</guid>
		<dc:date>2026-04-02T16:38:43Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>edualc</dc:creator>







		<description>
&lt;p&gt;Si on note $ dm $ la masse du tron&#231;on et $ \ddoty $ son acc&#233;l&#233;ration alors le principe de la dynamique nous donne une premi&#232;re relation : &lt;br class='autobr' /&gt;
$ d\vecF = dm \ddot\vecy $ &lt;br class='autobr' /&gt;
$ t=\fracdV_A+V_B=\frac7080+60=\frac70140=0,5\ h=30\ minutes&#8594;12h\ 30\ min $ &lt;br class='autobr' /&gt;
En ligne (dans une phrase) : $ E=mc^2 $ &lt;br class='autobr' /&gt;
Hors ligne (centr&#233;) : $ [\frac1+\sqrt52] $
&lt;br class='autobr' /&gt;
.
&lt;br class='autobr' /&gt;
Indices et exposants : $ x_i^2 $
&lt;br class='autobr' /&gt;
.
&lt;br class='autobr' /&gt;
Fractions : $ \fracab $
&lt;br class='autobr' /&gt;
.
&lt;br class='autobr' /&gt;
Racines : $ \sqrtx $
&lt;br class='autobr' /&gt;
$ \sqrt[n]x $
&lt;br class='autobr' /&gt;
. &lt;br class='autobr' /&gt;
Exemples de formules courantes &lt;br class='autobr' /&gt;
Somme : $ \sum_i=1^n (&#8230;)&lt;/p&gt;


-
&lt;a href="http://edualc.be/spip.php?rubrique1" rel="directory"&gt;Math&#233;matiques&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Si on note &lt;span class=&#034;spip-math&#034;&gt;$ dm $&lt;/span&gt; la masse du tron&#231;on et &lt;span class=&#034;spip-math&#034;&gt;$ \ddot{y} $&lt;/span&gt; son acc&#233;l&#233;ration alors le principe de la dynamique nous donne une premi&#232;re relation :&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-math&#034;&gt;$ d\vec{F} = dm \ddot{\vec{y}} $&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-math&#034;&gt;$ t=\frac{d}{V_{A}+V_{B}}=\frac{70}{80+60}=\frac{70}{140}=0,5\ h=30\ minutes&#8594;12h\ 30\ min $&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;En ligne (dans une phrase) : &lt;span class=&#034;spip-math&#034;&gt;$ E=mc^2 $&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Hors ligne (centr&#233;) : &lt;span class=&#034;spip-math&#034;&gt;$ [\frac{1+\sqrt{5}}{2}] $&lt;/span&gt;&lt;br class='autobr' /&gt;
.&lt;br class='autobr' /&gt;
Indices et exposants : &lt;span class=&#034;spip-math&#034;&gt;$ x_i^2 $&lt;/span&gt;&lt;br class='autobr' /&gt;
.&lt;br class='autobr' /&gt;
Fractions : &lt;span class=&#034;spip-math&#034;&gt;$ \frac{a}{b} $&lt;/span&gt;&lt;br class='autobr' /&gt;
.&lt;br class='autobr' /&gt;
Racines : &lt;span class=&#034;spip-math&#034;&gt;$ \sqrt{x} $&lt;/span&gt;&lt;br class='autobr' /&gt;
&lt;span class=&#034;spip-math&#034;&gt;$ \sqrt[n]{x} $&lt;/span&gt;&lt;br class='autobr' /&gt;
. &lt;br class='autobr' /&gt;
Exemples de formules courantes&lt;/p&gt;
&lt;p&gt;Somme : &lt;span class=&#034;spip-math&#034;&gt;$ \sum_{i=1}^{n} i = \frac{n(n+1)}{2} $&lt;/span&gt; &lt;br class='autobr' /&gt;
.&lt;br class='autobr' /&gt;
Int&#233;grale : &lt;span class=&#034;spip-math&#034;&gt;$ \int_{a}^{b} f(x) \,dx $&lt;/span&gt;&lt;br class='autobr' /&gt;
.&lt;br class='autobr' /&gt;
Limite : &lt;span class=&#034;spip-math&#034;&gt;$ \lim_{x \to \infty} f(x) $&lt;/span&gt;&lt;br class='autobr' /&gt;
.&lt;br class='autobr' /&gt;
Vecteurs : &lt;span class=&#034;spip-math&#034;&gt;$ \vec{AB} = \overrightarrow{AO} + \overrightarrow{OB} $&lt;/span&gt;&lt;br class='autobr' /&gt;
.&lt;br class='autobr' /&gt;
Lettres grecques : &lt;span class=&#034;spip-math&#034;&gt;$ \alpha, \beta, \gamma, \pi, \Delta $&lt;/span&gt;&lt;br class='autobr' /&gt;
. &lt;br class='autobr' /&gt;
Environnements avanc&#233;s&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-math&#034;&gt;$ a^2 + b^2 = c^2 $&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-math&#034;&gt;$ \underline{Matrices : N&#233;cessite amsmath} $&lt;/span&gt;, utilisez \begin&lt;i&gt;matrix&lt;/i&gt; ... \end&lt;i&gt;matrix&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Pour utiliser des symboles math&#233;matiques avanc&#233;s, il est recommand&#233; d'inclure \usepackage&lt;i&gt;amsmath,amsfonts,amssymb&lt;/i&gt; dans le pr&#233;ambule de votre document.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>