<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/assets/rss.xsl" type="text/xsl"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"

>
<channel>
	<title>Sacha Chua</title>
	<atom:link href="https://sachachua.com/blog/feed/index.xml" rel="self" type="application/rss+xml" />
	<atom:link href="https://sachachua.com" rel="alternate" type="text/html" />
	<link>https://sachachua.com/blog/feed/index.xml</link>
	<description>Emacs, sketches, and life</description>
  
	<lastBuildDate>Mon, 14 Sep 2026 14:09:11 GMT</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>daily</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>11ty</generator>
  <item>
		<title>2026-09-14 Emacs news</title>
		<link>https://sachachua.com/blog/2026/09/2026-09-14-emacs-news/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Mon, 14 Sep 2026 14:09:11 GMT</pubDate>
    <category>emacs</category>
<category>emacs-news</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/09/2026-09-14-emacs-news/</guid>
		<description><![CDATA[<div class="update" id="orgddde52c">
<p>
<span class="timestamp-wrapper"><time class="timestamp" datetime="2026-09-15">[2026-09-15 Tue]</time></span>: Fixed link to <a href="https://ooblick.com/2026/09/customizing-pasted-strings-in-emacs/">Customizing Pasted Strings in Emacs | Epsilon Clue</a>
</p>

</div>

<p>
Not much commentary this week, but plenty of cool stuff to explore!
</p>

<ul class="org-ul">
<li>Upcoming events (<a href="https://emacslife.com/calendar/emacs-calendar.ics">iCal file</a>, <a href="https://emacslife.com/calendar/">Org</a>):
<ul class="org-ul">
<li>Emacs Paris <a href="https://emacs-doctor.com/">https://emacs-doctor.com/</a> Tue Sep 15 0830 America/Vancouver - 1030 America/Chicago - 1130 America/Toronto - 1530 Etc/UTC - 1730 Europe/Berlin - 2100 Asia/Kolkata - 2330 Asia/Singapore</li>
<li>PDX Emacs (in person) <a href="https://pdx.social/@howard/117147689957341583">https://pdx.social/@howard/117147689957341583</a> - Tue Sept 15 6:00 pm in Portland, OR</li>
<li>M-x Research: TBA <a href="https://m-x-research.github.io/">https://m-x-research.github.io/</a> Wed Sep 16 0800 America/Vancouver - 1000 America/Chicago - 1100 America/Toronto - 1500 Etc/UTC - 1700 Europe/Berlin - 2030 Asia/Kolkata - 2300 Asia/Singapore</li>
<li>OrgDevMeetup <a href="https://bbb.emacsverse.org/rooms/orgdevmeetup">https://bbb.emacsverse.org/rooms/orgdevmeetup</a> Sat Sep 19 0100 America/Vancouver - 0300 America/Chicago - 0400 America/Toronto - 0800 Etc/UTC - 1000 Europe/Berlin - 1330 Asia/Kolkata - 1600 Asia/Singapore</li>
<li>EmacsSF (in person): coffee.el in SF <a href="https://www.meetup.com/emacs-sf/events/316535239/">https://www.meetup.com/emacs-sf/events/316535239/</a> Sat Sep 19 1100 America/Los_Angeles</li>
<li>Emacs APAC: Emacs APAC meetup (virtual) <a href="https://emacs-apac.gitlab.io/announcements/">https://emacs-apac.gitlab.io/announcements/</a> Sat Sep 26 0130 America/Vancouver - 0330 America/Chicago - 0430 America/Toronto - 0830 Etc/UTC - 1030 Europe/Berlin - 1400 Asia/Kolkata - 1630 Asia/Singapore</li>
</ul></li>
<li>Emacs configuration:
<ul class="org-ul">
<li><a href="https://www.alcarney.me/blog/2026/emacs-tip-of-the-day/">Emacs Tip of the Day — Alex Carney</a> (<a href="https://mastodon.social/@alcarney/117252363109100092">@alcarney</a>) - news entries on splash screen</li>
<li><a href="https://stefanorodighiero.net/blog/personalized-embark-actions.html">Personalized embark actions</a> (<a href="https://mastodon.social/@eslr/117268821165139636">@eslr</a>)</li>
<li><a href="https://www.youtube.com/watch?v=OSAYCVmJ12I">Emacs Meow Motions</a> (15:44)</li>
<li><a href="https://www.youtube.com/watch?v=5abGoq6Zi3I">Emacs Meow-mode</a> (01:40:58)</li>
</ul></li>
<li>Emacs Lisp:
<ul class="org-ul">
<li><a href="https://utcc.utoronto.ca/~cks/space/blog/programming/EmacsDebuggingStandardBits">Notes on debugging standard and third-party Emacs code</a> (<a href="https://utcc.utoronto.ca/~cks/space/blog/programming/EmacsDebuggingStandardBits">@chris_siebenmann@robot.villas</a>)</li>
<li><a href="https://paste.sr.ht/~zackw/945a7d8263b7d2e681d935042a686321a02322d9">musing about the difficulty of doing one-off scripted edits in emacs lisp — paste.sr.ht</a> (<a href="https://masto.hackers.town/@zwol/117241809283394751">@zwol@masto.hackers.town</a>)</li>
<li><a href="https://mastodon.xyz/@beetle_b/117247435226635160">TIL with-demoted-errors (@beetle_b@mastodon.xyz)</a></li>
</ul></li>
<li>Navigation:
<ul class="org-ul">
<li><a href="https://github.com/djr7C4/multi-buf">Announcing multi-buf: a generalized buffer multiplexer for shells and other buffers</a> (<a href="https://www.reddit.com/r/emacs/comments/1wc2d3v/announcing_multibuf_a_generalized_buffer/">Reddit</a>)</li>
<li><a href="https://github.com/MArpogaus/modern-tab">New Package: `modern-tab`</a> (<a href="https://www.reddit.com/r/emacs/comments/1w9nahs/new_package_moderntab/">Reddit</a>)</li>
</ul></li>
<li>Writing:
<ul class="org-ul">
<li><a href="https://irreal.org/blog/?p=14068">Irreal: Jinx Update Number …</a></li>
</ul></li>
<li>Org Mode:
<ul class="org-ul">
<li><a href="https://outputerror.com/posts/prepping-courses-with-org-mode/">Un-Learning the LMS: Prepping Courses with Org Mode - Output Error</a> (<a href="https://social.lol/@swrogers/117255362358214177">@swrogers@social.lol</a>)</li>
<li><a href="https://github.com/SenkiReign/org-grid">org-grid</a> (<a href="https://www.reddit.com/r/emacs/comments/1wcniwk/orggrid/">Reddit</a>)</li>
<li><a href="https://github.com/Gleek/org-timegrid/blob/main/ANDROID.org">org-timegrid now works on Android Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1wb79xd/orgtimegrid_now_works_on_android_emacs/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=fYVm9myTt5E">my dream setup (bonus: it’s free)</a> (18:33) - Org</li>
<li><a href="https://silentarchitect.org/articles/2026/09/whisper-engine-2-0.html">[New Release] Whisper Engine v2.0.0 - Org static site generator</a> (<a href="https://mastodon.social/@silentarchitect/117246845787011290">@silentarchitect</a>)</li>
<li><a href="https://github.com/pjones/org-clock-dbus">pjones/org-clock-dbus: Monitor org-clock from outside Emacs · GitHub</a> (<a href="https://hostux.social/@devalot/117268955061397864">@devalot@hostux.social</a>)</li>
<li><a href="https://list.orgmode.org/87o6e2khh0.fsf@localhost/T/#u">[notes] #33 bbb:OrgMeetup on Wed, August 12, 19:00 UTC+3</a> (<a href="https://fosstodon.org/@yantar92/117258721313848858">@yantar92@fosstodon.org</a>)</li>
</ul></li>
<li>Completion:
<ul class="org-ul">
<li><a href="https://www.jamescherti.com/emacs-consult-speed-async-searche-grep-ripgrep-fd-find/">Why Emacs Consult async searches feel slow and how to speed them up? (consult-fd, consult-find, consult-grep, consult-ripgrep&hellip;)</a> (<a href="https://www.reddit.com/r/emacs/comments/1wau1cz/why_emacs_consult_async_searches_feel_slow_and/">Reddit</a>, <a href="https://news.ycombinator.com/item?id=49629865#49634164">HN</a>, <a href="https://lobste.rs/s/ffvipw/why_emacs_consult_async_searches_feel">lobste.rs</a>)</li>
</ul></li>
<li>Coding:
<ul class="org-ul">
<li><a href="https://heiwiper.com/posts/magit-stage-and-commit/">Staging and Comitting using Magit</a> (<a href="https://www.youtube.com/watch?v=muVGcc8R39U">YouTube</a> 12:14, <a href="https://www.reddit.com/r/emacs/comments/1waijar/staging_and_comitting_using_magit/">Reddit</a>)</li>
<li><a href="https://emacs.dyerdwelling.family/emacs/20260907140012-emacs&#45;&#45;emacs-31-native-git-worktrees-vs-my-vc-setup/">James Dyer: Emacs 31 Does Git Worktrees Natively: How My vc Setup Compares</a></li>
<li><a href="https://github.com/benleis1/emacs-init/blob/83db0d7849e781d82263ed04d441ded9e591c907/init.el#L1439">Further progress configuring java + eglot + dape</a> (<a href="https://www.reddit.com/r/emacs/comments/1wfd2yv/further_progress_configuring_java_eglot_dape/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=T5yMmzwgN8Q">Eglot DAPE debugging setup for java (jdtls) in emacs</a> (05:39)</li>
<li><a href="https://codeberg.org/jjba23/maak.el">maak.el: Lisp machine command runner, infinitely extensible, integrating nicely with Emacs, for Lisp power on your projects and automation at your fingertips</a> (<a href="https://www.reddit.com/r/emacs/comments/1waj79o/maakel_lisp_machine_command_runner_infinitely/">Reddit</a>, <a href="https://news.ycombinator.com/item?id=49607858">HN</a>)</li>
<li><a href="https://lambdafoo.com/posts/2026-09-14-more-trees-more-neocaml.html">More tree-sitter, more neocaml, more elisp · Perpetually Curious</a> (<a href="https://hachyderm.io/@tsmc/117266592975661357">@tsmc@hachyderm.io</a>)</li>
<li><a href="https://metaredux.com/posts/2026/09/10/clojurists-together-update-july-august-2026.html">Meta Redux: Clojurists Together Update: July and August 2026</a></li>
<li><a href="https://codeberg.org/martianh/fj.el">martianh/fj.el 0.39 - performance boost</a> (<a href="https://todon.nl/@mousebot/117236054632187569">@mousebot@todon.nl</a>)</li>
</ul></li>
<li>Doom Emacs:
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=MV53Vkkewds">A Tour of Doom Emacs - Emacs Everywhere #1</a> (01:04:03)</li>
</ul></li>
<li>Multimedia:
<ul class="org-ul">
<li><a href="https://lars.ingebrigtsen.no/2026/09/14/emacs-movies-and-sqlite/">Lars Ingebrigtsen: Emacs, movies and SQLite</a></li>
<li><a href="https://youtu.be/Cs5T4rgbHtk">supersonic.el Music player v0.5.0 update</a> (<a href="https://www.youtube.com/watch?v=Cs5T4rgbHtk">YouTube</a> 00:37, <a href="https://www.reddit.com/r/emacs/comments/1wenqmh/supersonicel_music_player_v050_update/">Reddit</a>)</li>
</ul></li>
<li>Fun:
<ul class="org-ul">
<li><a href="https://github.com/Daskeladden/smear-cursor">smear-cursor: a cursor trail for Emacs 32</a> (<a href="https://www.reddit.com/r/emacs/comments/1wdqglu/smearcursor_a_cursor_trail_for_emacs_32/">Reddit</a>)</li>
<li><a href="https://github.com/vikram-mandyam/betweenle.el">betweenle.el: an Emacs version of Betweenle (alphabetical word guessing)</a> (<a href="https://www.reddit.com/r/emacs/comments/1wdk33z/betweenleel_an_emacs_version_of_betweenle/">Reddit</a>)</li>
</ul></li>
<li>LLMs:
<ul class="org-ul">
<li><a href="https://github.com/wakamenod/emacs-claude-code">Another Claude Code integration for Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1wdxfsc/another_claude_code_integration_for_emacs/">Reddit</a>)</li>
<li><a href="https://lars.ingebrigtsen.no/2026/09/10/some-llm-spell-check-experiences/">Lars Ingebrigtsen: Some LLM spell check experiences</a></li>
<li><a href="https://lars.ingebrigtsen.no/2026/09/11/spellchecking-total-eclipse-with-an-ai/">Lars Ingebrigtsen: Spellchecking Total Eclipse with an AI</a></li>
</ul></li>
<li>Community:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1wacjm8/fortnightly_tips_tricks_and_questions_20260908/">Fortnightly Tips, Tricks, and Questions — 2026-09-08 / week 36</a></li>
<li><a href="https://indieweb.social/@xenodium/117235507871817070">Any Emacs users in Tokyo want to meet up? (@xenodium@indieweb.social)</a></li>
<li><a href="https://www.youtube.com/watch?v=RatVp4YLwiM">September 2026 Emacs Meetup recap.</a> (42:19, <a href="https://news.ycombinator.com/item?id=49604410">HN</a>)</li>
<li><a href="https://einar.codeberg.page/an-apology-to-david-wilson-and-protesilaos-stavrou.html">Einar Mostad: An apology to Protesilaos Stavrou and David Wilson</a></li>
</ul></li>
<li>Other:
<ul class="org-ul">
<li><a href="https://mbork.pl/2026-09-12_Duplicating_lines_and_other_Emacs_miscellanea">Marcin Borkowski: Duplicating lines and other Emacs miscellanea</a></li>
<li><a href="https://ooblick.com/2026/09/customizing-pasted-strings-in-emacs/">yank-transform-functions (@arensb@ooblick.com)</a></li>
<li><a href="https://github.com/zkazure/visual-regexp-rx.el">visual-regexp-rx: write regexp with rx notation in visual-regexp</a> (<a href="https://www.reddit.com/r/emacs/comments/1wac34i/visualregexprx_write_regexp_with_rx_notation_in/">Reddit</a>)</li>
<li><a href="https://masutaka.net/en/2026-09-14-1/">Moving the Credentials I Kicked Out of init.el from Plaintext Files to Keychain | Masutaka's ChangeLog Memo</a> (<a href="https://mstdn.love/@masutaka/117269912433371037">@masutaka@mstdn.love</a>)</li>
<li><a href="https://www.jamescherti.com/emacs-display-line-numbers-mode-performance/">The Root Causes of Scrolling Lag in Emacs display-line-numbers-mode</a> (<a href="https://www.reddit.com/r/emacs/comments/1wefnt6/the_root_causes_of_scrolling_lag_in_emacs/">Reddit</a>, <a href="https://irreal.org/blog/?p=14079">Irreal</a>)</li>
<li><a href="https://www.reddit.com/r/emacs/comments/1wf7bts/v31_for_windows_heavily_flagged_by_av/">v31 for Windows heavily flagged by AV</a></li>
</ul></li>
<li>Emacs development:
<ul class="org-ul">
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=5210b89cfad217e97fa57d93979ec6825dc617ab">Allow setting font-lock-keyword property using declare form</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=a8736d5f88882fd28e855aab35dcc288f73549d3">Improve where the replacement is previewed (bug#81583)</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=92acd66831b31e551d0d408e28c23d45b77f9cdb">Use short symbols for query-replace-show-preview (bug#81583)</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=e33b54d938668dfc1889127d7452524c92cbcd5d">Rename `outline-xref' command to `outline-find-headings'</a> (<a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=38a6fd7cea467525ca122eea9a63a39aaa30063e">correction: C-c @ M-o</a>)</li>
</ul></li>
<li>New packages:
<ul class="org-ul">
<li><a target="_blank" href="https://melpa.org/#/elfeed-protocol-freshrss">elfeed-protocol-freshrss</a>: FreshRSS protocol for elfeed (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/latex-to-svg-frontend">latex-to-svg-frontend</a>: Preview LaTeX math in markup buffers as SVG (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/nonogram">nonogram</a>: Play nonogram (picross) puzzles with SVG graphics (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/org-clock-dbus">org-clock-dbus</a>: Monitor org-clock from D-Bus (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/single-window">single-window</a>: Always open buffers in the current window (MELPA)</li>
</ul></li>
</ul>

<p>
Links from <a href="https://www.reddit.com/r/emacs">reddit.com/r/emacs</a>, <a href="https://www.reddit.com/r/orgmode">r/orgmode</a>, <a href="https://www.reddit.com/r/spacemacs">r/spacemacs</a>, <a href="https://mastodon.social/tags/emacs">Mastodon #emacs</a>, <a href="https://bsky.app/hashtag/emacs">Bluesky #emacs</a>, <a href="https://hn.algolia.com/?query=emacs&amp;sort=byDate&amp;prefix&amp;page=0&amp;dateRange=all&amp;type=story">Hacker News</a>, <a href="https://lobste.rs/search?q=emacs&amp;what=stories&amp;order=newest">lobste.rs</a>, <a href="https://programming.dev/c/emacs?dataType=Post&amp;page=1&amp;sort=New">programming.dev</a>, <a href="https://lemmy.world/c/emacs">lemmy.world</a>, <a href="https://lemmy.ml/c/emacs?dataType=Post&amp;page=1&amp;sort=New">lemmy.ml</a>, <a href="https://planet.emacslife.com">planet.emacslife.com</a>, <a href="https://www.youtube.com/playlist?list=PL4th0AZixyREOtvxDpdxC9oMuX7Ar7Sdt">YouTube</a>, <a href="http://git.savannah.gnu.org/cgit/emacs.git/log/etc/NEWS">the Emacs NEWS file</a>, <a href="https://emacslife.com/calendar/">Emacs Calendar</a>, and <a href="https://lists.gnu.org/archive/html/emacs-devel/2026-09">emacs-devel</a>. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at <a href="mailto:sacha@sachachua.com">sacha@sachachua.com</a>. Thank you!
</p>
<div><a href="https://sachachua.com/blog/2026/09/2026-09-14-emacs-news/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F09%2F2026-09-14-emacs-news%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		</item><item>
		<title>Experimenting with Orukeet for speech recognition</title>
		<link>https://sachachua.com/blog/2026/09/experimenting-with-orukeet-for-speech-recognition/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Sat, 12 Sep 2026 13:39:22 GMT</pubDate>
    <category>speech</category>
<category>emacs</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/09/experimenting-with-orukeet-for-speech-recognition/</guid>
		<description><![CDATA[<p>
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/Hl_0WrOyROs?enablejsapi=1" frameborder="0" allowfullscreen=""></iframe><a href="https://youtu.be/Hl_0WrOyROs">Watch on YouTube</a></div>
<p></p>

<p>
This is a quick demonstration of using Orukeet as a speech recognition model inside Emacs. I'm recording this in real time on a Lenovo P52 laptop using only CPU. I can replay just one part of my recording. I can switch languages in the middle of recording too. Par exemple, maintenant je parle français. Seems promising.
</p>

<p>
Links/notes:
</p>

<ul class="org-ul">
<li><a href="https://huggingface.co/oruk/orukeet">oruk/orukeet · Hugging Face</a></li>
<li><a href="https://sachachua.com/blog/2026/09/experimenting-with-orukeet-for-speech-recognition/orukeet-server.py">file:///home/sacha/vendor/orukeet/orukeet-server.py</a> - I generated this with Google Gemini for a quick POC. It keeps the model in memory for slightly faster processing per segment.</li>
<li><a href="https://oruk.ai/guides/orukeet-local-transcription">Run Orukeet locally: Python speech recognition | oruk</a>
<ul class="org-ul">
<li><a href="https://oruk.ai/examples/orukeet-local.py">https://oruk.ai/examples/orukeet-local.py</a> - Python script you can run from the command line to transcribe files.</li>
</ul></li>
<li><a href="https://sachachua.com/blog/2026/09/experimenting-with-orukeet-for-speech-recognition/orukeet-local.py">file:///home/sacha/vendor/orukeet/orukeet-local.py</a></li>
<li><a href="https://github.com/sachac/whisper.el/">sachac/whisper.el</a> - my fork of natrys/whisper.el</li>
<li><a href="https://sachachua.com/dotemacs#writing-and-editing-speech-recognition-queue-multiple-transcriptions-with-whisper-el-speech-recognition">sacha-whisper-continue</a> - This lets me cue transcriptions of previous segments while continuing to record new ones. I like it because I tend to pause while thinking out loud. I can define the chunk that will get transcribed so that I don't end up with incomplete chunks or lost context.</li>
</ul>
<div><a href="https://sachachua.com/blog/2026/09/experimenting-with-orukeet-for-speech-recognition/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F09%2Fexperimenting-with-orukeet-for-speech-recognition%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		</item><item>
		<title>2026-09-07 Emacs news</title>
		<link>https://sachachua.com/blog/2026/09/2026-09-07-emacs-news/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Mon, 07 Sep 2026 23:44:14 GMT</pubDate>
    <category>emacs</category>
<category>emacs-news</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/09/2026-09-07-emacs-news/</guid>
		<description><![CDATA[<p>
The Emacs Carnival theme for September is "<a href="https://www.emacswiki.org/emacs/CarnivalSeptember2026">Games</a>". Enjoy! Other really cool uses of graphics in Emacs: <a href="https://github.com/Gleek/org-timegrid">org-timegrid</a>, <a href="https://github.com/florommel/poimap">poimap</a>, <a href="https://github.com/Daskeladden/canvas-minimap">canvas-minimap</a>.
</p>

<p>
Also, public service announcement: doomemacs.com is not affiliated with <a href="https://doomemacs.org">doomemacs.org</a> (<a href="https://github.com/orgs/doomemacs/discussions/129">see this Github discussion</a>). Just in case someone reading this happens to be the person who made doomemacs.com, please consider setting up a redirect to doomemacs.org for more awesomeness and less confusion. Thank you!
</p>

<p>
And a reminder: <a href="https://emacsconf.org/2026/cfp/">EmacsConf - 2026 - Call for Participation</a> target date for proposals Sept 18, conference is online Dec 12-13. Hope to see you there!
</p>

<ul class="org-ul">
<li>Upcoming events (<a href="https://emacslife.com/calendar/emacs-calendar.ics">iCal file</a>, <a href="https://emacslife.com/calendar/">Org</a>):
<ul class="org-ul">
<li>London Emacs (in person): Emacs London meetup <a href="https://www.meetup.com/london-emacs-hacking/events/316294538/">https://www.meetup.com/london-emacs-hacking/events/316294538/</a> Tue Sep 8 1800 Europe/London</li>
<li>Emacs Berlin: In-Person-Only Emacs-Berlin Stammtisch <a href="https://emacs-berlin.org/">https://emacs-berlin.org/</a> Tue Sep 8 1900 Europe/Berlin</li>
<li>OrgMeetup (virtual) <a href="https://orgmode.org/worg/orgmeetup.html">https://orgmode.org/worg/orgmeetup.html</a> Wed Sep 9 0900 America/Vancouver - 1100 America/Chicago - 1200 America/Toronto - 1600 Etc/UTC - 1800 Europe/Berlin - 2130 Asia/Kolkata &ndash; Thu Sep 10 0000 Asia/Singapore</li>
<li>Atelier Emacs Montpellier (in person) <a href="https://lebib.org/date/atelier-emacs">https://lebib.org/date/atelier-emacs</a> Fri Sep 11 1800 Europe/Paris</li>
<li>PDX Emacs (in person) <a href="https://pdx.social/@howard/117147689957341583">https://pdx.social/@howard/117147689957341583</a> - Tue Sept 15 6:00 pm in Portland, OR</li>
<li>M-x Research: TBA <a href="https://m-x-research.github.io/">https://m-x-research.github.io/</a> Wed Sep 16 0800 America/Vancouver - 1000 America/Chicago - 1100 America/Toronto - 1500 Etc/UTC - 1700 Europe/Berlin - 2030 Asia/Kolkata - 2300 Asia/Singapore</li>
</ul></li>
<li>Beginner:
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2026/04/what-s-in-the-emacs-newcomers-presets-theme/">What's in the Emacs newcomers-presets theme?</a> (April 2026, <a href="https://irreal.org/blog/?p=14056">Irreal</a>)</li>
</ul></li>
<li>Emacs configuration:
<ul class="org-ul">
<li><a href="https://www.jamescherti.com/emacs-startup-defer-use-package-performance/">Guide to Deferred Package Loading with use-package (Optimizing Emacs Startup)</a> (<a href="https://www.reddit.com/r/emacs/comments/1w6d1zw/guide_to_deferred_package_loading_with_usepackage/">Reddit</a>, <a href="https://irreal.org/blog/?p=14062">Irreal</a>)</li>
<li><a href="https://github.com/MArpogaus/auto-side-windows">auto-side-windows now on MELPA</a> (<a href="https://www.reddit.com/r/emacs/comments/1w70jid/autosidewindows_now_on_melpa/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=Ha_67hACw5M">Emacs Meep-mode Model Editing</a> (57:41) modal editing</li>
<li><a href="https://melpa.org/#/?q=casual">Casual Suite 3.0</a> (<a href="https://sfba.social/@kickingvegas/117197418834344945">@kickingvegas@sfba.social</a>)</li>
<li><a href="https://github.com/darkstego/wakib-emacs/releases/tag/v2.0.0">wakib-emacs: Emacs for the rest of us: v2 released!</a> (<a href="https://www.reddit.com/r/emacs/comments/1w3m1qt/wakibemacs_emacs_for_the_rest_of_us_v2_released/">Reddit</a>)</li>
<li><a href="https://lambdaland.org/posts/2026-09-06-bedrock-v2/">Bedrock 2.0 released!</a> (<a href="https://www.reddit.com/r/emacs/comments/1wa31fa/bedrock_20_released/">Reddit</a>, <a href="https://news.ycombinator.com/item?id=49602490">HN</a>, <a href="https://irreal.org/blog/?p=14077">Irreal</a>)</li>
</ul></li>
<li>Emacs Lisp:
<ul class="org-ul">
<li><a href="https://github.com/benleis1/ilist-plus">Extending imenu for elisp</a> (<a href="https://www.youtube.com/watch?v=NU2WcX4dDiU">YouTube</a>, <a href="https://www.reddit.com/r/emacs/comments/1w6nmre/extending_imenu_for_elisp/">Reddit</a>, <a href="https://mathstodon.xyz/@benleis/117216149493983366">@benleis@mathstodon.xyz</a>)</li>
</ul></li>
<li>Appearance:
<ul class="org-ul">
<li><a href="https://github.com/benleis1/emacs-init/blob/13b61e43c6baad043af71cad385c68787340d9a6/modeline.el#L805">Zoom in/out slider on the modeline</a> (<a href="https://www.reddit.com/r/emacs/comments/1wa0b2q/zoom_inout_slider_on_the_modeline/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=Dlm7sxDB6h8">the emacs theme I use: N Λ N O Theme</a> (06:24)</li>
<li><a href="https://github.com/Meskour/vulkanite-theme-emacs">[Theme] Vulkanite: 26 atmospheric dark theme variants for Emacs with Kanagawa-inspired balance</a> (<a href="https://www.reddit.com/r/emacs/comments/1w9bmyi/theme_vulkanite_26_atmospheric_dark_theme/">Reddit</a>)</li>
<li><a href="https://protesilaos.com/codelog/2026-09-04-doric-themes-1-3-0/">Protesilaos: Emacs: doric-themes version 1.3.0</a> (<a href="https://irreal.org/blog/?p=14064">Irreal</a>)</li>
</ul></li>
<li>Navigation:
<ul class="org-ul">
<li><a href="https://writeout.ink/@ljwrites/117200269254705677">windmove tinkering (@ljwrites@writeout.ink)</a></li>
<li><a href="https://github.com/MArpogaus/auto-tab-groups">auto-tab-groups: tab groups that open and close with your commands (now on MELPA)</a> (<a href="https://www.reddit.com/r/emacs/comments/1w9n1tl/autotabgroups_tab_groups_that_open_and_close_with/">Reddit</a>)</li>
<li><a href="https://github.com/florommel/poimap">poimap.el - Visual buffer map with points of interest</a> (<a href="https://www.reddit.com/r/emacs/comments/1w94mey/poimapel_visual_buffer_map_with_points_of_interest/">Reddit</a>)</li>
<li><a href="https://github.com/Daskeladden/canvas-minimap">canvas-minimap: a pixel-based minimap using Emacs 32's canvas image type</a> (<a href="https://www.reddit.com/r/emacs/comments/1w8cp2v/canvasminimap_a_pixelbased_minimap_using_emacs/">Reddit</a>)</li>
</ul></li>
<li>Writing:
<ul class="org-ul">
<li><a href="https://lars.ingebrigtsen.no/2026/09/07/emacs-canz-spell-goodly-know/">Lars Ingebrigtsen: Emacs Canz Spell Goodly Know</a></li>
<li><a href="https://github.com/Thysrael/markdown-ts-appear">Thysrael/markdown-ts-appear: Reveal Markdown source at point and preview math in Emacs markdown-ts-mode · GitHub</a> (<a href="https://mastodon.social/@thysrael/117206746884931257">@thysrael</a>)</li>
</ul></li>
<li>Org Mode:
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=LL5K5Fb8hFc">My Note Taking Setup With Emacs Org-Mode</a> (33:26)</li>
<li><a href="https://ljwrites.blog/posts/2022-writing-review/">Writing year in review: My 2022 writing habit on Emacs | Semi-author-ized writer</a> (<a href="https://writeout.ink/@ljwrites/117227169775105757">@ljwrites@writeout.ink</a>)</li>
<li><a href="https://github.com/Gleek/org-timegrid">A beautiful SVG weekly calendar for Emacs, backed by Org files, with full mouse and keyboard support and an optional day strip for Org Agenda</a> (<a href="https://www.reddit.com/r/emacs/comments/1w519nv/a_beautiful_svg_weekly_calendar_for_emacs_backed/">Reddit</a>)</li>
<li><a href="https://pierre-rouleau.github.io/pel/pel-table-based-documentation1/mode-org-mode.pdf">Emacs Org-Mode PDF Quicksheet now available in PEL</a> (<a href="https://www.reddit.com/r/emacs/comments/1w6lxq5/emacs_orgmode_pdf_quicksheet_now_available_in_pel/">Reddit</a>)</li>
<li><a href="https://github.com/larrasket/org-draw">org-draw is now available on MELPA!</a> (<a href="https://youtu.be/04zbf-tosNQ">YouTube</a>, <a href="https://www.reddit.com/r/emacs/comments/1w63wry/orgdraw_is_now_available_on_melpa/">Reddit</a>)</li>
<li><a href="https://www.reddit.com/r/emacs/comments/1w599dx/improving_the_styling_of_emacs_tables_with/">Improving the styling of emacs tables with tabularray</a> (<a href="https://programming.dev/post/55958138?scrollToComments=true">programming.dev</a>)</li>
<li><a href="https://github.com/yibie/org-table-widget">org-table-widget: I finally found a way to make Org tables easier to read without changing how I edit them</a> (<a href="https://www.reddit.com/r/emacs/comments/1w9ur57/orgtablewidget_i_finally_found_a_way_to_make_org/">Reddit</a>)</li>
<li>Org development:
<ul class="org-ul">
<li><a href="https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/etc/ORG-NEWS?id=adb342777a06dc46901683c5e58ae3c5926c0e4d">Factor out export-and-show in ox-latex.el and ox-beamer.el</a></li>
</ul></li>
</ul></li>
<li>Coding:
<ul class="org-ul">
<li><a href="https://emacs.dyerdwelling.family/emacs/20260905090959-emacs&#45;&#45;git-worktrees-and-branch-surgery-in-built-in-vc/">James Dyer: Git Worktrees Without Leaving Built-in VC</a></li>
<li><a href="https://emacsredux.com/blog/2026/09/02/working-with-git-worktrees-in-magit/">Emacs Redux: Working with Git Worktrees in Magit</a></li>
<li><a href="https://blog.davep.org/2026/09/03/next-gh-pr-el-v1-1-0.html">Dave Pearson: next-gh-pr.el v1.1.0</a></li>
<li><a href="https://joarvarndt.se/emacs-lsp.html">Joar von Arndt: Emacs does not need LSP</a></li>
<li><a href="https://magnus.therning.org/2026-09-06-emacs-salmagundi,-2026-09-06.html">Magnus: Emacs salmagundi, 2026-09-06</a> emacs-multi-compile, consult-kith for jumping to tests/etc.</li>
<li><a href="https://artfulrobot.uk/blog/xdebug-for-php-on-emacs-with-dape/">Xdebug for PHP on Emacs with Dape | Artful Robot</a> (<a href="https://floss.social/@artfulrobot/117213333747912541">@artfulrobot@floss.social</a>)</li>
<li><a href="https://codeberg.org/zshaftel/gaudy-cl">gaudy-cl: Colorful semantic font-locking for Common Lisp</a> (<a href="https://www.reddit.com/r/emacs/comments/1w3sixr/gaudycl_colorful_semantic_fontlocking_for_common/">Reddit</a>)</li>
</ul></li>
<li>Shells:
<ul class="org-ul">
<li><a href="https://github.com/vodik/cooked">cooked - a comint based terminal emulator</a> (<a href="https://www.reddit.com/r/emacs/comments/1w9b9bh/cooked_a_comint_based_terminal_emulator/">Reddit</a>)</li>
</ul></li>
<li>Evil mode:
<ul class="org-ul">
<li><a href="https://github.com/teeann/evil-twin">evil-twin: key-chords that actually behave under evil-mode</a> (<a href="https://www.reddit.com/r/emacs/comments/1w4foe6/eviltwin_keychords_that_actually_behave_under/">Reddit</a>)</li>
</ul></li>
<li>Multimedia:
<ul class="org-ul">
<li><a href="https://github.com/systemfreund/supersonic.el">New package: supersonic.el (Music player for subsonic-compatible servers)</a> (<a href="https://www.reddit.com/r/emacs/comments/1wa1aok/new_package_supersonicel_music_player_for/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=580DxF2M7EE">Integrating Emacs with Music Player</a> (01:32:18)</li>
<li><a href="https://www.youtube.com/watch?v=xoFdxP-MTn4">Bioscoop demo: split screen to visualize color grading - YouTube</a> (<a href="https://bsky.app/profile/danielsz.bsky.social/post/3mujq4qrpvc2b">@danielsz.bsky.social</a>)</li>
</ul></li>
<li>Fun:
<ul class="org-ul">
<li><a href="https://git.andros.dev/andros/nonogram.el">andros/nonogram.el: Play nonogram puzzles (also known as picross, griddlers or hanjie) in Emacs</a> (<a href="https://activity.andros.dev/@andros/statuses/01M1XDA1DYE0BBEWJEH831MZ1Q">@andros@activity.andros.dev</a>)</li>
<li><a href="https://ray-on-emacs.blogspot.com/2026/09/games-emacs-carnival-post-for-september.html">Raymond Zeitler: Games: The Emacs Carnival Post For September 2026</a>
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2026/09/emacs-carnival-september-2026-games/">Sacha Chua: Emacs Carnival September 2026: Games</a></li>
<li><a href="https://idlip.in/posts/playing-emacs/">Playing with Emacs | Dilip's Log</a></li>
</ul></li>
<li><a href="https://www.youtube.com/watch?v=wsVoHPL1C6g">Process Footage: Randomized Greeting from Dipskits Greets Me at My Terminal</a> (05:23)</li>
</ul></li>
<li>LLMs:
<ul class="org-ul">
<li><a href="https://ananthakumaran.in/2026/08/30/pimacs.html">Pimacs - An Emacs UI for Pi · Anantha Kumaran</a></li>
<li><a href="https://github.com/yayster/yayster.el">El Yayster — a resident LLM that inhabits Emacs</a> (<a href="https://news.ycombinator.com/item?id=49602258">HN</a>)</li>
</ul></li>
<li>Community:
<ul class="org-ul">
<li><a href="https://github.com/orgs/doomemacs/discussions/129">BEWARE: doomemacs.com is not associated with doomemacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1w7h191/beware_doomemacscom_is_not_associated_with/">Reddit</a>)</li>
<li><a href="https://www.reddit.com/r/emacs/comments/1w4knk3/question_about_things_that_surprised_you_about/">Question about things that surprised you about Emacs.</a></li>
<li><a href="https://enzuru.medium.com/emacs-in-fifty-keystrokes-five-years-later-2026-edition-featuring-meow-and-agent-shell-3d656f273989?source=friends_link&amp;sk=4e1a8ba56819a67c1798cc34b40b8a29">Emacs in fifty keystrokes five years later (2026 edition featuring meow and agent-shell)</a></li>
<li><a href="https://sachachua.com/blog/2026/08/27-aout-emacs-chat-fabrice-niessen-en-francais-partie-2/">Sacha Chua: Emacs Chat 30: Fabrice Niessen (en français, partie 2)</a> (<a href="https://www.youtube.com/watch?v=4m0G_ASLUXY">YouTube</a>, 01:05:56)</li>
<li><a href="https://www.youtube.com/watch?v=bWfl8nDgb8o">Talking About Stuff I Use on Linux (not a dev, just a human perspective)</a> (01:00:02) Doom Emacs at 15:24</li>
</ul></li>
<li>Other:
<ul class="org-ul">
<li><a href="https://takeonrules.com/2026/09/01/how-im-feeling-emacs-package/">Jeremy Friesen: How I’m Feeling Emacs Command</a></li>
<li><a href="https://www.jamescherti.com/emacs-security-settings/">The Emacs Security Settings that might Silently Compromise your System</a> (<a href="https://www.reddit.com/r/emacs/comments/1w4ems0/the_emacs_security_settings_that_might_silently/">Reddit</a>)</li>
<li><a href="https://github.com/yibie/md-mode/releases/tag/v0.4.1">I finally got Emacs to render Markdown tables properly (md-mode 0.4.1) — and I think the same trick can work for Org tables</a> (<a href="https://www.reddit.com/r/emacs/comments/1w9l680/i_finally_got_emacs_to_render_markdown_tables/">Reddit</a>)</li>
<li><a href="https://github.com/yibie/epub-reader">epub-reader: an EPUB reader for Emacs that reflows, breaks CJK lines properly, and keeps highlights across re-layout</a> (<a href="https://www.reddit.com/r/emacs/comments/1w51gyl/epubreader_an_epub_reader_for_emacs_that_reflows/">Reddit</a>)</li>
<li><a href="https://mbork.pl/2026-09-07_Pasting_primary_selection_from_keyboard">Marcin Borkowski: Pasting primary selection from keyboard</a></li>
<li><a href="https://github.com/thkoch2001/rau">thkoch2001/rau: Emacs/Wayland based Window Manager in pure elisp with the help of River</a> (<a href="https://news.ycombinator.com/item?id=49593319">HN</a>)</li>
<li><a href="https://www.alcarney.me/blog/2026/building-emacs-into-a-systemd-sysext/">Building Emacs into a systemd-sysext — Alex Carney</a> (<a href="https://mastodon.social/@alcarney/117197558126253320">@alcarney@mastodon.social</a>)</li>
</ul></li>
<li>Emacs development:
<ul class="org-ul">
<li>emacs-devel:
<ul class="org-ul">
<li><a href="https://yhetil.org/emacs-devel/4cebf24a-9c7d-435f-a90f-51257cc8a3bf@gutov.dev/">Re: master e630bc4fd72: ; Fix some recently added docs. - Dmitry Gutov</a> - xref docs?</li>
</ul></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=ab1d6868ed32c2a06b7a4aa21cef84d560cc2aca">Improve presentation of query-replace-show-preview</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=3b721dd39afd435021d45c046f1f54b5512b7236">Let 'query-replace-show-preview' be a function (bug#81583)</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=8e23cbb85fcde872aa154086e41f9947fe86d783">Make log-edit-headers-separator inherit from separator-line</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=9e05c0360c5f94ad9c5375b2bd9f84d453ab4f22">Merge branch 'xref-find-by-kind'</a></li>
</ul></li>
<li>New packages:
<ul class="org-ul">
<li><a target="_blank" href="https://melpa.org/#/agent-shell-math-renderer">agent-shell-math-renderer</a>: Display-math rendering for agent-shell (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/api-credit">api-credit</a>: AI API balance in the modeline (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/auto-tab-groups">auto-tab-groups</a>: Simple auto tab group creator for specified commands (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/cursorfree">cursorfree</a>: Complex editing through voice (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/material-icons">material-icons</a>: Material Icon Theme integration (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/metropolis-light-theme">metropolis-light-theme</a>: Light theme based on the Metropolis Beamer palette (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/mode-line-path">mode-line-path</a>: Abbreviate file paths in the mode line (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/nix3">nix3</a>: Frontend to experimental commands of Nix (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/org-roam-gt">org-roam-gt</a>: Improvements for org-roam (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/pilish">pilish</a>: Emacs frontend for pi coding agent (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/surveyor">surveyor</a>: Survey your code with LLM-generated diagrams (MELPA)</li>
</ul></li>
</ul>

<p>
Links from <a href="https://www.reddit.com/r/emacs">reddit.com/r/emacs</a>, <a href="https://www.reddit.com/r/orgmode">r/orgmode</a>, <a href="https://www.reddit.com/r/spacemacs">r/spacemacs</a>, <a href="https://mastodon.social/tags/emacs">Mastodon #emacs</a>, <a href="https://bsky.app/hashtag/emacs">Bluesky #emacs</a>, <a href="https://hn.algolia.com/?query=emacs&amp;sort=byDate&amp;prefix&amp;page=0&amp;dateRange=all&amp;type=story">Hacker News</a>, <a href="https://lobste.rs/search?q=emacs&amp;what=stories&amp;order=newest">lobste.rs</a>, <a href="https://programming.dev/c/emacs?dataType=Post&amp;page=1&amp;sort=New">programming.dev</a>, <a href="https://lemmy.world/c/emacs">lemmy.world</a>, <a href="https://lemmy.ml/c/emacs?dataType=Post&amp;page=1&amp;sort=New">lemmy.ml</a>, <a href="https://planet.emacslife.com">planet.emacslife.com</a>, <a href="https://www.youtube.com/playlist?list=PL4th0AZixyREOtvxDpdxC9oMuX7Ar7Sdt">YouTube</a>, <a href="http://git.savannah.gnu.org/cgit/emacs.git/log/etc/NEWS">the Emacs NEWS file</a>, <a href="https://emacslife.com/calendar/">Emacs Calendar</a>, and <a href="https://lists.gnu.org/archive/html/emacs-devel/2026-09">emacs-devel</a>. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at <a href="mailto:sacha@sachachua.com">sacha@sachachua.com</a>. Thank you!
</p>
<p>
*</p>
<div><a href="https://sachachua.com/blog/2026/09/2026-09-07-emacs-news/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F09%2F2026-09-07-emacs-news%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		</item><item>
		<title>Emacs Carnival September 2026: Games</title>
		<link>https://sachachua.com/blog/2026/09/emacs-carnival-september-2026-games/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Fri, 04 Sep 2026 01:04:46 GMT</pubDate>
    <category>emacs</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/09/emacs-carnival-september-2026-games/</guid>
		<description><![CDATA[<div class="update" id="org2502424">
<p>
The theme for the Emacs Carnival this September is "<a href="https://www.emacswiki.org/emacs/CarnivalSeptember2026">Games</a>". Thanks to <a href="https://ray-on-emacs.blogspot.com/2026/09/games-emacs-carnival-post-for-september.html">Raymond Zeitler</a> for hosting!
</p>

</div>

<p>
One of the things I love about the Emacs community is people's sense of humour and whimsy. There's a grand tradition of people hiding <a href="https://en.wikipedia.org/wiki/Easter_egg_(media)">Easter eggs</a> in software, a bit of hidden fun that might make someone smile.
But isn't this just bloat and frivolity? One might argue that the code that lets us play <code>M-x tetris</code>, <code>dunnet</code>, or <code>doctor</code> in Emacs is a waste of time and space compared to More Serious Things, but on the other hand, the <a href="https://github.com/emacs-mirror/emacs/blob/master/lisp/play/tetris.el">Tetris</a> source code could be a good jumping-off point if you find yourself wanting to make an interactive real-time simulation that displays graphical results. Want something more modern? Maybe <a href="https://github.com/minad/doom-on-emacs">DOOM on Emacs</a>!
Besides, the code for games isn't actually loaded until you choose to play it. It's okay for something to be fun by itself instead of needing to be productive. There's something wonderful about a tool that people choose not just for work but also for enjoyment.
</p>

<p>
Our adventure can start with <a href="https://www.masteringemacs.org/article/fun-games-in-emacs">Fun and Games in Emacs - Mastering Emacs</a> or <a href="https://www.youtube.com/watch?v=DM41Nf4-tQM">Emacs Is A Gaming Platform for Windows, Mac and Linux - YouTube</a>, which cover a lot of classic built-ins. Here's a barrage of ideas; skip or explore anything you want: <a href="https://github.com/rbanffy/selectric-mode">Pretend you're on a typewriter</a> or turn on <a href="https://github.com/elizagamedev/power-mode.el">power mode</a> or <a href="https://github.com/CestDiego/c-c-combo.el">make c-c-combos</a>. Go on to <a href="https://www.emacs.dyerdwelling.family/emacs/20231027211128-emacs&#45;&#45;famous-film-using-artist-mode/">draw some ASCII art with artist-mode</a> or <a href="https://dataswamp.org/~incal/bad-www/index.html">with Emacs Lisp</a>, and add some <a href="https://github.com/tbanel/uniline">box shadows</a> because why not. Maybe even use it to <a href="https://mbork.pl/2025-09-08_Emacs_Artist_clock">tell the time</a>. <a href="https://gitlab.com/xgqt/emacs-ansilove">Turn ASCII art into PNGs</a>. Have fun with <a href="https://www.reddit.com/r/emacs/comments/1cr7515/for_some_reason_the_emacs_calendar_can_display/">obscure calendars</a>. <a href="https://zwit.link/posts/kaomel-emacs-package/">Use kaomojis</a> or <a href="https://github.com/nehrbash/zalgo-mode/tree/main">write weird text</a>. Explore the <a href="https://indieweb.social/@xenodium/115493728712490397">screensavers in zone</a> and <a href="file:///home/sacha/sync/emacs/Sacha.html#writing-and-editing">let them sprinkle characters through your buffer</a>, <a href="file:///home/sacha/sync/emacs/Sacha.html#writing-and-editing">take over your other frames</a>, or <a href="https://xenodium.com/emacs-zones-to-lift-you-up">teach you something new</a>. Watch <a href="https://github.com/alphapapa/snow.el">snow</a> or a <a href="https://github.com/johanvts/emacs-fireplace">fireplace</a>. Rotate <a href="https://github.com/bchatterjee99/emacs-ascii-cube">cubes in ASCII</a> or with <a href="https://emacsconf.org/2025/talks/graphics/">hardware-accelerated graphics</a>. <a href="https://www.reddit.com/r/emacs/comments/1vxkrx3/updated_my_obglsl_module_to_use_emacs_32_canvas/">Why limit yourself to cubes</a>? Still, if you do want to stick to cubes, you can <a href="https://codeberg.org/akib/emacs-cube">solve them</a>. Go ahead, <a href="https://blog.josephwilk.net/art/emacs-animation.html">animate something.</a> <a href="https://www.ttrpg-hangout.com/solo_rpg_mode_for_emacs.html">Play roleplaying games</a> (also check out <a href="https://emacsconf.org/2023/talks/solo/">Howard Abrams's 2023 talk</a>), <a href="https://www.reddit.com/r/emacs/comments/1o60kvj/nethackel_version_0150_released/">rogue-likes,</a> <a href="https://codeberg.org/nosrednayduj/moo-el">multi-user dungeons</a>, <a href="https://github.com/dankeyy/el-chipo">classics</a>, <a href="https://en.andros.dev/blog/d8b3a759/playing-chess-online-with-emacs/">chess</a>, <a href="https://www.salkosuo.net/2015/10/22/elite-for-emacs.html">trading</a>, <a href="https://codeberg.org/tomenzgg/Emacs-Klondike">Klondike</a> and lots of other <a href="https://www.reddit.com/r/emacs/comments/1w07wyt/rfc_cardgames_melpa_thirtyfive_single_and/">card games</a>, <a href="https://codeberg.org/monadicsheep/stk-code">a racing game</a>, <a href="https://hg.sr.ht/~zck/minesweeper">Minesweeper</a>, <a href="https://hg.sr.ht/~zck/game-2048">2048</a>, <a href="https://wasamasa.itch.io/xcb-boomshine">Boomshine</a>, <a href="https://github.com/vreeze/eboy">a Gameboy emulator</a> (this other one handles <a href="https://github.com/gongo/emacs-nes">NES</a>). Simulate <a href="https://github.com/vkazanov/elcity/">cities</a> or <a href="https://hg.sr.ht/~zck/sand.el">physics</a> or <a href="https://sr.ht/~vidak/uwu.el/">pets</a> (<a href="https://github.com/tiatatida/tamaemacs">here's another one</a>) or <a href="https://github.com/Lindydancer/gameoflife">life</a>. Have fun with so many cats: <a href="https://github.com/kn66/pomo-cat.el">timers</a>, <a href="https://github.com/TeMPOraL/nyan-mode">scrollcats</a>, <a href="https://github.com/emacsmirror/zone-nyan">screensavers</a>. Not a cat person? There's a <a href="https://github.com/dp12/parrot">parrot</a> version and a <a href="https://github.com/mattmonja/flappy-fish">fish</a> version. <a href="https://github.com/zenitsu7772000/manga-reader">Read comics</a> or <a href="https://lars.ingebrigtsen.no/2016/06/27/an-emacs-meme-generator/">make memes</a>. <a href="https://github.com/progfolio/wordel">Guess words</a> or <a href="https://github.com/LensPlaysGames/word-search-generator&#45;&#45;emacs-lisp">find them</a>. <a href="https://www.youtube.com/watch?v=L5-eei1Ouqw">Learn other alphabets</a>. <a href="https://github.com/oantolin/luggage">Make art</a>. You can even turn your Emacs into a <a href="https://github.com/mpardalos/gc-geiger">Geiger counter for garbage collection</a>.
</p>

<p>
Then take a step back and marvel at this community of people who try things out, tinker, follow that crazy idea that won't let go of them, and share what they came up with. If you write Emacs Lisp (or want to learn), rummage around in the source code for ideas on how to do things. See if you have any ideas that tickle your fancy. You might be able to get Emacs to do things text editors don't usually do! =)
</p>

<div class="update" id="org7c0f3e1">
<p>
Check out the Emacs Carnival page for <a href="https://www.emacswiki.org/emacs/CarnivalSeptember2026">Games</a> to see other posts!
</p>

</div>
<div><a href="https://sachachua.com/blog/2026/09/emacs-carnival-september-2026-games/index.org">View Org source for this post</a></div>
<p>You can <a href="https://sachachua.com/blog/2026/09/emacs-carnival-september-2026-games/#comment">view 1 comment</a> or <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F09%2Femacs-carnival-september-2026-games%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		</item><item>
		<title>Semaine du 24 au 30 août</title>
		<link>https://sachachua.com/blog/2026/09/semaine-du-24-au-30-aout/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Thu, 03 Sep 2026 13:31:17 GMT</pubDate>
    <category>french</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/09/semaine-du-24-au-30-aout/</guid>
		<description><![CDATA[<div id="outline-container-org50cb9cf" class="outline-3">
<h3 id="org50cb9cf"><a href="https://sachachua.com/blog/feed/index.xml#org50cb9cf">lundi 24</a></h3>
<div class="outline-text-3" id="text-org50cb9cf">
<p>
Nous avons joué à Donjons et Dragons. Cette fois, ma fille a eu envie d'une aventure où notre ours-hibou Snowy nous secourt avec l'aide de l'ogre amical Clonker. Nous avons eu aussi une autre aventure où le personnage de ma fille a exploré son parentage qui est un mélange de l'infernal et de l'abyssal. 
</p>

<p>
Pendant que je faisais les courses, j'ai utilisé Claude pour générer une page qui m'entraîne à distinguer la prononciation des paires minimales. 
</p>

<p>
Maintenant que l'orteil de ma fille n'est pas blessé, j'ai emmené ma fille au cours de gymnastique. 
</p>

<p>
J'ai terminé la première bande dessinée « Les Royaumes de Feu : La Prophétie ». Je suis étonnée que je l'aie globalement comprise. Le fait de l'avoir lu plusieurs fois en anglais (grâce à l'intérêt de ma fille) m'a été utile. J'ai demandé le reste des bandes dessinées dans la série à la bibliothèque. 
</p>
</div>
</div>
<div id="outline-container-org0d57ff3" class="outline-3">
<h3 id="org0d57ff3"><a href="https://sachachua.com/blog/feed/index.xml#org0d57ff3">mardi 25</a></h3>
<div class="outline-text-3" id="text-org0d57ff3">
<p>
Pendant mon cours de prononciation avec mon tuteur, nous avons travaillé sur la voyelle « o » telle que « port », « bord », « d'accord », « transporte ». Je vais essayer de prononcer avec moins d'air. En analysant mon enregistrement de ma séance de prononciation, j'ai remarqué que j'ai oublié de prononcer la voyelle nasale pour le mot « invité ».  
</p>

<p>
Ma fille et moi sommes allées au parc d'attractions. Cette fois, nous nous sommes focalisées sur les montagnes russes au lieu du parc aquatique. Nous écoutions des livres audio et ma fille jouait à Pokémon sur la Game Boy Advance pendant que nous attendions. 
</p>

<p>
Ma fille était un peu grincheuse avec moi parce que j'ai interrompu son marathon de Pokémon pour l'emmener se coucher. Elle a refusé et elle s'est mise à lire une bande dessinée. Je pense que pour elle, il faut que je sois à côté d'elle pendant au moins un épisode avant qu'elle ne soit prête à faire notre routine de soir. Ben, j'ai aussi envie de temps personnel après une journée chargée. 
</p>
</div>
</div>
<div id="outline-container-org35ed496" class="outline-3">
<h3 id="org35ed496"><a href="https://sachachua.com/blog/feed/index.xml#org35ed496">mercredi 26</a></h3>
<div class="outline-text-3" id="text-org35ed496">
<p>
J'ai recherché des informations sur la paperasse néerlandaise. 
</p>

<p>
J'ai emmené ma fille au parc pour jouer avec ses amies. Elles ont joué avec le seau de barbe à papa. Malheureusement, je l'ai oublié au parc. 
</p>

<p>
J'ai préparé des questions pour Fabrice pendant que les filles jouaient. 
</p>
</div>
</div>
<div id="outline-container-orgb96cf05" class="outline-3">
<h3 id="orgb96cf05"><a href="https://sachachua.com/blog/feed/index.xml#orgb96cf05">jeudi 27</a></h3>
<div class="outline-text-3" id="text-orgb96cf05">
<p>
J'ai encore une conversation avec Fabrice Niessen et Prot. Nous avons parlé de gptel, de la reconnaissance vocale, d'outil « dotfiler », des formations et des cours particuliers. 
</p>

<p>
Ma fille et moi avons joué à Donjons et Dragons dehors. 
</p>

<p>
Mon mari, ma fille et moi avons fait les courses ensemble. 
</p>

<p>
Ma belle-fille ne va pas nous accompagner demain au parc d'attractions, donc ce sera juste ma fille et moi. 
</p>
</div>
</div>
<div id="outline-container-org03aa321" class="outline-3">
<h3 id="org03aa321"><a href="https://sachachua.com/blog/feed/index.xml#org03aa321">vendredi 28</a></h3>
<div class="outline-text-3" id="text-org03aa321">
<p>
Ma fille et moi sommes allées au parc d'attractions très, très tôt. Nous y sommes arrivées exactement à l'heure d'ouverture. Grâce à nos abonnements saisonniers, nous avons pu monter les montagnes russes Vortex et Yukon Striker sans trop d'attente. Nous avons aussi profité d'un accès anticipé au parc aquatique. Ma fille s'est amusée avec les montagnes russes lancées comme Backlot Stunt Coaster. 
</p>

<p>
Pendant que nous allions au parc d'attractions en métro, j'ai étudié mes cartes de mémoire françaises et j'ai travaillé sur mon brouillon pour le Carnaval d'Emacs. 
</p>

<p>
Nous avons regardé le film « Donjons et Dragons : L'Honneur des voleurs » à la maison. 
</p>
</div>
</div>
<div id="outline-container-org8d270ca" class="outline-3">
<h3 id="org8d270ca"><a href="https://sachachua.com/blog/feed/index.xml#org8d270ca">samedi 29</a></h3>
<div class="outline-text-3" id="text-org8d270ca">
<p>
J'ai déplacé mon microphone à gauche de mon bureau et j'ai changé le gain. 
</p>

<p>
J'ai préparé des lasagnes pour mon ami. 
</p>

<p>
J'étais un peu fatiguée aujourd'hui. 
</p>

<p>
La bataille dans Donjons et Dragons était trop dure, donc nous avons fui. 
</p>

<p>
Ma fille et moi sommes allées à la bibliothèque pour chercher beaucoup de livres. Nous avons fait aussi des courses. 
</p>

<p>
J'ai publié mon article sur la gestion d'information pour le Carnaval d'Emacs d'août 2026.  
</p>
</div>
</div>
<div id="outline-container-orge1b3adb" class="outline-3">
<h3 id="orge1b3adb"><a href="https://sachachua.com/blog/feed/index.xml#orge1b3adb">dimanche 30</a></h3>
<div class="outline-text-3" id="text-orge1b3adb">
<p>
Ma fille n'a pas voulu aller à la séance de Donjons et Dragons au magasin parce que nos personnages sont au huitième niveau et elle s'est habituée aux spots puissants comme Boule de feu. (Les personnages au magasin sont au quatrième niveau.) Nous avons joué une aventure de protéger Keff contre un assassinat. 
</p>

<p>
Ma fille et mon mari ont préparé des lo mai gai. 
</p>

<p>
J'ai emmené ma fille au cours de gymnastique. 
</p>

<p>
J'ai traduit mon article sur les graphes de connaissances vers l'anglais. 
</p>

<p>
Mon mari a préparé la paperasse pour l'attestation de résidence pour l'école de ma fille. 
</p>

<p>
J'ai apporté des lasagnes à mon ami. Je l'ai aussi aidé à faire la vaisselle. 
</p>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/09/semaine-du-24-au-30-aout/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F09%2Fsemaine-du-24-au-30-aout%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		</item><item>
		<title>Semaine du 17 au 23 août</title>
		<link>https://sachachua.com/blog/2026/09/semaine-du-17-au-23-aout/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Thu, 03 Sep 2026 13:21:24 GMT</pubDate>
    <category>french</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/09/semaine-du-17-au-23-aout/</guid>
		<description><![CDATA[<div id="outline-container-org6c0440e" class="outline-3">
<h3 id="org6c0440e"><a href="https://sachachua.com/blog/feed/index.xml#org6c0440e">lundi 17</a></h3>
<div class="outline-text-3" id="text-org6c0440e">
<p>
J'ai envoyé de nouveau des documents aux Philippines pour les actions. En guise de récompense après la tâche, j'ai mangé de la crème glacée. 
</p>

<p>
J'ai emmené ma fille à la médecin pour le rendez-vous sur un diagnostic potentiel d'autisme. Il s'est avéré qu'il n'avait pas besoin d'elle là-bas, donc elle s'est occupée avec un livre de Donjons et Dragons pendant que je parlais avec la médecin. Elle a pensé que ma fille n'a pas le TDAH, mais elle peut l'évaluer pour l'autisme. La médecin m'a conseillé de faire en sorte qu'elle doive participer à l'école, je dois mettre une heure du coucher, ça pourrait marcher si je mets un tableau de comportement pour l'encourager à participer à l'école&hellip; Je ne sais pas si c'est un bon chemin pour nous. La médecin m'a dit qu'il n'y a pas de choix, elle doit aller à l'école. Mais je sais qu'il y a d'autres alternatives et l'école n'est pas forcément parfaite en l'état. Nous pouvons peut-être négocier des changements, des adaptations, et si c'est impossible, je préfère expérimenter ensemble au lieu de me mettre contre elle. Je ne crois pas qu'elle choisit de devenir grincheuse quand l'école a un remplaçant. Elle a raison. Le rythme de l'école est trop lent quand un remplaçant a du mal avec la technologie, il n'a pas de vraie leçon, des camarades de ma fille font des bêtises&hellip; Personne ne profite dans cette situation. 
</p>

<p>
Ma fille a joué de nouveau en tant que la meneuse de jeu. Elle nous a téléporté à Thay pour chercher Nibbles, le wolpertinger de son amie. Nous avons battu deux batailles. 
</p>
</div>
</div>
<div id="outline-container-orge5e7112" class="outline-3">
<h3 id="orge5e7112"><a href="https://sachachua.com/blog/feed/index.xml#orge5e7112">mardi 18</a></h3>
<div class="outline-text-3" id="text-orge5e7112">
<p>
J'ai partagé mes notes de notre rendez-vous hier matin avec la médecin à mon mari. Nous avons discuté de la neuroatypie, et il a recherché des outils. Ma fille voulait un nouvel objet anti-stress, donc mon mari a trouvé un dessin pour en imprimer un en 3d. Nous sommes allés à la bibliothèque. Une fois rentrés, mon mari a ajouté des touches de clavier à l'objet. 
</p>

<p>
J'ai préparé des petits pains à l'adzuki. 
</p>

<p>
J'ai une séance de prononciation avec mon tuteur. En plus des virelangues, il m'a donné un article sur l'expression « la veille du soir ».  
</p>
</div>
</div>
<div id="outline-container-orgab22e12" class="outline-3">
<h3 id="orgab22e12"><a href="https://sachachua.com/blog/feed/index.xml#orgab22e12">mercredi 19</a></h3>
<div class="outline-text-3" id="text-orgab22e12">
<p>
Nous avons cherché la poterie de ma fille. 
</p>

<p>
J'ai aussi cherché beaucoup de livres à la bibliothèque pour ma fille. Elle a fini par collecter 12 autocollants pour le programme de lecture d'été.  
</p>
</div>
</div>
<div id="outline-container-org0f86bfe" class="outline-3">
<h3 id="org0f86bfe"><a href="https://sachachua.com/blog/feed/index.xml#org0f86bfe">jeudi 20</a></h3>
<div class="outline-text-3" id="text-org0f86bfe">
<p>
J'ai acheté des abonnements saisonniers pour moi et ma fille, et je l'ai emmenée au parc d'attractions. Nous avons monté de nouveau les montagnes russes Leviathan et quelques manèges. Nous avons aussi joué au parc aquatique, mais il faisait un peu froid, donc nous avons repassé aux manèges.  
</p>

<p>
J'ai eu une diffusion en direct en français avec Abdallah Maouche et Prot. 
</p>

<p>
Le lave-vaisselle a fait une erreur F1. Mon mari l'a réparé. 
</p>

<p>
Ma fille m'a dit que quand elle lit un long texte, les phrases nagent dans son cerveau. 
</p>
</div>
</div>
<div id="outline-container-org80e672b" class="outline-3">
<h3 id="org80e672b"><a href="https://sachachua.com/blog/feed/index.xml#org80e672b">vendredi 21</a></h3>
<div class="outline-text-3" id="text-org80e672b">
<p>
J'ai une séance de conversation avec mon tuteur. Petit à petit, je m'habitue à la conversation. Je n'ai que consulté mes notes quelques fois. Nous avons parlé de films, de la conduite et de mes interviews d'Emacs. 
</p>

<p>
Ma fille et moi sommes allées au musée Power Plant pour voir l'exposition Coloured Rainbows, ce qui est conçu pour permettre aux enfants de jouer avec les œuvres. Ma fille s'est amusée aussi avec les fines gouttes à la place. 
</p>

<p>
Ma fille a joué en tant que la meneuse de jeu pour moi. 
</p>

<p>
J'ai lu quelques pages du livre Les Royaumes de Feu à voix haute à ma fille. 
</p>
</div>
</div>
<div id="outline-container-org82d69ea" class="outline-3">
<h3 id="org82d69ea"><a href="https://sachachua.com/blog/feed/index.xml#org82d69ea">samedi 22</a></h3>
<div class="outline-text-3" id="text-org82d69ea">
<p>
J'ai apporté du bulgogi et d'autres aliments à mon ami qui est malade. Mon mari et ma fille m'ont accompagnée afin que nous continuions à Midoco, un magasin qui propose des cahiers et d'autres produits cool. Nous sommes allés à pied à un autre magasin pour chercher un jouet antistress Needoh qui est le préféré de ma fille, mais c'était en rupture de stock à cause du buzz. 
</p>

<p>
J'ai lu quelques pages de Les Royaumes de Feu avec ma fille. Ça m'a intéressée. 
</p>

<p>
Nous avons célébré le demi-anniversaire de notre fille avec du s'mores. 
</p>

<p>
J'ai utilise l'IA pour générer une liste de phrases sur Emacs pour essayer la technique des îles de langue. Je l'ai téléversée à Lute pour saisir les nouveaux mots. 
</p>
</div>
</div>
<div id="outline-container-org127ddc1" class="outline-3">
<h3 id="org127ddc1"><a href="https://sachachua.com/blog/feed/index.xml#org127ddc1">dimanche 23</a></h3>
<div class="outline-text-3" id="text-org127ddc1">
<p>
J'ai corrigé la transcription de ma conversation avec Abdallah Maouche et Prot. Cette fois, j'ai téléversé le fichier audio à Gemini Notebook pour comparer avec ma version corrigée. La documentation de Gemini Notebook indique que le moteur transcrit l'audio et il utilise seulement la transcription. D'abord, l'IA était confuse par les deux transcriptions, donc il fallait que je spécifie le nom du fichier de ma transcription. Après avoir fait ça, cette manière me permet de corriger des erreurs et des omissions dans ma transcription. 
</p>

<p>
Nous avons dessiné une carte et nous sommes allées à la fête prénatale du neveu de mon mari. Il y avait beaucoup de personnes. 
</p>

<p>
J'ai emmené ma fille au cours de gymnastique aérienne. Elle aime le cerceau plutôt que les soies. 
</p>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/09/semaine-du-17-au-23-aout/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F09%2Fsemaine-du-17-au-23-aout%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		</item><item>
		<title>Semaine du 10 au 16 août</title>
		<link>https://sachachua.com/blog/2026/09/semaine-du-10-au-16-aout/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Thu, 03 Sep 2026 13:09:05 GMT</pubDate>
    <category>french</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/09/semaine-du-10-au-16-aout/</guid>
		<description><![CDATA[<div id="outline-container-orge55430e" class="outline-3">
<h3 id="orge55430e"><a href="https://sachachua.com/blog/feed/index.xml#orge55430e">lundi 10</a></h3>
<div class="outline-text-3" id="text-orge55430e">
<p>
Ma fille a du mal à l'orteil, donc nous sommes restées à la maison et nous avons joué à Donjons et Dragons. Elle a terminé l'arc de Kessandra et elle a obtenu le sixième niveau.  
</p>
</div>
</div>
<div id="outline-container-orgba1a1a1" class="outline-3">
<h3 id="orgba1a1a1"><a href="https://sachachua.com/blog/feed/index.xml#orgba1a1a1">mardi 11</a></h3>
<div class="outline-text-3" id="text-orgba1a1a1">
<p>
J'ai emmené ma fille à Horsecapades pour voir le spectacle gratuit, mais il était trop bruyant pour ma fille, donc après une courte exploration et des manèges, je l'ai emmenée au restaurant sushi pour déjeuner. Malheureusement, elle a fait tomber une moitié de nos sushis, mais ce n'était pas grave. Je lui ai dit que c'est la raison pour laquelle nous avons une caisse d'oups pour gérer tranquillement ces accidents. 
</p>

<p>
Ma fille et moi avons joué l'aventure Maid in Waterdeep adaptée au sixième niveau. 
</p>

<p>
Pendant ma séance de prononciation, j'ai posé des questions sur le son « t » dans « enfin accepté » que mon tuteur m'avait enseigné la semaine dernière. J'ai voulu savoir le nom de ce truc pour chercher des règles. Mes recherches simples ont dit que c'était une fausse liaison qui s'appelle cuir et qui est courante, mais il y a aussi des articles qui critiquent le truc. Il a dit que c'est naturel pour lui, mais ce n'est pas obligatoire, donc je le laisse pour le moment. 
</p>
</div>
</div>
<div id="outline-container-orga96f7ed" class="outline-3">
<h3 id="orga96f7ed"><a href="https://sachachua.com/blog/feed/index.xml#orga96f7ed">mercredi 12</a></h3>
<div class="outline-text-3" id="text-orga96f7ed">
<p>
Il pleuvait, donc ma fille et moi sommes restées à la maison et nous avons joué à Donjons et Dragons. Nous avons commencé l'aventure Waterdeep : Tavern Defense. 
</p>

<p>
J'ai préparé mes questions pour notre conversation d'Emacs Chat demain. 
</p>

<p>
Ma fille a perdu une partie de son jeu à cause d'un plantage. Elle était un peu grincheuse, mais elle a continué. 
</p>

<p>
Ma fille a appris à ses dépens la nécessité de sauver fréquemment en jouant à Pokémon. Elle était déçue, mais elle a persisté. 
</p>

<p>
J'ai fini de regarder tous les épisodes de Lupin avec les sous-titres français. 
</p>

<p>
J'ai préparé des wontons. 
</p>
</div>
</div>
<div id="outline-container-org62e91a0" class="outline-3">
<h3 id="org62e91a0"><a href="https://sachachua.com/blog/feed/index.xml#org62e91a0">jeudi 13</a></h3>
<div class="outline-text-3" id="text-org62e91a0">
<p>
Mon mari a rédecouvert des dahlias dans notre sous-sol. Nous les avons plantés.  
</p>

<p>
Pendant que ma fille jouait avec son amie, j'ai lu un livre, aidé une autre enfant à créer son propre profil de Donjons et Dragons et appris à une autre à dessiner sur Procreate sur mon iPad. 
</p>

<p>
J'ai fait une diffusion en direct avec Fabrice Niessen et Prot sur Emacs. Même si le sous-titrage automatique du navigateur n'a pas marché, nous avons eu une conversation débridée. J'ai travaillé un peu sur les sous-titres après la conversation et j'ai planifié une autre conversation. 
</p>
</div>
</div>
<div id="outline-container-org6f63f3c" class="outline-3">
<h3 id="org6f63f3c"><a href="https://sachachua.com/blog/feed/index.xml#org6f63f3c">vendredi 14</a></h3>
<div class="outline-text-3" id="text-org6f63f3c">
<p>
Nous avons joué à Donjons et Dragons en utilisant le module Wolpertinger, Wererat - Well. 
</p>

<p>
J'ai apporté des pâtes aux saucisses, aux tomates, aux courgettes et aux poivrons à mon ami qui m'a dit qu'il apprécie beaucoup l'aide à manger des verts. 
</p>

<p>
J'ai eu une séance de conversation avec mon tuteur. 
</p>
</div>
</div>
<div id="outline-container-org087f33e" class="outline-3">
<h3 id="org087f33e"><a href="https://sachachua.com/blog/feed/index.xml#org087f33e">samedi 15</a></h3>
<div class="outline-text-3" id="text-org087f33e">
<p>
Ma fille a joué en tant que la meneuse du jeu avec l'aide de l'IA. 
</p>

<p>
Nous sommes allées à la bibliothèque et au supermarché. 
</p>

<p>
Ma fille m'a dit qu'elle avait toujours mal à l'orteil. J'ai pris un rendez-vous avec la médecin et j'ai annulé le cours de gymnastique lundi. 
</p>
</div>
</div>
<div id="outline-container-org6b0289e" class="outline-3">
<h3 id="org6b0289e"><a href="https://sachachua.com/blog/feed/index.xml#org6b0289e">dimanche 16</a></h3>
<div class="outline-text-3" id="text-org6b0289e">
<p>
Il n'y avait pas d'autres enfants pour le jeu de Donjons et Dragons, donc c'était annulé. 
</p>

<p>
J'ai oublié de mettre une minuterie avant son cours de gymnastique parce que ma fille m'a demandé plus d'aventures de Donjons et Dragons. Je lui ai proposé de l'emmener au gymnase un peu en retard, mais elle a refusé. Mais progrès : elle n'est pas partie furieuse ou grincheuse, elle est restée sur le canapé et elle a regardé Pokémon. Moi aussi, après un peu d'auto-recrimination, j'ai continué avec la routine du soir. 
</p>

<p>
J'ai programmé mon téléphone afin que mes notifications d'événement aient des alarmes qui continuent jusqu'à ce que je l'arrête. 
</p>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/09/semaine-du-10-au-16-aout/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F09%2Fsemaine-du-10-au-16-aout%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		</item><item>
		<title>Semaine du 3 au 9 août</title>
		<link>https://sachachua.com/blog/2026/09/semaine-du-3-au-9-aout/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Thu, 03 Sep 2026 13:00:38 GMT</pubDate>
    <category>french</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/09/semaine-du-3-au-9-aout/</guid>
		<description><![CDATA[<div id="outline-container-orgb758e5f" class="outline-3">
<h3 id="orgb758e5f"><a href="https://sachachua.com/blog/feed/index.xml#orgb758e5f">lundi 3</a></h3>
<div class="outline-text-3" id="text-orgb758e5f">
<p>
Il y avait une fête civique aujourd'hui, donc ma fille n'a pas eu son cours de gymnastique. Nous sommes restés à la maison et nous avons joué à Donjons et Dragons. 
</p>

<p>
J'ai mis à jour le mot de passe de ma mère, qui s'est accidentellement abonnée à quelque chose sur son téléphone. J'ai aussi vérifié mon identité à l'une des compagnies d'assurance-vie. 
</p>

<p>
Mon mari nous a enseigné des mots chinois. 
</p>

<p>
J'ai continué mon expérience avec l'utilisation de l'IA pour pratiquer la conversation en jouant au jeu du rôle. Je dois modifier le prompt pour éviter ou au moins réduire la flatterie et la flagornerie. D'un côté, c'est plus pratique parce que je peux peaufiner la grammaire et le vocabulaire à mon propre rythme et indépendamment des difficultés d'expression orale ou à la reconnaissance vocale. D'un autre côté, je pense qu'un tuteur est meilleur parce que c'est un vrai échange d'idées. C'est possible de continuer avec les deux façons. 
</p>
</div>
</div>
<div id="outline-container-org0c8979b" class="outline-3">
<h3 id="org0c8979b"><a href="https://sachachua.com/blog/feed/index.xml#org0c8979b">mardi 4</a></h3>
<div class="outline-text-3" id="text-org0c8979b">
<p>
J'ai emmené ma fille au Bidaasige Park pour explorer les nouvelles pistes cyclables et pour jouer là-bas. 
</p>

<p>
J'ai lu la configuration de mon invité pour la diffusion en direct jeudi. 
</p>

<p>
J'ai une séance de conversation avec mon tuteur. Après cela, j'ai lu la transcription et j'ai pris des notes. 
</p>
</div>
</div>
<div id="outline-container-orgb51e71d" class="outline-3">
<h3 id="orgb51e71d"><a href="https://sachachua.com/blog/feed/index.xml#orgb51e71d">mercredi 5</a></h3>
<div class="outline-text-3" id="text-orgb51e71d">
<p>
Nous avons fait du vélo jusqu'à la bibliothèque Beaches et l'appartement d'une bénéficiaire que mon mari a voulu aider. C'est très loin, mais le moteur l'a géré. 
</p>

<p>
Nous avons mangé des pizzas. 
</p>

<p>
J'ai préparé mon introduction et des questions pour mon interview demain matin. 
</p>
</div>
</div>
<div id="outline-container-orge9663a3" class="outline-3">
<h3 id="orge9663a3"><a href="https://sachachua.com/blog/feed/index.xml#orge9663a3">jeudi 6</a></h3>
<div class="outline-text-3" id="text-orge9663a3">
<p>
J'ai survéçu à mon premier épisode d'Emacs Chat en français ! J'ai lancé la diffusion en direct en retard, vingt minutes après le début, mais heureusement, j'ai enregistré localement toute la conversation. Maintenant j'attends la transcription et je vais essayer de la corriger. Je l'ai adoré. Même si j'avais parfois besoin de la traduction automatique que mon navigateur Chrome m'a donnée pendant la conversation, je peux comprendre la plupart des mots et même les récapituler. 
</p>

<p>
J'ai fait les courses en vélo. 
</p>
</div>
</div>
<div id="outline-container-org1e2e902" class="outline-3">
<h3 id="org1e2e902"><a href="https://sachachua.com/blog/feed/index.xml#org1e2e902">vendredi 7</a></h3>
<div class="outline-text-3" id="text-org1e2e902">
<p>
Ma sœur nous a envoyé un cadeau d'anniversaire qui comprenait de différentes collations. 
</p>

<p>
J'ai apporté du chili, des fruits et des carottes à mon ami. Il y a d'autres amis de mon ami qui lui rendaient une visite, donc j'ai bavardé un peu. 
</p>

<p>
Nous avons joué à Donjons et Dragons avec mes nièces et ma sœur qui leur rendait une visite. Nous avons été attrapés par trois ogres. Je suis une magicienne humaine et ma fille est sa clerc naine. Elle et moi sommes tombées dans la bataille et mes nièces nous ont aidées.  
</p>

<p>
J'ai eu un rendez-vous avec mon tuteur. Nous nous sommes concentrés sur les liaisons et sur les enchaînements. J'ai extrait les dernières tentatives dans une vidéo pour les réécouter plus facilement. 
</p>
</div>
</div>
<div id="outline-container-org43a2aea" class="outline-3">
<h3 id="org43a2aea"><a href="https://sachachua.com/blog/feed/index.xml#org43a2aea">samedi 8</a></h3>
<div class="outline-text-3" id="text-org43a2aea">
<p>
J'ai commencé à traduire les sous-titres vers l'anglais. 
</p>

<p>
J'ai fait un peu de sport. 
</p>

<p>
J'ai mis à jour mon journal et j'ai analysé mon vocabulaire. 
</p>

<p>
J'ai joué à Minecraft Donjons et Dragons avec ma fille. 
</p>
</div>
</div>
<div id="outline-container-org367ad3e" class="outline-3">
<h3 id="org367ad3e"><a href="https://sachachua.com/blog/feed/index.xml#org367ad3e">dimanche 9</a></h3>
<div class="outline-text-3" id="text-org367ad3e">
<p>
Deux histoires sur Donjons et Dragons : ma fille a voulu aller au magasin pour jouer. Il y avait une autre enfant. Le meneur de jeu avait préparé un donjon d'un génie. Ma fille et l'autre enfant (qui jouait comme artificier) ont exploré le donjon, mais pendant le combat, ils ont fui. C'était marrant. Le soir, une fois rentrées, nous avons continué notre aventure. J'ai utilisé l'IA pour générer des idées pour notre aventure et puis ma fille l'a modifiée. 
</p>

<p>
Ma fille a voulu aller au cours de gymnastique même si elle avait mal à l'orteil.  
</p>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/09/semaine-du-3-au-9-aout/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F09%2Fsemaine-du-3-au-9-aout%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		</item><item>
		<title>Emacs Chat 30: Fabrice Niessen (en français, partie 2)</title>
		<link>https://sachachua.com/blog/2026/08/27-aout-emacs-chat-fabrice-niessen-en-francais-partie-2/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Tue, 01 Sep 2026 15:58:31 GMT</pubDate>
    <category>emacs-chat</category>
<category>emacs-chat-podcast</category>
<category>emacs</category>
<category>french</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/08/27-aout-emacs-chat-fabrice-niessen-en-francais-partie-2/</guid><enclosure url="https://archive.org/details/emacs-chat-30-fabrice-niessen/emacs-chat-30-fabrice-niessen.mp3"
               length="63281038"
               type="audio/mpeg" />
		<description><![CDATA[<p>
Nous avons parlé en direct avec <a href="https://github.com/fniessen">Fabrice Niessen</a> d'Emacs pour la deuxième fois. <a href="https://github.com/fniessen/emacs-chat-sacha-chua">Voici ses notes</a>.
</p>

<p>
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/4m0G_ASLUXY?enablejsapi=1" frameborder="0" allowfullscreen=""></iframe><a href="https://youtube.com/live/4m0G_ASLUXY">Watch on YouTube</a></div>
<p></p>

<p>
Correction : J'ai voulu dire <a href="https://speaches.ai/">Speaches</a> (un serveur de reconnaissance vocale) au lieu de speechd (un serveur de synthèse vocale)
</p>

<p>
Voici notre conversation précédente : <a href="https://sachachua.com/blog/2026/08/13-aout-emacs-chat-fabrice-niessen/">Emacs Chat 28: Fabrice Niessen (en français)</a>
</p>
<div id="outline-container-emacs-chat-30-fabrice-niessen-en-fran-ais-partie-2-chapitres" class="outline-3">
<h3 id="emacs-chat-30-fabrice-niessen-en-fran-ais-partie-2-chapitres"><a href="https://sachachua.com/blog/feed/index.xml#emacs-chat-30-fabrice-niessen-en-fran-ais-partie-2-chapitres">Chapitres</a></h3>
<div class="outline-text-3" id="text-emacs-chat-30-fabrice-niessen-en-fran-ais-partie-2-chapitres">
<p>
</p><ul class="org-ul">
<li><span class="audio-time" data-start="0.000" data-stop="2.848">0:00</span> Introduction</li>

<li><span class="audio-time" data-start="180.286" data-stop="185.290">3:00</span> gptel</li>
<li><span class="audio-time" data-start="822.985" data-stop="825.990">13:42</span> diff</li>
<li><span class="audio-time" data-start="1072.135" data-stop="1075.018">17:52</span> gptel-commit-message</li>
<li><span class="audio-time" data-start="1410.085" data-stop="1415.911">23:30</span> docstrings</li>
<li><span class="audio-time" data-start="1443.632" data-stop="1446.796">24:03</span> hs-minor-mode - hideshow</li>
<li><span class="audio-time" data-start="1863.179" data-stop="1864.582">31:03</span> Super-whisper</li>
<li><span class="audio-time" data-start="2481.276" data-stop="2484.981">41:21</span> Dotfiler</li>
<li><span class="audio-time" data-start="3552.670" data-stop="3555.214">59:12</span> Enseignement d'Emacs</li>
</ul>

<p></p>
</div>
</div>
<div id="outline-container-emacs-chat-30-fabrice-niessen-en-fran-ais-partie-2-la-transcription-l-g-rement-corrig-e" class="outline-3">
<h3 id="emacs-chat-30-fabrice-niessen-en-fran-ais-partie-2-la-transcription-l-g-rement-corrig-e"><a href="https://sachachua.com/blog/feed/index.xml#emacs-chat-30-fabrice-niessen-en-fran-ais-partie-2-la-transcription-l-g-rement-corrig-e">La transcription légèrement corrigée</a></h3>
<div class="outline-text-3" id="text-emacs-chat-30-fabrice-niessen-en-fran-ais-partie-2-la-transcription-l-g-rement-corrig-e">
<details class="code-details"><a name="ID-emacs-chat-30-transcript"></a><summary>Details</summary>
<p>
</p><div class="full-transcript"><p></p><div class="transcript-heading"><span class="audio-time" data-start="0.000000">0:00</span> <strong>Introduction
</strong></div><p></p><span class="audio-time caption" data-speaker="Prot" data-start="0.000000" data-stop="2.848000"><strong class="speaker-name">Prot:</strong>  Tu peux prendre le lien correct cette fois.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="6.254000" data-stop="8.498000"><strong class="speaker-name">Fabrice:</strong>  Ah, voilà, je suis prêt avec.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="8.518000" data-stop="9.260000"><strong class="speaker-name">Sacha:</strong>  Ah, ok.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="10.121000" data-stop="10.402000">Ok.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="11.103000" data-stop="13.327000">Nous sommes en direct.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="14.389000" data-stop="16.313000"><strong class="speaker-name">Prot:</strong>  Ah, nous sommes en direct.</span> <span class="audio-time caption" data-speaker="Prot" data-start="16.333000" data-stop="18.637000">Très bien.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="19.959000" data-stop="23.486000"><strong class="speaker-name">Sacha:</strong>  Donc, je vais passer à vos notes.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="24.968000" data-stop="30.919000">Bonjour à toutes et à tous et bienvenue au 30e</span> <span class="audio-time caption" data-speaker="Sacha" data-start="30.939000" data-stop="33.304000">épisode d'Emacs Chat.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="33.384000" data-stop="36.831000">C'est la suite de notre conversation avec Fabrice Nissen.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="37.772000" data-stop="41.740000">Merci de nouveau Fabrice d'être là et merci</span> <span class="audio-time caption" data-speaker="Sacha" data-start="41.760000" data-stop="44.445000">également à Prot de nous rejoindre.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="45.168000" data-stop="46.570000">Donc, on continue.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="47.392000" data-stop="49.956000">Lors de la conversation précédente, nous avons</span> <span class="audio-time caption" data-speaker="Sacha" data-start="49.996000" data-stop="54.644000">parlé de ton expérience sur Windows et sur WSL,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="54.664000" data-stop="61.215000">des thèmes de publication vers HTML ou vers PDF,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="62.077000" data-stop="67.125000">de ton kit de configuration Leuven, des petites améliorations</span> <span class="audio-time caption" data-speaker="Sacha" data-start="67.105000" data-stop="73.591000">et des automatisations et des formations et des</span> <span class="audio-time caption" data-speaker="Sacha" data-start="73.631000" data-stop="76.693000">cours particuliers en français, en anglais, en</span> <span class="audio-time caption" data-speaker="Sacha" data-start="76.833000" data-stop="78.715000">néerlandais et en espagnol.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="78.775000" data-stop="82.679000">C'est incroyable, ça!</span> <span class="audio-time caption" data-speaker="Sacha" data-start="83.880000" data-stop="87.102000">Du coup, si ça ne te dérange pas, j'essaie d'en</span> <span class="audio-time caption" data-speaker="Sacha" data-start="87.122000" data-stop="92.467000">savoir plus sur ton flux de travail, puis repasser</span> <span class="audio-time caption" data-speaker="Sacha" data-start="92.487000" data-stop="97.011000">à une discussion sur l'enseignement d'Emacs,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="97.379000" data-stop="100.224000">de nombreux changements et de grandes</span> <span class="audio-time caption" data-speaker="Sacha" data-start="101.305000" data-stop="105.612000">incertitudes à l'époque de l'IA.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="105.632000" data-stop="106.273000">Qu'en penses-tu?</span> <span class="audio-time caption" data-speaker="Sacha" data-start="112.844000" data-stop="115.708000">Depuis notre conversation, tu as ajouté beaucoup</span> <span class="audio-time caption" data-speaker="Sacha" data-start="115.728000" data-stop="120.636000">de fonctions, d'outils, de préréglages (presets)</span> <span class="audio-time caption" data-speaker="Sacha" data-start="120.768000" data-stop="123.513000">de gptel à ta configuration.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="123.514000" data-stop="126.533000">C'est un sujet très tendance</span> <span class="audio-time caption" data-speaker="Sacha" data-start="126.534000" data-stop="130.566000">YouTube a évidemment beaucoup de video</span> <span class="audio-time caption" data-speaker="Sacha" data-start="130.567000" data-stop="136.432000">de ce genre en anglais, mais pas encore en français, je pense.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="136.433000" data-stop="141.200000">Peux-tu nous montrer ton flux de travail avec l'IA sur Emacs?</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="141.201000" data-stop="145.733000"><strong class="speaker-name">Fabrice:</strong>  Volontiers.  Merci pour l'invitation et l'image bouge.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="145.734000" data-stop="149.897000">Merci pour l'invitation pour cette trentième fois.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="150.485000" data-stop="152.167000">Donc, je vais partager mon écran.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="153.208000" data-stop="153.568000"><strong class="speaker-name">Prot:</strong>  Merci.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="153.768000" data-stop="158.032000"><strong class="speaker-name">Fabrice:</strong>  Alors, je tape share, voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="160.855000" data-stop="164.579000">Et donc, ce sera celui-ci.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="166.761000" data-stop="170.284000">Est-ce que vous voyez mon écran ?</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="170.304000" data-stop="172.586000"><strong class="speaker-name">Prot:</strong>  Oui, je peux voir ton écran.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="176.510000" data-stop="179.113000"><strong class="speaker-name">Fabrice:</strong>  Ok, très bien.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="179.133000" data-stop="179.513000">Très bien.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="180.000000">3:00</span> <strong>gptel</strong></div><p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="180.286000" data-stop="185.290000"><strong class="speaker-name">Fabrice:</strong> Donc en fait, sur gptel, j'utilise pas encore</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="185.310000" data-stop="187.813000">beaucoup, beaucoup, beaucoup, mais de plus en plus.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="189.094000" data-stop="193.538000">Je suis aussi un peu novice, un peu, mais j'ai</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="193.558000" data-stop="195.980000">effectivement, et récemment d'ailleurs, fait</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="196.300000" data-stop="201.105000">quelques petites améliorations de layout au standard.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="202.326000" data-stop="205.829000">Donc j'ai, par exemple, utilisé le raccourci</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="205.869000" data-stop="208.251000"><code>C-&lt;F1&gt;</code> pour lancer…</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="209.311000" data-stop="212.134000">Je n'ai pas lancé le chat.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="212.154000" data-stop="215.317000">Je vois que je n'ai pas ma dernière configuration.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="215.357000" data-stop="219.960000">C'est peut-être l'occasion aussi de parler,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="219.961000" data-stop="220.782000">juste un petit break.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="222.103000" data-stop="224.485000">Vous voyez que j'utilise Helm.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="224.505000" data-stop="227.968000">Je ne sais pas ce que vous utilisez vous.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="227.988000" data-stop="229.950000">Je suis extrêmement content de Helm, ce qui me</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="229.970000" data-stop="231.431000">permet de taper.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="231.732000" data-stop="234.354000">Je ne dois plus savoir où se trouve un fichier,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="235.055000" data-stop="235.996000">dans quel répertoire.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="236.116000" data-stop="238.558000">Il suffit que je connaisse quelques morceaux de son nom.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="239.230000" data-stop="242.514000">Et je vais retrouver directement le fichier ou le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="242.534000" data-stop="243.855000">buffer actif.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="244.616000" data-stop="248.460000">Donc ici c'est gptel et ce sera le point el.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="250.783000" data-stop="251.244000">Il est là.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="252.805000" data-stop="256.169000">Donc ici, je vais lancer et je vais faire <code>vb</code></span> <span class="audio-time caption" data-speaker="Fabrice" data-start="256.229000" data-stop="259.433000">rapidement pour le keychord <code>eval-buffer</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="260.414000" data-stop="261.395000">Voilà, donc il est évalué.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="261.435000" data-stop="262.717000">Donc je vais avoir un look un peu différent</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="262.737000" data-stop="265.980000">maintenant si je recommence.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="266.000000" data-stop="267.482000">Voilà, <code>C-&lt;F1&gt;</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="268.626000" data-stop="270.228000">Donc on peut lui dire bonjour.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="270.929000" data-stop="272.812000"><code>C-c C-c</code> pour envoyer.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="276.156000" data-stop="276.637000">Voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="276.657000" data-stop="277.678000">Et donc ici il répond.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="277.698000" data-stop="282.104000">Donc une petite utilisation que j'ai faite, c'est</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="282.585000" data-stop="285.509000">gptel-highlight-mode qui permet de mettre la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="285.549000" data-stop="289.414000">réponse avec un certain fond et une petite barre</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="289.434000" data-stop="292.919000">ici dans la frange pour bien identifier la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="292.939000" data-stop="294.481000">différence entre les questions et les réponses.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="295.863000" data-stop="297.165000">Je peux lui demander d'écrire</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="297.348000" data-stop="300.533000">Un exemple de code Python.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="306.522000" data-stop="308.325000">S'il fait comme d'habitude, il va faire la suite</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="308.345000" data-stop="311.149000">de Fibonacci.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="314.594000" data-stop="314.874000">Voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="315.415000" data-stop="317.478000">Et donc, qu'est-ce qu'il a fait ?</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="319.742000" data-stop="322.646000">Ah non, les nombres premiers.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="324.128000" data-stop="326.051000">Ici, c'est quelque chose que je commence à</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="326.071000" data-stop="329.197000">utiliser de plus en plus, le buffer de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="329.237000" data-stop="331.100000">conversation gptel.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="333.604000" data-stop="335.187000">Une petite customisation que j'ai faite.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="335.287000" data-stop="338.913000">D'ailleurs, j'ai envoyé un issue à l'auteur de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="338.953000" data-stop="341.698000">gptel pour éventuellement qu'il l'introduise</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="341.718000" data-stop="342.880000">directement dans...</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="343.231000" data-stop="347.896000">Dans gptel, c'est le fait de recoloriser les</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="347.936000" data-stop="351.420000">codes blocs dans les réponses en utilisant la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="351.440000" data-stop="353.883000">couleur que j'ai dans mon thème pour Org Mode.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="354.403000" data-stop="356.606000">Donc ici, c'est exactement comme dans un fichier</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="356.626000" data-stop="357.006000">Org Mode.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="357.687000" data-stop="359.489000">J'ai le fond jaune pour le code et les</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="359.529000" data-stop="363.073000">délimiteurs ici, de début et de fin, en gris.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="364.434000" data-stop="367.157000">Et ça, c'est très important, je trouve, pour</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="367.938000" data-stop="372.343000">mettre en évidence comme il faut le code bloc.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="372.998000" data-stop="375.080000">Et le fait, bon ici ce n'est pas de l'Emacs Lisp,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="375.361000" data-stop="377.003000">mais si j'avais demandé, si je pouvais demander</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="377.023000" data-stop="381.969000">de faire la version, donnez-moi la version de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="381.989000" data-stop="382.689000">l'Emacs Lisp.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="384.051000" data-stop="385.132000"><code>C-c C-c</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="388.717000" data-stop="391.740000">Et l'avantage évidemment de faire ici, donc à la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="391.780000" data-stop="393.642000">fin de la réponse, il y a un scroll automatique</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="394.143000" data-stop="395.705000">vers le bas.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="395.725000" data-stop="396.626000">Ah d'accord.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="396.893000" data-stop="403.359000">Et ce qu'il fait aussi, c'est qu'il fait un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="403.380000" data-stop="407.464000">formatting pour que ça reste moins de 80</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="409.085000" data-stop="410.126000">caractères.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="411.207000" data-stop="415.972000">Et donc ici, l'avantage, c'est que c'est dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="416.012000" data-stop="418.254000">Emacs et que c'est l'Emacs Lisp.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="418.274000" data-stop="421.297000">Je peux directement faire <code>C-x C-e</code>. Et je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="421.317000" data-stop="422.739000">pourrais tester les fonctions.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="424.040000" data-stop="424.841000">Je pourrais faire ici.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="426.155000" data-stop="432.513000">Ça me permet d'éviter de faire des copier-coller</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="432.613000" data-stop="435.923000">entre ChatGPT ou Copilot ou n'importe lequel.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="436.043000" data-stop="437.567000">Ici j'ai tout directement là dedans.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="439.011000" data-stop="440.636000">C'est extrêmement pratique.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="442.692000" data-stop="444.715000"><strong class="speaker-name">Sacha:</strong>  Tu as aussi des fonctions pour ajouter</span> <span class="audio-time caption" data-speaker="Sacha" data-start="445.076000" data-stop="450.004000">des contextes, des fonctions, d'autres choses</span> <span class="audio-time caption" data-speaker="Sacha" data-start="450.465000" data-stop="451.967000">dans ta configuration.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="452.788000" data-stop="459.780000">Au lieu d'utilisation de conversation buffer, tu</span> <span class="audio-time caption" data-speaker="Sacha" data-start="459.800000" data-stop="463.566000">as aussi utilisé les fonctionnalités gptel dans</span> <span class="audio-time caption" data-speaker="Sacha" data-start="463.646000" data-stop="465.409000">ton code.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="467.448000" data-stop="470.573000"><strong class="speaker-name">Fabrice:</strong>  Il y a le rewrite que j'utilise</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="470.593000" data-stop="473.437000">parfois, ou alors pour répondre avec le contexte,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="473.978000" data-stop="477.904000">il y a notamment le add context ou add context file.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="478.405000" data-stop="480.007000">Je n'ai pas encore beaucoup joué avec, donc je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="480.027000" data-stop="483.533000">sais qu'on peut aller dans Dired et puis faire</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="483.613000" data-stop="488.700000">gptel-add-file, add context file, je crois.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="488.720000" data-stop="491.485000">Et je l’ai déjà bindé sur <code>C-c g</code>, donc tout ce</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="491.504000" data-stop="493.708000">qui est <code>C-c g</code> et c’est gptel.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="494.312000" data-stop="499.119000">J’ai déjà utilisé le raccourci avec un petit <code>a</code>,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="499.139000" data-stop="503.204000">donc <code>C-c g a</code> pour ajouter du contexte.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="503.224000" data-stop="504.626000">Mais je ne l'ai pas encore vraiment utilisé, donc</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="504.646000" data-stop="509.031000">je n'ai pas encore beaucoup d'expérience avec.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="510.773000" data-stop="514.077000">Par contre, je fais parfois dans des fichiers, je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="514.097000" data-stop="518.663000">peux faire, si je prends un fichier Org, on peut</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="518.683000" data-stop="520.645000">aller dans le fichier ici avec mes petites notes</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="520.665000" data-stop="521.366000">d'aujourd'hui.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="522.831000" data-stop="525.774000">Ça pourrait m'arriver ici de dire je veux</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="525.994000" data-stop="529.678000">traduire ces deux paragraphes en anglais par</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="529.698000" data-stop="530.058000">exemple.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="530.839000" data-stop="531.760000">Je vais les sélectionner.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="532.561000" data-stop="536.865000">Je vais faire <code>C-u C-c RET</code> pour avoir le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="536.905000" data-stop="539.407000">menu de gptel.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="540.829000" data-stop="543.291000">Là, je vais changer la directive puisque la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="543.311000" data-stop="546.114000">directive ici c'est tu es un assistant, etc.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="546.134000" data-stop="547.415000">Je vais changer la directive.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="547.435000" data-stop="552.400000">Je vais en fait utiliser le <code>S</code>, Set System Message.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="553.443000" data-stop="557.327000">Là, j'ai une série de prompt, en fait, de system</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="557.387000" data-stop="562.031000">prompt, de directives, ça s'appelle, sous gptel.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="562.551000" data-stop="566.295000">Donc, une série de directives, de prompt qui sont prêts.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="567.936000" data-stop="569.538000">Mais ici, je vais faire un spécifique.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="569.558000" data-stop="571.760000">Donc, je vais encore faire une fois <code>s</code>. Et là, je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="571.780000" data-stop="573.241000">vais taper, par exemple, traduit.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="576.924000" data-stop="579.286000">Là, quand on a fini, on peut faire <code>C-c C-c</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="581.368000" data-stop="583.230000">Ici, on voit la directive qui est là.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="583.835000" data-stop="586.058000">Pour l'instant, si je ne change rien, il va</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="586.078000" data-stop="590.284000">envoyer ma sélection et il va insérer la réponse.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="590.304000" data-stop="591.686000">Là, je ne vois pas très bien.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="591.706000" data-stop="593.508000">Il faut que je déplace un truc.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="593.548000" data-stop="594.970000">Il va insérer la réponse à la fin.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="597.694000" data-stop="599.316000">Je pourrais faire ça, par exemple, pour voir</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="599.336000" data-stop="600.138000">comment il a traduit.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="600.158000" data-stop="603.923000">Comme ça, je garde au-dessus l'input.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="604.564000" data-stop="613.436000">Je vais faire effectivement <code>RET</code> ici.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="614.260000" data-stop="620.948000">Parfois, c'est un peu compliqué à lire.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="620.968000" data-stop="623.411000"><strong class="speaker-name">Prot:</strong>  Qu'est-ce qu'il m'a fait ?</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="623.431000" data-stop="624.393000"><strong class="speaker-name">Fabrice:</strong>  On dirait qu'il a pris plus de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="624.413000" data-stop="624.953000">lignes.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="624.973000" data-stop="629.980000"><strong class="speaker-name">Sacha:</strong>  Il y a un problème des démos en direct.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="630.000000" data-stop="631.742000"><strong class="speaker-name">Fabrice:</strong>  Je vais bien le refaire.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="631.762000" data-stop="633.504000"><code>C-u C-c RET</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="633.704000" data-stop="634.966000">Je vais bien sectionner ma région.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="635.987000" data-stop="637.509000">La directive est là.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="637.529000" data-stop="639.812000">Donc, je vais faire ici Enter.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="641.766000" data-stop="645.993000">Voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="646.013000" data-stop="655.247000">Donc j'ai vu que l'input était, la section était</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="655.287000" data-stop="658.712000">toujours sélectionnée, donc j’ai fait <code>C-w</code> pour</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="658.873000" data-stop="663.279000">l'entrée, et puis j'ai gardé ce qu'il y a.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="663.299000" data-stop="667.546000">Donc ici, voilà, typiquement, il a fait le job</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="667.646000" data-stop="670.170000">facilement, donc je suis nouveau restant dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="670.910000" data-stop="672.813000">Directement dans Emacs, on fait des copies-coller</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="672.833000" data-stop="677.681000">avec d'autres interfaces externes.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="678.182000" data-stop="682.209000"><strong class="speaker-name">Sacha:</strong>  Je vois que tu peux aussi remplacer la</span> <span class="audio-time caption" data-speaker="Sacha" data-start="682.249000" data-stop="686.095000">sélection avec les résultats ou peut-être</span> <span class="audio-time caption" data-speaker="Sacha" data-start="686.135000" data-stop="690.703000">rediriger l'output à un autre tampon pour</span> <span class="audio-time caption" data-speaker="Sacha" data-start="691.264000" data-stop="692.125000">comparaison.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="693.725000" data-stop="694.125000"><strong class="speaker-name">Fabrice:</strong>  Exact.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="694.145000" data-stop="697.949000">Donc, je n'ai pas encore tout utilisé, mais je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="697.969000" data-stop="699.871000">pourrais ici essayer.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="699.891000" data-stop="700.312000">On va essayer.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="700.332000" data-stop="702.214000">On va traduire en français, par exemple.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="703.014000" data-stop="704.896000">Donc, j'ai bien sélectionné.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="704.916000" data-stop="707.879000">Je vais faire <code>C-u C-c RET</code> pour avoir de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="707.899000" data-stop="708.580000">nouveau le menu.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="709.181000" data-stop="710.862000">Ou alors, M-x, j'ai fait tel menu.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="711.703000" data-stop="713.805000">Donc là, je vais changer et je vais mettre la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="713.845000" data-stop="716.588000">directive 2 fois S. Et cette fois-ci, je vais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="716.608000" data-stop="720.812000">traduire en français.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="721.553000" data-stop="723.495000"><code>C-c C-c</code>, voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="724.640000" data-stop="731.326000">Et donc, je vais mettre ici le respond in place.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="732.547000" data-stop="735.409000">Et donc, en théorie, il va écraser ma sélection</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="735.449000" data-stop="736.270000">par sa réponse.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="737.451000" data-stop="738.692000">Donc, je vais faire le <code>i</code> ici.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="739.773000" data-stop="741.975000">Et donc, en fait, il faut toujours lire la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="742.035000" data-stop="742.796000">dernière ligne ici.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="742.876000" data-stop="743.957000">On voit ce qu'il va faire.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="744.717000" data-stop="746.399000">C'est un résumé de ce qu'il va faire en fonction</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="746.419000" data-stop="747.380000">des options qu'on a choisi.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="747.400000" data-stop="749.782000">Donc ici, quand je vais faire ret, quand je vais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="749.802000" data-stop="752.905000">faire return, il va remplacer la sélection avec</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="752.925000" data-stop="753.465000">la réponse.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="754.238000" data-stop="756.560000">Donc je fais <code>RET</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="756.580000" data-stop="763.486000">Ah, et là j'ai peur.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="763.506000" data-stop="765.908000">The conversation must end with a user message.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="767.950000" data-stop="768.951000">Qu'est-ce qu'on va faire ?</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="768.971000" data-stop="769.992000">On va rester, on ne sait jamais.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="770.032000" data-stop="773.575000"><code>C-x C-x C-u RET</code>…</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="774.055000" data-stop="776.137000">Non, ce n'était pas ça.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="776.157000" data-stop="778.699000"><code>C-x u</code>. <code>C-x u</code>. Voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="778.739000" data-stop="781.141000"><code>C-x C-x</code> <code>C-u RET</code></span> <span class="audio-time caption" data-speaker="Fabrice" data-start="781.402000" data-stop="782.963000">Ben si, c'est ça.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="783.584000" data-stop="785.206000">Non, <code>C-u C-c RET</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="787.310000" data-stop="789.032000">Il y a trop de raccourcis.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="790.895000" data-stop="792.357000">Je fais la sélection, voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="793.319000" data-stop="796.123000"><code>C-u C-c RET</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="797.325000" data-stop="799.809000">J'ai mon menu, j'ai ma directive en haut qui est bonne.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="800.630000" data-stop="804.636000">Je vais faire le <code>i</code>, Replace, la sélection du</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="804.676000" data-stop="805.978000">response, <code>RET</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="807.120000" data-stop="808.041000">Bon, j'ai l'erreur.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="808.823000" data-stop="810.145000">Donc là, il faudrait que je regarde un peu plus.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="810.165000" data-stop="811.667000">Je n'ai pas beaucoup utilisé ça.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="812.710000" data-stop="817.056000">Et en fait, justement, sur le rewrite, il faut</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="817.357000" data-stop="819.580000">que j'utilise aussi un peu plus pour du texte et</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="819.620000" data-stop="820.161000">pour du code.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="820.562000" data-stop="822.965000">Et je sais qu'il y a plusieurs possibilités après.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="822.000000">13:42</span> <strong>diff</strong></div><p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="822.985000" data-stop="825.990000"><strong class="speaker-name">Fabrice:</strong> Il y a aussi moyen de dire, il va remplacer en</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="826.010000" data-stop="828.674000">théorie par le nouveau texte, mais il y a moyen</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="828.734000" data-stop="833.220000">de montrer aussi son changement sous forme de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="833.280000" data-stop="835.123000">diff ou de ediff.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="835.508000" data-stop="837.590000">Donc il y a moyen de dire accepte.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="837.770000" data-stop="839.733000">J’ai vu qu’après on peut faire <code>C-c C-a</code></span> <span class="audio-time caption" data-speaker="Fabrice" data-start="839.753000" data-stop="842.493000">pour accepte, <code>C-c C-e</code> pour ediff,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="842.494000" data-stop="843.937000"><code>C-c C-d</code> pour diff.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="844.818000" data-stop="847.060000">Et donc il peut rouvrir différents buffers pour</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="847.080000" data-stop="849.223000">bien visualiser la différence.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="849.243000" data-stop="850.884000">Si c'est une traduction, tout serait changé.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="851.405000" data-stop="853.607000">Et si on modifie du code, par exemple, en disant</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="854.368000" data-stop="856.210000">rajoute-moi un paramètre, on a envie de voir</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="856.390000" data-stop="858.232000">vraiment la différence et de sûr qu'il n'a pas</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="858.252000" data-stop="860.715000">fait plus de choses que ce qu'on a demandé.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="861.296000" data-stop="865.380000">Donc il y a moyen de faire un diff ou un ediff après.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="867.655000" data-stop="870.819000"><strong class="speaker-name">Prot:</strong>  C'est peut-être mieux comme ça avec Ediff.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="872.380000" data-stop="873.622000"><strong class="speaker-name">Fabrice:</strong>  Oui, moi j'aime beaucoup Ediff.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="875.144000" data-stop="877.326000">D'ailleurs, c'est quelque chose, je ne crois pas</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="877.366000" data-stop="878.367000">que je l'ai montré l'autre fois.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="878.828000" data-stop="881.611000">Donc ici, moi j’ai <code>C-&lt;f9&gt;</code> chez moi, c’est
privé,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="881.631000" data-stop="885.956000">pour lancer <code>vc-dir</code> sans me poser de questions sur</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="885.976000" data-stop="888.639000">quel est le répertoire qu'on veut analyser.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="889.440000" data-stop="891.422000">Donc ici, je vais faire <code>C-&lt;f9&gt;</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="892.504000" data-stop="895.367000">Donc il me lance vc-dir sur le répertoire dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="895.387000" data-stop="896.228000">lequel je me trouvais.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="897.473000" data-stop="899.135000">On voit que j'ai fait une modification dans le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="899.155000" data-stop="899.816000">fichier readme.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="900.937000" data-stop="905.222000">Si je fais égal, on voit un diff unifié avec les</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="905.262000" data-stop="910.408000">plus et les moins en dessous.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="910.428000" data-stop="912.230000">Il faut toujours relire avant de committer les</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="912.330000" data-stop="914.553000">diffs parce que là il y a une ligne qui n'était</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="914.673000" data-stop="916.755000">pas prévue d'être committée en imaginant que je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="916.775000" data-stop="917.496000">devais faire le commit.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="918.758000" data-stop="923.363000">Je vais d'ailleurs effacer cette ligne.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="924.507000" data-stop="926.630000">Ce qui est pratique ici dans tout ça, c'est que</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="926.650000" data-stop="928.573000">j'ai fait une modification, j'ai sauvé.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="929.154000" data-stop="930.496000">Ce buffer-ci est le diff.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="930.516000" data-stop="933.080000">Je n'ai pas besoin de retourner dans le vc-dir et</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="933.100000" data-stop="933.882000">de refaire un égal.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="934.042000" data-stop="937.367000">Je peux faire <code>g</code>, faire refresh, il recalcule le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="937.387000" data-stop="937.788000">contenu.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="938.589000" data-stop="940.792000">Donc ici, j’ai fait <code>g</code> et simplement, il a</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="940.892000" data-stop="941.954000">recalculé le diff.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="943.296000" data-stop="945.600000">Et je ne vois plus que le paragraphe qu'on devait</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="945.620000" data-stop="948.304000">traduire, qui a été effacé.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="948.790000" data-stop="951.434000">Pour l'instant, c'est une possibilité.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="951.554000" data-stop="953.577000">Et l'autre possibilité à partir de vc-dir.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="953.617000" data-stop="955.140000">Pour l'instant, je n'utilise pas encore Magit</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="956.682000" data-stop="960.347000">parce que j'ai eu pendant des années des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="960.388000" data-stop="963.011000">répertoires, des repos qui étaient sous SVN,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="963.272000" data-stop="963.953000">subversion.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="965.035000" data-stop="966.477000">Certains étaient déjà sous Git.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="966.657000" data-stop="969.321000">Je voulais une seule interface pour gérer tous</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="969.341000" data-stop="970.222000">mes repositories.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="970.703000" data-stop="974.028000">Et donc, j'ai tout construit sur vc-dir qui marche</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="974.048000" data-stop="975.270000">très bien.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="975.908000" data-stop="979.431000">Voilà, je suis sûr que Magit, pour Git, est</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="979.471000" data-stop="983.155000">plus sophistiquée, plus jolie à regarder, sans doute.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="983.175000" data-stop="988.099000">Mais en fait, je fais tout mon boulot ici avec vc-dir.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="988.640000" data-stop="991.182000">Donc, si j'avais égal, j'ai un diff unifié.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="991.202000" data-stop="993.805000">Ça, c'est standard, je crois.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="994.625000" data-stop="996.507000">Si je fais grand <code>E</code>, ça, c’est pas standard.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="997.368000" data-stop="998.429000">Ça m'appelle ediff.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="999.350000" data-stop="1001.812000">Donc là, directement, j'ai ediff, puis j'ai plus</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1001.832000" data-stop="1002.833000">qu'à faire next.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1002.853000" data-stop="1003.693000">Voilà, next.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1003.754000" data-stop="1004.835000">Bon, j'ai qu'un changement ici.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1005.372000" data-stop="1006.653000">Ce paragraphe là qui a disparu.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1009.375000" data-stop="1012.098000">Donc ça c'est très pratique, directement pouvoir</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1012.139000" data-stop="1016.103000">lancer Ediff à partir d'un fichier modifié.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1018.404000" data-stop="1024.011000">Et alors une petite chose que j'ai récemment</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1025.652000" data-stop="1030.397000">rajoutée dans Git, c'est donc ici je viens</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1030.417000" data-stop="1032.559000">de refaire un égal pour avoir un Ediff unifié.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1033.440000" data-stop="1034.501000">Donc ici j'ai le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1034.718000" data-stop="1036.864000">Le diff unifié où j'ai ce paragraphe-là qui est apparu.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1037.846000" data-stop="1042.780000">En fait, depuis n'importe quel diff, donc output</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1043.141000" data-stop="1045.166000">qui est sous forme de diff avec des plus et des moins,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1045.990000" data-stop="1047.572000">Ici, c'est à partir de vc-diff.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1047.592000" data-stop="1050.675000">Ça pourrait être le résultat d'un Git diff dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1050.695000" data-stop="1051.335000">un buffer.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1051.355000" data-stop="1053.978000">Ça pourrait être dans Magit.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1054.899000" data-stop="1060.664000">Je peux lancer la touche avec <code>w</code>, ça marche.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1060.684000" data-stop="1064.408000">Ça m'a lancé la génération d'un message de commit</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1065.088000" data-stop="1066.169000">via gptel.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1067.130000" data-stop="1070.654000">J'ai écrit une petite fonction qui va envoyer</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1070.854000" data-stop="1071.695000">tout ce buffer-là.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1072.000000">17:52</span> <strong>gptel-commit-message</strong></div><p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="1072.135000" data-stop="1075.018000"><strong class="speaker-name">Fabrice:</strong> Ça envoie le buffer en entier à gptel.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1075.589000" data-stop="1078.313000">En lui demandant de m'écrire un message de commit.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1080.517000" data-stop="1088.329000">C'est gptel-commit-message.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1091.594000" data-stop="1096.281000">Je l'ai mis sous GitHub.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1097.824000" data-stop="1100.648000">Il génère un message de commit à partir d'un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1100.708000" data-stop="1103.132000">fichier, d'un buffer diff.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1103.770000" data-stop="1105.713000">Il envoie tout ça et donc il a été généré</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1105.733000" data-stop="1107.635000">n'importe comment, donc ce n'est pas lié à Magit.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1108.316000" data-stop="1109.818000">Parce qu'il y a beaucoup, il y a plusieurs</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1110.058000" data-stop="1113.563000">solutions qui existent déjà dans MELPA et c'est</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1113.583000" data-stop="1114.524000">lié souvent à Magit.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1115.425000" data-stop="1117.488000">Ou à Git, en fait, il faut avoir stagé les</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1117.508000" data-stop="1117.889000">fichiers.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1118.009000" data-stop="1120.532000">Moi, je n'ai pas spécialement envie de mettre des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1120.552000" data-stop="1123.296000">fichiers, de les stager dans Git.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1124.137000" data-stop="1126.260000">J'ai envie de pouvoir simplement sélectionner</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1126.280000" data-stop="1128.262000">moi-même ici dans l'interface un, deux, trois</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1128.322000" data-stop="1131.927000">fichiers et regarder la différence pour ces</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1131.947000" data-stop="1132.528000">fichiers-là.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1132.728000" data-stop="1137.313000">Génère-moi un message pour ces fichiers.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1137.333000" data-stop="1147.125000">Ici, dans le package, qui est tout petit, il fait</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1147.145000" data-stop="1147.765000">une fonction.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1147.825000" data-stop="1149.147000">Il y a juste une fonction.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1149.167000" data-stop="1153.632000">Il y a le nom du buffer et la fonction.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1154.053000" data-stop="1159.118000">Derrière, je l’ai mappé sur <code>w</code>. Quand je suis dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1159.559000" data-stop="1161.401000">le diff-mode-map, dans vc-dir,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1161.584000" data-stop="1163.065000">Je tape <code>w</code> pour write.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1164.947000" data-stop="1167.569000">Ça me gênait le fichier de ce message.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1168.470000" data-stop="1172.373000">Donc, si je reviens sur ton changement, voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1172.734000" data-stop="1175.476000">Donc, j'avais ici, j'avais fait W à partir d'un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1175.496000" data-stop="1176.477000">buffer diff.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1177.338000" data-stop="1182.082000">Ça a envoyé via gptel, ça a envoyé le diff, ça a</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1182.102000" data-stop="1185.845000">récupéré un message de commit, ça l'a mis dans le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1185.865000" data-stop="1189.468000">presse-papier et ça m'a ouvert un buffer, donc ça</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1189.508000" data-stop="1191.490000">a rajouté un buffer à côté où je pouvais le voir.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1191.976000" data-stop="1193.939000">Je vais le refaire ici.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1195.320000" data-stop="1196.582000">Donc ça envoie, voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1197.624000" data-stop="1199.526000">Et donc on voit, ça ouvre un buffer avec le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1199.546000" data-stop="1200.227000">message en bas.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1201.068000" data-stop="1203.291000">Et en fait, je peux très bien me dire, tiens, en</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1203.311000" data-stop="1207.977000">fait, ce message-là, il ne me plaît pas trop.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1208.298000" data-stop="1210.000000">Puisqu'en fait, on a chaque fois des réponses</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1210.020000" data-stop="1210.501000">différentes.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1210.641000" data-stop="1212.283000">Donc je peux très bien refaire W en haut.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1213.244000" data-stop="1214.546000">Il va réenvoyer le truc.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1215.187000" data-stop="1216.689000">Cette fois-ci, ça ressemble assez fort.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1216.709000" data-stop="1217.410000">Je vais le refaire.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1220.495000" data-stop="1223.880000">Il change un petit peu, il n'y a pas beaucoup de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1223.900000" data-stop="1227.465000">changement ici parce que ce n'est pas le même texte.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1227.526000" data-stop="1230.129000">Donc, remove personal introduction from readme.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1230.210000" data-stop="1234.216000"><strong class="speaker-name">Prot:</strong>  Et il a copié aussi sur le kill ring.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="1234.897000" data-stop="1235.738000"><strong class="speaker-name">Fabrice:</strong>  Oui, exactement.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1235.758000" data-stop="1237.220000">Donc, maintenant, en fait, je n'ai plus qu'à</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1237.240000" data-stop="1238.602000">refaire ctrl <f9>.</f9></span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1239.644000" data-stop="1242.328000">Je suis déjà là-dessus.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1243.109000" data-stop="1245.533000">Je n'ai plus qu'à faire dans V, c'est dire, next</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1245.553000" data-stop="1248.898000">action, c'est V. Pour dire, fais l'action</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1248.918000" data-stop="1249.759000">suivante qui a du sens.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1250.245000" data-stop="1252.167000">Ici, puisque j'ai un fichier modifié, l'action</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1252.187000" data-stop="1255.491000">suivante qui a du sens, c'est de committer.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1256.552000" data-stop="1260.176000">Donc, il m'ouvre un buffer pour pouvoir mettre</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1260.196000" data-stop="1260.977000">mon message de commit.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1261.818000" data-stop="1263.419000">Donc, je fais simplement <code>C-y</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1263.439000" data-stop="1267.684000">Et éventuellement, je vais un peu le modifier.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1268.024000" data-stop="1269.686000"><code>C-c C-c</code>, c’est envoyé.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1270.327000" data-stop="1271.048000">Et donc, c'est committé.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1271.068000" data-stop="1276.894000">Ça, j'utilise depuis quelques mois quand même, je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1276.914000" data-stop="1278.716000">dirais depuis 4, 5, 6 mois.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1279.523000" data-stop="1282.329000">Depuis cette période-là, je fais tous mes</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1282.349000" data-stop="1286.617000">messages de commit avec gptel, l'intelligence artificielle.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1287.178000" data-stop="1289.884000">Et c'est merveilleux parce que ça a augmenté la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1289.924000" data-stop="1291.888000">qualité de mes messages de commit.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1292.609000" data-stop="1293.831000">C'est indéniable.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1293.851000" data-stop="1297.659000">Avant, je mettais souvent dans mes fichiers à moi « update ».</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1297.679000" data-stop="1300.705000"><strong class="speaker-name">Sacha:</strong>  Moi aussi.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="1301.258000" data-stop="1305.484000"><strong class="speaker-name">Fabrice:</strong>  Et en plus, non seulement j'ai un beau message</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1305.544000" data-stop="1307.767000">qui dit vraiment ce qu'il y a, et je relis</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1307.807000" data-stop="1309.750000">encore, non seulement avant de committer, je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1309.770000" data-stop="1310.631000">relis toujours.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1310.651000" data-stop="1314.697000">Au minimum, je fais égal pour voir la différence.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1314.717000" data-stop="1316.099000">Ou s'il y a beaucoup de différences, je vais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1316.119000" data-stop="1318.763000">faire un grand <code>E</code> pour pouvoir en Ediff comparer</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1318.863000" data-stop="1321.006000">les versions avant et les versions après,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1321.326000" data-stop="1322.228000">systématiquement.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1322.648000" data-stop="1325.432000">Mais en plus, je fais générer mon message de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1325.472000" data-stop="1328.076000">commit et je lis aussi le message de commit.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1329.153000" data-stop="1330.855000">Voilà, pour voir qu'il a bien compris et</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1330.875000" data-stop="1333.578000">qu'effectivement aussi, le résumé est correct par</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1333.598000" data-stop="1334.439000">rapport à ce que j'ai fait.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1334.740000" data-stop="1336.682000">Parce que parfois, s'il y a eu des centaines de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1336.722000" data-stop="1339.966000">changements, je pourrais voir aussi quelque chose</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1339.986000" data-stop="1340.527000">qui me tient.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1340.547000" data-stop="1342.589000">Il me parle de ça, c'est bizarre qu'il me dise</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1342.609000" data-stop="1343.671000">que... Je ne sais pas, que j'ai enlevé un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1343.691000" data-stop="1344.632000">paragraphe, ce n'est pas normal.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1346.554000" data-stop="1348.497000">Voilà, ça pourrait aussi m'attirer l'attention</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1348.517000" data-stop="1349.998000">sur, tiens, est-ce que je n'ai quand même pas</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1350.018000" data-stop="1353.082000">trop vite lu le diff et donc d'aller voir des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1353.102000" data-stop="1353.262000">trucs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1353.282000" data-stop="1356.206000">Donc, c'est vraiment...</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1357.334000" data-stop="1362.480000">Ça change la qualité du commit sous Git.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1364.502000" data-stop="1367.365000">C'est vraiment quelque chose que je conseille à</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1367.385000" data-stop="1367.966000">tout le monde.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1369.467000" data-stop="1372.150000">Et donc ici, pour vc-dir, il a fallu que j'écrive</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1372.170000" data-stop="1374.553000">ma fonction moi-même, parce que les autres Git</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1375.054000" data-stop="1378.017000">gptel commits, il faut avoir stagé les fichiers,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1378.037000" data-stop="1381.241000">donc ça regarde ce qu'on a stagé, et ça fait un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1381.281000" data-stop="1383.443000">message de commit par rapport à ce qu'on a stagé.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1383.878000" data-stop="1386.501000">Maintenant, on essaie de dire, on ne stage pas.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1386.521000" data-stop="1388.062000">On ne voit pas cette opération-là, ça se fait</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1388.082000" data-stop="1388.482000">tout seul.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1389.103000" data-stop="1391.445000">Donc on a les fichiers modifiés et puis on fait</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1391.465000" data-stop="1392.266000">le commit directement.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1392.286000" data-stop="1395.509000">Donc ça fait le <code>git commit -a</code>, <code>git commit</code>
add…</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1396.750000" data-stop="1398.892000">On ne passe pas par cette étape de staging.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1398.912000" data-stop="1400.814000">Et puis voilà, je trouve que c'est plus simple,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1401.034000" data-stop="1402.996000">simplement de sélectionner les fichiers, ceux que</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1403.076000" data-stop="1405.939000">je veux, et puis de voir la différence, et puis</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1405.959000" data-stop="1406.500000">de committer.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1408.121000" data-stop="1409.903000"><strong class="speaker-name">Prot:</strong>  Oui, c'est mieux comme ça.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1410.000000">23:30</span> <strong>docstrings</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1410.085000" data-stop="1415.911000"><strong class="speaker-name">Sacha:</strong>  Tu utilises également gptel pour générer</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1415.971000" data-stop="1417.533000">des docstrings.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1421.116000" data-stop="1421.837000">Peux-tu montrer ?</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="1423.839000" data-stop="1430.266000"><strong class="speaker-name">Fabrice:</strong>  Alors, on pourrait aller dans un fichier.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1430.286000" data-stop="1435.491000">Par exemple, ce fichier de gptel-commit-message.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1438.374000" data-stop="1438.995000">Donc voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1439.768000" data-stop="1441.530000">Donc, j'ai une seule fonction.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1443.000000">24:03</span> <strong>hs-minor-mode - hideshow</strong></div><p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="1443.632000" data-stop="1446.796000"><strong class="speaker-name">Fabrice:</strong> Et donc, chez moi, quand je rouvre par défaut,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1446.816000" data-stop="1452.282000">j'utilise aussi H.S. hs-minor-mode, hideshow.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1453.003000" data-stop="1457.588000">Donc, tous les corps des fonctions, etc., il les réduit.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1458.469000" data-stop="1460.492000">J'ai rajouté qui m'indique le nombre de lignes</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1460.692000" data-stop="1462.634000">pour avoir quand même une petite idée, pas juste</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1462.654000" data-stop="1464.136000">trois petits points, mais avoir une petite idée</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1464.176000" data-stop="1467.700000">de ce qui se cache en dessous.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1468.861000" data-stop="1471.625000">Et donc après je fais metashifta chez moi, ce qui</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1471.645000" data-stop="1472.606000">est visible mode.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1472.967000" data-stop="1473.808000">Donc ça m'ouvre.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1475.350000" data-stop="1478.334000">Il y a visible mode pour les fichiers Org avec</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1478.354000" data-stop="1480.457000">les drawers et puis ça fait plusieurs choses</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1480.477000" data-stop="1483.722000">visible mode et aussi HS show all.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1485.725000" data-stop="1487.487000">Donc ici, voilà, j'ai un message, j'ai une</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1487.507000" data-stop="1490.692000">fonction, j'ai un message, un docstring et on va</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1490.712000" data-stop="1494.077000">dire que j'ai écrit moi-même un docstring un peu</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1494.097000" data-stop="1494.598000">plus bête.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1496.380000" data-stop="1498.463000">Je mets xxx à la place.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1499.016000" data-stop="1504.501000">Et donc, ce que je peux faire, c'est sélectionner</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1504.661000" data-stop="1509.105000">toute la fonction.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1509.386000" data-stop="1519.015000">Oui, les métas, parenthèses, accolades, fréquentes.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1519.035000" data-stop="1522.138000">Ils ne sont pas toujours faciles sur un clavier</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1522.178000" data-stop="1522.858000">français, d'ailleurs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1523.959000" data-stop="1526.862000">Il faut faire le AltGr, tu vois.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1526.882000" data-stop="1528.804000">Le QWERTY est plus facile pour certains trucs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1529.341000" data-stop="1534.088000">Donc ici, j'ai sélectionné, donc je vais faire</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1534.128000" data-stop="1536.251000"><code>C-u C-c RET</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1537.734000" data-stop="1540.278000">Donc je retombe sur le gptel menu.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1540.959000" data-stop="1542.801000">J'ai une directive traduite en français, donc ça,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1542.821000" data-stop="1543.502000">c'est pas très bon.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1544.284000" data-stop="1546.086000">Donc je vais changer la directive, donc je vais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1546.106000" data-stop="1548.710000">faire ici le <code>s</code> pour Set System Message.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1550.393000" data-stop="1553.257000">Encore une fois, le <code>s</code>, puisque on pourrait</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1553.277000" data-stop="1555.300000">imaginer, si j'avais ça tout le temps, que j'ai</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1555.440000" data-stop="1556.462000">write the string.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1557.218000" data-stop="1560.983000">Je n'ai pas de preset, de prompt avec ça, donc je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1561.003000" data-stop="1562.424000">vais essayer de le faire à la main.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1562.444000" data-stop="1565.909000">Je vais refaire S pour pouvoir moi-même éditer le message.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1567.410000" data-stop="1574.079000">Et donc ici, je vais taper à la place écrit un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1574.099000" data-stop="1581.047000">docstring correct montrant ce que la fonction fait.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1581.688000" data-stop="1585.613000"></span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1585.673000" data-stop="1585.993000">exactement.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1588.336000" data-stop="1591.060000"></span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1591.080000" data-stop="1595.966000">directive est correcte.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1596.126000" data-stop="1599.250000">Alors, je n’ai pas ?? le <code>b</code>, là, other</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1599.270000" data-stop="1602.595000">buffer, ou je pourrais le mettre dans le kill ring aussi.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1602.615000" data-stop="1604.177000">On va le mettre dans le kill ring, par exemple,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1604.197000" data-stop="1606.380000">donc je vais faire <code>k</code>. Donc j’envoie la réponse</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1606.400000" data-stop="1610.285000">dans le kill ring, <code>k</code>. Donc on lit bien, toujours en</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1610.305000" data-stop="1611.366000">bas, ce qu'il va faire.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1611.386000" data-stop="1614.030000">Donc ici, quand je vais faire <code>RET</code>, il va envoyer</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1614.290000" data-stop="1616.673000">les lignes sélectionnées avec la réponse dans le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1616.693000" data-stop="1617.094000">kill ring.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1617.327000" data-stop="1629.084000">Parfois, ce qui est dommage, c'est qu'on n'a pas</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1629.104000" data-stop="1632.910000">un sablier comme des applications Windows.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1634.612000" data-stop="1637.376000">Voilà, ici, j'ai la réponse.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1638.178000" data-stop="1639.840000">C'est dommage qu'il n'y ait pas de sablier.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1640.140000" data-stop="1642.463000">Il y a tellement de choses qui passent sur</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1642.464000" data-stop="1646.710000">l'echo area qu'on ne voit pas nécessairement ce qui se passe.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1647.230000" data-stop="1651.502000">Je vais remonter ici et on va imaginer, je vais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1651.522000" data-stop="1656.477000">directement effacer ça, faire C-y. Il a fait</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1656.657000" data-stop="1657.560000">un peu trop.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1657.776000" data-stop="1664.733000">Alors, ben, voilà, ici en fait, c'est voilà,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1664.734000" data-stop="1666.966000">il faudrait je juste que j'édite un petit peu,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1666.967000" data-stop="1670.466000">voici un docstring correct. Il marque copié.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1670.467000" data-stop="1672.766000">Il faudrait voilà, il faudrait justement faire un prom pour lui dire</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1672.767000" data-stop="1677.066000">ne me donne que le docstring sans répéter le nom de la fonction</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1677.067000" data-stop="1684.400000">et cetera et cetera. Mais en gros, ouais, bah tout ça</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1684.401000" data-stop="1686.484000">a l'air bon en fait hein.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1686.633000" data-stop="1688.636000">Ici, il m'avait rajouté du texte et des infos.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1688.656000" data-stop="1691.922000">Après, il explique ce qu'il a fait.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1691.942000" data-stop="1692.182000">Voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1692.262000" data-stop="1693.724000">En gros, ça c'est bon.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1693.985000" data-stop="1695.607000">C'est juste que je ne sais pas pourquoi il a mal</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1696.008000" data-stop="1696.609000">lié ceci.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1698.732000" data-stop="1700.796000"><strong class="speaker-name">Sacha:</strong>  [Je me suis] trompée, peut-être.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1701.918000" data-stop="1706.172000">Tu as une fonction boost-gptel-generate-docstring</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1706.173000" data-stop="1707.987000">dans ta configuration.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="1708.709000" data-stop="1716.904000"><strong class="speaker-name">Fabrice:</strong>  Ah ! Je ne l'ai pas encore testé, celle-là.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1717.785000" data-stop="1721.228000">Justement, avec la section de la fonction, je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1721.248000" data-stop="1722.650000">pense que ça ne marche pas toujours très bien.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1722.890000" data-stop="1725.553000">Il y a des choses qui ne marchent pas encore très bien.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1725.573000" data-stop="1728.736000">Il y a des choses qui sont en test un peu.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1728.756000" data-stop="1730.478000">Ça fait partie des tests.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1730.498000" data-stop="1731.779000">On peut réessayer.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1731.799000" data-stop="1734.462000">Je vais essayer de voir si elle marche.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1734.482000" data-stop="1736.764000">On voit ici qu'il a fait un docstring assez long,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1736.784000" data-stop="1737.065000">d'ailleurs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1737.986000" data-stop="1739.387000">Un peu trop, à mon goût.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1740.295000" data-stop="1757.855000">En théorie, il doit détecter les bounds de la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1757.895000" data-stop="1763.361000">fonction et envoyer toute la fonction à gptel et</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1763.401000" data-stop="1764.382000">avec un prompt.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1765.383000" data-stop="1768.226000">Ça a l'air de marcher assez bien.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1768.375000" data-stop="1770.518000">Sauf que de nouveau, il me fait plus, il me</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1770.558000" data-stop="1771.519000">répète toute la fonction.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1771.539000" data-stop="1774.783000">Non, voilà, c'est ça, il me répète toute la fonction.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1776.726000" data-stop="1779.950000">Oui, jusque... Jusque l'interactif.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1779.970000" data-stop="1781.793000">Jusque là, oui, jusque l'interactif.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1783.455000" data-stop="1784.136000">Donc, c'est pas mal.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1784.156000" data-stop="1786.057000">Donc, oui, voilà, ça...</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1786.058000" data-stop="1786.999000"><strong class="speaker-name">Prot:</strong>  Oui, pas mal.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="1789.202000" data-stop="1790.123000"><strong class="speaker-name">Fabrice:</strong>  Voilà, hop.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1790.143000" data-stop="1792.847000">On peut voir, effectivement... Donc, ça, c'est</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1792.867000" data-stop="1794.489000">nouveau, c'est... Enfin, c'est... Changez,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1794.509000" data-stop="1795.210000">changez, oui.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1795.713000" data-stop="1797.955000">Et donc l'interactive, je n'avais pas</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1797.975000" data-stop="1799.277000">d'interactive apparemment.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1800.298000" data-stop="1803.661000">Si je devais l'avoir.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1803.681000" data-stop="1806.464000">Je ne sais pas si j'ai un interactive ou pas,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1806.484000" data-stop="1807.565000">donc je fais <code>C-&lt;f9&gt;</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1808.426000" data-stop="1811.029000">Et on peut voir ce qu'il a modifié.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1812.010000" data-stop="1817.756000">On va le faire en vertical.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1820.779000" data-stop="1821.400000">Hop.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1822.544000" data-stop="1826.508000">Oui, si j'avais un interactif avant.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1826.528000" data-stop="1829.270000">Il considère, il n'est pas aligné au niveau du truc.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1829.290000" data-stop="1833.454000">Forcément, je devais avoir un interactif.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1837.738000" data-stop="1845.965000">Pour terminer ou pas avec tout ce qui est</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1845.985000" data-stop="1847.787000">intelligence artificielle, j'ai un petit truc ici</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1848.308000" data-stop="1849.549000">qui traîne sur l'écran.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1849.709000" data-stop="1852.011000">Ça fait une semaine que je l'essaye.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1852.581000" data-stop="1858.671000">J'ai déjà payé pour la version si il y avait</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1858.692000" data-stop="1861.897000">trois jours d'essai et ça me paraît très bien.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="1863.000000">31:03</span> <strong>Super-whisper</strong></div><p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="1863.179000" data-stop="1864.582000"><strong class="speaker-name">Fabrice:</strong> Donc c'est Super Whisper.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1868.609000" data-stop="1870.692000">Je vais le faire d'abord dans un Notepad par</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1870.712000" data-stop="1875.821000">exemple pour vous montrer.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1876.881000" data-stop="1880.529000">Je l'ai mappé sur la touche Escape, ce qui n'est</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1880.549000" data-stop="1882.633000">pas encore la meilleure touche.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1884.357000" data-stop="1885.800000">Je vais expliquer.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1885.820000" data-stop="1887.885000">Je voulais aussi pouvoir l'appeler à partir d'Emacs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1889.267000" data-stop="1890.831000">J'aimerais bien que ce soit une touche assez</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1890.851000" data-stop="1893.116000">facile, donc un peu une extrémité du clavier.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1893.296000" data-stop="1895.160000">La touche Escape, c'est une extrémité du clavier.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1895.613000" data-stop="1898.215000">Voilà, il n'y en a pas beaucoup, et puis il faut</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1898.235000" data-stop="1901.318000">qu'elle ne soit pas utilisée dans Emacs, parce</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1901.358000" data-stop="1903.820000">qu'il faut que je la fasse arriver dans Emacs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1904.481000" data-stop="1908.725000">Et donc ici, quand je suis dans un endroit où on</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1908.765000" data-stop="1911.587000">peut insérer du texte, donc ça pourrait être</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1911.607000" data-stop="1914.670000">aussi en formulaire sur une page web, ici je suis</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1914.690000" data-stop="1917.293000">dans Notepad, ça peut être dans Word, ça peut</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1917.313000" data-stop="1922.918000">être n'importe où, je vais faire escape, et on</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1922.938000" data-stop="1925.620000">voit à ce moment-là qu'il écoute.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1925.768000" data-stop="1928.151000"><strong class="speaker-name">Prot:</strong>  On voit des ondulations là.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1928.171000" data-stop="1928.752000"><strong class="speaker-name">Sacha:</strong>  Je ne le vois pas.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1929.393000" data-stop="1931.636000"><strong class="speaker-name">Prot:</strong>  Je ne peux pas voir l'indication.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1932.818000" data-stop="1936.923000"><strong class="speaker-name">Sacha:</strong>  Parce que tu vas partager seulement le</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1937.544000" data-stop="1939.126000">fenêtre Emacs.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="1940.788000" data-stop="1944.714000"><strong class="speaker-name">Fabrice:</strong>  Je vais stopper la présentation et</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1944.734000" data-stop="1948.479000">je vais faire un share.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1948.499000" data-stop="1953.025000"><strong class="speaker-name">Sacha:</strong>  Je suis très curieuse à la reconnaissance vocale.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="1954.439000" data-stop="1955.260000"><strong class="speaker-name">Fabrice:</strong>  Voilà, screen 1.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1955.320000" data-stop="1955.901000">Voilà, ok.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="1957.583000" data-stop="1960.207000"><strong class="speaker-name">Prot:</strong>  Est-ce que vous le voyez ?</span> <span class="audio-time caption" data-speaker="Prot" data-start="1960.227000" data-stop="1961.289000">Maintenant, oui.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1961.309000" data-stop="1962.590000">Oui, oui.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1962.610000" data-stop="1963.972000">Ok.</span> <span class="audio-time caption" data-speaker="Prot" data-start="1963.992000" data-stop="1966.155000">On va bien danser dans le pad, ici.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="1966.175000" data-stop="1969.300000"><strong class="speaker-name">Fabrice:</strong>  Il y a une minute, j'ai fait Escape.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1970.742000" data-stop="1971.884000">Qui a lancé, donc, le Super Whisper.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1972.044000" data-stop="1975.248000">Et donc, on voit ici qu'il écoute, on voit des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1975.288000" data-stop="1976.270000">petites ondulations.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1976.310000" data-stop="1981.096000"></span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1981.116000" data-stop="1982.258000">Il y a une integration dans Notepad, aussi.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="1982.278000" data-stop="1984.061000">Je le vois assez discret, d'ailleurs.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="1985.016000" data-stop="1988.860000"><strong class="speaker-name">Sacha:</strong>  Je pense que parce que tu as aussi, dans</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1989.000000" data-stop="1994.366000">ton séance de réunion virtuelle, la</span> <span class="audio-time caption" data-speaker="Sacha" data-start="1994.446000" data-stop="1997.889000">reconnaissance vocale a du mal avec l'audio.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="2000.893000" data-stop="2002.074000"><strong class="speaker-name">Fabrice:</strong>  Je pense que ça va aller, mais en</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2002.094000" data-stop="2003.075000">fait, c'est ça qui est bien.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2003.095000" data-stop="2006.238000"></span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2006.258000" data-stop="2006.659000">donc W-I-S-P-R.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2009.221000" data-stop="2010.362000">En fait, ça marchait bien, sauf qu'il y avait des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2010.382000" data-stop="2010.823000">conflits avec Emacs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2010.843000" data-stop="2014.447000">Et que dans Emacs, de temps en temps, j'avais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2014.467000" data-stop="2017.633000">des caractères qui étaient générés de manière aléatoire</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2017.634000" data-stop="2021.566000">donc j'ai compris que c'était Wispr parce qu'en</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2021.567000" data-stop="2024.000000">j'étais désactivée, quand j'aie désinstallé Wispr,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2024.001000" data-stop="2026.400000">je n'avais plus de problème avec Emacs</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2026.401000" data-stop="2034.333000">de config. Et Wispr, lui, il écoutait ce que tu disais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2034.334000" data-stop="2036.366000">et tu voyais afficher au fur et à mesure les mots.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2036.367000" data-stop="2040.600000"><strong class="speaker-name">Prot:</strong>  Peut-être tu peux désactiver Whisper,</span> <span class="audio-time caption" data-speaker="Prot" data-start="2040.601000" data-stop="2042.900000">parce que on ne peut pas écouter bien</span> <span class="audio-time caption" data-speaker="Prot" data-start="2042.901000" data-stop="2052.852000">ce que tu dit. Peut-être maintenant...</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="2052.853000" data-stop="2054.102000"><strong class="speaker-name">Fabrice:</strong>  Ok, excusez-moi, je n'avais pas</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2054.423000" data-stop="2055.624000">compris, vous n'entendiez pas.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2057.165000" data-stop="2058.205000">Je n'avais pas compris, donc je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2058.225000" data-stop="2059.948000">vais réexpliquer.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2060.707000" data-stop="2065.111000">En fait, j'avais utilisé il y a quelques mois</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2065.252000" data-stop="2070.176000">Wispr, W-I-S-P-R, et cette application-là, elle</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2070.196000" data-stop="2073.960000">avait des conflits avec Emacs, donc j'avais des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2073.980000" data-stop="2075.241000">caractères qui généraient dans Emacs</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2075.261000" data-stop="2077.123000">aléatoirement à un certain moment.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2077.559000" data-stop="2079.240000">Et quand je l'ai désinstallé, je n'ai plus eu ça,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2079.260000" data-stop="2081.102000">donc je ne sais pas pourquoi, mais il y avait des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2081.122000" data-stop="2081.823000">problèmes avec Emacs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2083.244000" data-stop="2085.566000">Et l'application Wispr, elle écrivait les mots</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2085.646000" data-stop="2086.287000">au fur et à mesure.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2088.048000" data-stop="2091.972000">SuperWhisper.com, je pense.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2092.132000" data-stop="2095.254000">Elle, elle écoute tout ce qu'on dit, donc je fais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2095.294000" data-stop="2098.717000">Escape pour l'activer, elle écoute tout ce que je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2098.737000" data-stop="2101.440000">dis, et puis quand je refais Escape, donc c'est</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2101.460000" data-stop="2103.622000">un toggle, elle écrit tout d'un coup.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2105.103000" data-stop="2107.465000">Mais l'avantage, c'est qu'elle a du contexte.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2108.170000" data-stop="2113.262000">Et donc si je dis par exemple, je lui ai demandé</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2113.663000" data-stop="2116.450000">comment ça va, en fait il va recopier, je lui ai</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2116.470000" data-stop="2118.595000">demandé deux points, ouvrez les guillemets,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2118.615000" data-stop="2121.401000">comment ça va, point d'interrogation, fermez les guillemets.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2121.421000" data-stop="2124.128000">Parce qu'il interprète en fait, il reconstitue le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2124.148000" data-stop="2125.892000">paragraphe, le texte à la fin.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2126.125000" data-stop="2130.334000">Parfois, si je fais une faute et qu'il y a un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2130.354000" data-stop="2133.862000">autre orthographe, et puis je répète orthographe,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2133.902000" data-stop="2136.768000">il va comprendre que c'est le même mot.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2136.788000" data-stop="2140.556000">Il est assez malin, il remet le texte.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2140.705000" data-stop="2143.909000">de manière plus synthétique.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2144.270000" data-stop="2147.354000">Il met tous les mots, mais à la fin, au niveau</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2147.674000" data-stop="2150.137000">typographie, etc., il met deux, trois petits points.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2150.157000" data-stop="2151.920000">Il met parfois des guillemets.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2151.940000" data-stop="2153.061000">Il comprend bien les questions.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2153.161000" data-stop="2155.785000">Je ne sais pas pourquoi ici, j'ai un caractère un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2155.825000" data-stop="2156.466000">peu spécial.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2157.908000" data-stop="2162.734000">Il y a quand même de temps en temps des fautes aussi.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2162.774000" data-stop="2164.837000">Tout à l'heure, je parlais de aléatoire.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2164.917000" data-stop="2167.460000">Il a marqué aléatoire.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2167.480000" data-stop="2169.683000">Oui, j'espère que j'ai cité tout à l'heure</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2170.388000" data-stop="2173.592000">Donc voilà, il fallait marquer W, I, S, P, R. Et</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2173.612000" data-stop="2175.815000">puis une fois, il a marqué c'est A, I, R. Bon, c'est</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2175.835000" data-stop="2177.837000">pas parfait, mais en fait, ça marche et c'est</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2177.857000" data-stop="2180.680000">beaucoup plus rapide quand même.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2180.700000" data-stop="2183.224000">Et j'écris une petite fonction qui marche dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2183.524000" data-stop="2186.087000">WSL, en tout cas pour ma config, de telle façon</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2186.127000" data-stop="2188.810000">que dans... Donc si je vais dans un buffer</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2188.830000" data-stop="2189.872000">scratch, par exemple.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2192.274000" data-stop="2194.417000">Que dans Emacs, ça fait la même chose aussi quand</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2194.437000" data-stop="2195.098000">je fais escape.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2195.258000" data-stop="2198.662000">Parfois, j'ai des problèmes de clipboard, donc le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2198.682000" data-stop="2199.383000">kill ring.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2199.936000" data-stop="2202.700000">Quand je fais le deuxième escape, parfois il me</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2202.720000" data-stop="2204.843000">remet un vieux truc qui n'est pas ce que je viens</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2204.883000" data-stop="2206.785000">de dire, donc il y a encore des choses à</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2206.805000" data-stop="2207.286000">comprendre.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2207.646000" data-stop="2216.377000">Je vais essayer quand même juste une phrase,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2216.378000" data-stop="2220.466000">je fais <code>ESC</code>…</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2220.467000" data-stop="2233.912000">Je sais pas... Ah, voilà. Il se lance. Mais...</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2233.913000" data-stop="2249.366000">Il se lance. Est-ce que cela marche ?</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2249.367000" data-stop="2251.766000">Ah, tu vois, j'ai un problème.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2251.767000" data-stop="2253.533000">J'ai dit est-ce que cela marche ?</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2253.534000" data-stop="2256.910000">Il vient de remettre système, il faut que je comprenne.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2257.700000" data-stop="2260.363000">Il y a des petites configurations</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2260.364000" data-stop="2264.710000">dans Super Whisper à faire pour le presse-papier.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2265.391000" data-stop="2267.594000">C'est un peu plus compliqué avec le presse-papier</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2267.614000" data-stop="2269.136000">Windows et le presse-papier Emacs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2269.296000" data-stop="2271.459000">J'ai encore des petits réglages à faire, mais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2272.280000" data-stop="2274.504000">quand ça marchera bien, ce sera fantastique de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2274.544000" data-stop="2278.629000">pouvoir directement aussi dans Emacs utiliser ça.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2278.649000" data-stop="2281.193000">Il y a peut-être d'autres solutions d'ailleurs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2281.746000" data-stop="2285.853000">Ici, il marche assez bien et le fait qu'il insère</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2285.934000" data-stop="2289.019000">le truc une fois qu'on a fini de parler, ça fait</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2289.039000" data-stop="2292.385000">quand même des phrases qui sont plus correctes.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2293.607000" data-stop="2297.134000">On hésite parfois, donc ça reconstitue un truc de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2297.154000" data-stop="2297.815000">meilleure qualité.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2300.191000" data-stop="2304.538000"><strong class="speaker-name">Sacha:</strong>  En fait, j'utilise aussi la</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2304.558000" data-stop="2308.584000">reconnaissance vocale sur Emacs et j'utilise le</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2308.764000" data-stop="2315.234000"><code>substitute</code> de Prot pour corriger facilement les</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2315.514000" data-stop="2323.346000">erreurs et sauver les remplaçantes.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="2324.001000" data-stop="2325.383000"><strong class="speaker-name">Fabrice:</strong>  Et ça marche bien, donc ?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2325.403000" data-stop="2326.164000"><strong class="speaker-name">Sacha:</strong>  Oui, oui, oui, ça marche.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="2326.184000" data-stop="2327.586000"><strong class="speaker-name">Fabrice:</strong>  Tu es contente ?</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2327.666000" data-stop="2329.748000"><strong class="speaker-name">Sacha:</strong>  Oui, je suis très contente.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2330.449000" data-stop="2340.722000">Je l'utilise pour les sous-titres, dicter mon texte.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2340.742000" data-stop="2341.303000">Ça marche bien.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="2342.745000" data-stop="2344.026000"><strong class="speaker-name">Fabrice:</strong>  Mais il faudrait que je regarde ta</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2344.046000" data-stop="2347.251000">configuration, alors.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2347.271000" data-stop="2349.233000">Pour m'en inspirer, pour faire des tests aussi.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2349.432000" data-stop="2356.143000"><strong class="speaker-name">Sacha:</strong>  Si tu rediriges l'output de la</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2356.203000" data-stop="2359.909000">reconnaissance vocale à Emacs, tu pourrais</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2360.810000" data-stop="2369.584000">traiter avec Emacs Lisp pour faire des remplaçants.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2371.184000" data-stop="2375.830000"><strong class="speaker-name">Prot:</strong>  process sentinel, il y a les processus qui...</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2375.850000" data-stop="2382.459000"><strong class="speaker-name">Sacha:</strong>  Oui, j'ai lancé un serveur de [Speaches] pour offrir</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2382.479000" data-stop="2387.365000">un service de la reconnaissance vocale qui</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2387.546000" data-stop="2391.371000">utilise aussi Whisper, le mode Whisper.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="2393.814000" data-stop="2395.596000"><strong class="speaker-name">Fabrice:</strong>  Oui, il y a beaucoup de belles</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2395.616000" data-stop="2397.799000">choses qui vont arriver, c'est sûr.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2398.353000" data-stop="2402.138000">En fait, le problème maintenant, c'est que je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2402.218000" data-stop="2404.622000">n'aime plus quand je suis ici au bureau parce que</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2404.642000" data-stop="2406.104000">j'ai des collègues, on est en open space, donc je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2406.124000" data-stop="2408.507000">ne peux pas utiliser ça.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2408.547000" data-stop="2409.208000">C'est ça le problème.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2409.228000" data-stop="2412.152000">Quand je suis à la maison, je peux parler, mais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2412.172000" data-stop="2413.734000">quand on est au bureau, on ne peut pas.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2414.535000" data-stop="2416.958000"><strong class="speaker-name">Sacha:</strong>  Et dans ce temps, j'utilise avec les</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2417.078000" data-stop="2423.587000">enregistrements que j'ai fait en marche, à pied,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2423.607000" data-stop="2427.853000">et d'autres environnements qui sont</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="2428.053000" data-stop="2441.817000"><strong class="speaker-name">Prot:</strong>  Et quand il y a les autres gens, il</span> <span class="audio-time caption" data-speaker="Prot" data-start="2441.857000" data-stop="2446.285000">peut comprendre seulement toi ou il écrit toutes</span> <span class="audio-time caption" data-speaker="Prot" data-start="2446.725000" data-stop="2449.470000">les phrases de les autres gens aussi?</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="2450.091000" data-stop="2453.195000"><strong class="speaker-name">Fabrice:</strong>  Je ne sais pas, en fait.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2453.275000" data-stop="2454.857000">Je ne l'utilise pas avec d'autres personnes.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2455.017000" data-stop="2460.404000">Et si je l'utilise, je vais utiliser le casque.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2461.265000" data-stop="2464.990000">Et je pense que le casque est assez... Le micro</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2465.010000" data-stop="2465.971000">est assez directif.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2466.112000" data-stop="2470.237000">En gros, il n'y a quand même que moi qu'on</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2470.297000" data-stop="2472.500000">entend, je pense.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2472.580000" data-stop="2474.122000">Il faudrait vraiment qu'il y ait des bruits assez</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2474.142000" data-stop="2478.968000">forts pour que ça puisse passer aussi.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="2481.000000">41:21</span> <strong>Dotfiler</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="2481.276000" data-stop="2484.981000"><strong class="speaker-name">Sacha:</strong>  Je veux aussi consacrer du temps pour</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2485.021000" data-stop="2490.007000">ton outil dotfiler pour gérer les fichiers</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2490.287000" data-stop="2494.112000">professionnels et les fichiers personnels.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="2495.053000" data-stop="2496.054000">Comment tu l'utilises-tu?</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="2497.536000" data-stop="2500.420000"><strong class="speaker-name">Fabrice:</strong>  Oui, alors ça, ce n'est pas de l'Emacs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2500.480000" data-stop="2503.824000">Par contre, c'est très utile, y compris pour Emacs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2505.526000" data-stop="2508.049000">Et donc, j'ai écrit ici une petite note là-dessus.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2508.069000" data-stop="2511.233000">Je vais ouvrir l'HTML, par exemple.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2512.580000" data-stop="2521.790000">Donc, là, ici, vous voyez bien l'HTML, oui, OK.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2524.032000" data-stop="2527.596000">Donc, en fait, j'utilise le programme dotfiler,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2527.716000" data-stop="2529.638000">donc c'est son nom, c'est le nom du programme.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2532.241000" data-stop="2534.804000">Il y a un outil qui s'appelait Stow dans le temps</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2534.844000" data-stop="2536.886000">qui fait, je pense, à peu près la même chose.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2536.906000" data-stop="2538.228000">Je ne sais pas très bien les différences entre</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2538.248000" data-stop="2540.410000">les deux, d'ailleurs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2540.980000" data-stop="2545.046000">Mais donc l'idée en fait c'est, j'ai des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2545.527000" data-stop="2549.974000">repositories, donc j'ai par exemple, et ça me</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2549.994000" data-stop="2552.438000">sert notamment pour Org, donc justement j'ai un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2552.498000" data-stop="2555.844000">repository avec des fichiers Org personnels, j'ai</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2555.984000" data-stop="2557.787000">un repository avec des fichiers Org</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2558.127000" data-stop="2563.756000">professionnels, et en fait, dotfiler, en</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2563.776000" data-stop="2565.880000">fait c'est plus clair ici dans mon explication,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2566.320000" data-stop="2567.342000">donc j'ai un repo A,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2568.065000" data-stop="2570.650000">Et sous le repo A, j'ai un répertoire Org, j'ai</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2570.670000" data-stop="2572.653000">un répertoire bin, j'ai un répertoire Lisp.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2573.515000" data-stop="2575.839000">Repo B, je ne suis pas obligé d'avoir les trois.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2576.200000" data-stop="2579.065000">Donc, j'ai une autre structure, mais j'ai par</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2579.085000" data-stop="2582.892000">exemple Org, bin, Lisp aussi, examples, peu</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2582.912000" data-stop="2583.232000">importe.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2584.254000" data-stop="2586.478000">Et donc, quand on utilise dotfiler,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2588.180000" data-stop="2592.164000">Il va créer, donc tout ça est mis par défaut dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2592.224000" data-stop="2596.708000">.dotfiles sous le home directory.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2597.188000" data-stop="2599.310000">C'est là que tous les repos se trouvent, ceux qui</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2599.330000" data-stop="2600.652000">sont gérés par dotfiler.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2601.973000" data-stop="2605.576000">Et donc j'ai fait des clones, donc au début je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2605.616000" data-stop="2611.081000">vais faire, donc ici si je vais dans mes</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2611.101000" data-stop="2616.026000">.dotfiles, c'est tous les repos que j'ai.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2616.580000" data-stop="2618.522000">Il y a des repos privés et des repos publics.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2619.723000" data-stop="2627.591000">Et je vais faire un dot add d'une URL Git.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2627.812000" data-stop="2630.875000">Par exemple, si je veux cloner un nouveau</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2630.935000" data-stop="2631.596000">repository.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2632.196000" data-stop="2634.619000">Et donc, il va mettre sous .dotfiles, il va</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2634.639000" data-stop="2637.422000">mettre repo c, par exemple.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2637.442000" data-stop="2641.406000">Donc, si j'ai fait un dot add.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2641.566000" data-stop="2645.490000">Donc, la commande, c'est dot update, dot add.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2646.770000" data-stop="2649.996000">Donc je vais faire un add d'un repo C. Donc le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2650.016000" data-stop="2652.901000">repo va être cloné localement sous dot files, un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2653.141000" data-stop="2656.427000">repo C. Et puis je vais faire un dot update.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2657.489000" data-stop="2659.513000">Donc quand l'update, imaginons au départ que</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2659.533000" data-stop="2661.677000">j'avais que le repo A, et puis je fais ça, donc</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2661.717000" data-stop="2664.221000">j'ajoute un repo B. Comment on va faire ?</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2664.302000" data-stop="2666.866000">Donc au départ, quand je n'ai que le repo A, ce</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2666.886000" data-stop="2670.152000">qu'il fait, c'est que tout ce qu'il trouve en</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2670.172000" data-stop="2671.174000">dessous de chaque repo,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2671.829000" data-stop="2676.375000">Il les met directement via des symlinks sous le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2676.435000" data-stop="2677.056000">home directory.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2677.717000" data-stop="2680.961000">Donc le répertoire Org va se retrouver via un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2681.021000" data-stop="2682.884000">symlink sous le home directory.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2683.524000" data-stop="2686.909000">Le répertoire bin va se retrouver sous le home</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2686.929000" data-stop="2687.389000">directory.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2687.950000" data-stop="2688.751000">Et pareil pour l'isp.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2689.492000" data-stop="2692.596000">Donc si je n'ai qu'un repo au début d'ailleurs et</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2692.696000" data-stop="2695.901000">que je fais un update, dot update, donc il va</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2695.921000" data-stop="2696.942000">créer des symlinks.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2697.344000" data-stop="2700.008000">Un dot update crée ou détruit des symlinks.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2700.028000" data-stop="2702.251000">Ça fait juste ça, en fonction de ce qui a évolué.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2703.532000" data-stop="2705.796000">Et donc la première fois, il va juste faire un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2705.816000" data-stop="2710.322000">symlink du répertoire tilde slash Org vers</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2711.704000" data-stop="2714.227000">tilde.dotfiles repo a Org.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2715.208000" data-stop="2716.851000">Et il va faire la même chose avec bin, la même</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2716.871000" data-stop="2717.471000">chose avec Lisp.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2718.673000" data-stop="2722.318000">Quand j'ai le deuxième repo, le repo b, que j'ai</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2722.358000" data-stop="2723.740000">colonné, j'ai fait...</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2724.344000" data-stop="2726.487000">dot add de ce repo-là.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2726.988000" data-stop="2727.889000">Puis je fais un update.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2728.410000" data-stop="2731.474000">À ce moment-là, évidemment, il y a deux</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2731.995000" data-stop="2735.340000">répertoires Org qui doivent être symlinkés.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2736.321000" data-stop="2738.344000">Ils doivent avoir des liens symboliques dans le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2738.364000" data-stop="2738.705000">tilde.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2739.305000" data-stop="2740.627000">Donc, il ne peut plus faire ça au niveau du</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2740.667000" data-stop="2741.248000">répertoire.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2741.949000" data-stop="2743.311000">Et donc, ce qu'il fait, c'est qu'il supprime le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2743.351000" data-stop="2746.255000">symlink qu'il avait sur le répertoire Org et il</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2746.275000" data-stop="2748.839000">scanne tous les fichiers qui sont là-dedans et il</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2748.859000" data-stop="2751.022000">va faire un symlink individuel, fichier par</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2751.042000" data-stop="2751.583000">fichier.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2752.778000" data-stop="2756.884000">Donc si j'ai 10 fichiers ici, donc fichier 1,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2756.904000" data-stop="2759.168000">fichier 2, fichier 3, il va me faire des symlinks</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2759.728000" data-stop="2764.075000">dans tilde Org fichier 1 vers le fichier 1 qui se</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2764.095000" data-stop="2766.138000">trouve physiquement là.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2766.158000" data-stop="2767.420000">Et ainsi de suite pour tous les fichiers.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2767.500000" data-stop="2768.982000">Il va faire la même chose avec tous les fichiers</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2769.002000" data-stop="2772.027000">qu'il va trouver ici.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2772.047000" data-stop="2774.571000">Et donc tous les fichiers qui se trouvaient dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2774.631000" data-stop="2778.837000">repo A Org et dans repo B Org, via des symlinks,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2778.857000" data-stop="2781.621000">se retrouvent en fait dans tilde Org.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2784.419000" data-stop="2787.342000">Et pareil ici dans mon exemple avec bin et avec</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2787.362000" data-stop="2787.663000">Lisp.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2788.444000" data-stop="2790.246000">Donc si je vais voir ici, si je vais dans mon</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2791.147000" data-stop="2799.196000">répertoire bin, vous voyez, donc j'ai, je vais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2799.216000" data-stop="2804.302000">faire un peu plus petit, j'en ai des, enfin on ne</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2804.322000" data-stop="2810.830000">va pas, ici, voilà, celui-ci, il vient de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2810.850000" data-stop="2813.413000">Archibus Reports, de ce repo-là.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2814.423000" data-stop="2820.051000">Celui-ci, il vient de Archibus, OIL, MCD,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2820.071000" data-stop="2821.152000">Datamodel, Diagram.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2821.372000" data-stop="2822.173000">Donc de ce repo-là.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2824.096000" data-stop="2825.618000">Ici, il vient de gitboost.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2827.601000" data-stop="2830.024000">Donc j'avais dans ces différents répertoires,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2830.064000" data-stop="2832.027000">j'avais un sous-répertoire bin.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2832.708000" data-stop="2834.390000">Donc dans ces différents repos, j'avais un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2834.410000" data-stop="2835.271000">sous-répertoire bin.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2836.473000" data-stop="2839.997000">Et tous ces fichiers qui se trouvent directement</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2841.239000" data-stop="2842.641000">dans bin, sous les repos,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2843.330000" data-stop="2847.074000">se retrouvent in fine via des symlinks dans mon</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2847.094000" data-stop="2851.119000">bin à moi, dans mon directory.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2851.139000" data-stop="2855.605000">Ce qui veut dire que dans ma configuration de mon</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2855.625000" data-stop="2861.792000">shell, j'ai juste à dire path égale tilde slash</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2861.872000" data-stop="2863.554000">bin de point $path.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2864.595000" data-stop="2868.239000">Et donc il va connaître tous mes petits scripts</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2868.920000" data-stop="2872.124000">qui sont dans les bins d'un coup.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2872.144000" data-stop="2872.965000">Pour Org,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2874.059000" data-stop="2878.925000">Ça veut dire que, org-agenda-files, je fais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2879.045000" data-stop="2882.009000">pointer simplement vers tout ce qui se trouve</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2882.570000" data-stop="2883.571000">dans <code>~/org</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2885.033000" data-stop="2887.436000">Et vu que dans <code>~/org</code>, je retrouve tous les</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2887.456000" data-stop="2894.204000">fichiers Org du repo A, du repo B, et ainsi de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2894.305000" data-stop="2899.431000">suite, j’ai une seule variable, un seul <code>setq</code>, et</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2899.571000" data-stop="2901.073000">j'ai tous mes fichiers qui se retrouvent</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2901.093000" data-stop="2901.754000">directement dedans.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2903.573000" data-stop="2906.661000">Et donc, quelle que soit la machine, si j'ai</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2906.721000" data-stop="2908.284000">différentes machines, une machine pro, une</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2908.305000" data-stop="2908.966000">machine perso.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2909.768000" data-stop="2912.395000">Sur ma machine perso, j'aurai mon repo privé et</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2912.435000" data-stop="2913.196000">mon repo pro.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2913.878000" data-stop="2915.723000">Sur la machine professionnelle, j'aurai que le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2915.743000" data-stop="2916.705000">repo professionnel.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2917.191000" data-stop="2918.953000">En fait, mon fichier Emacs ne change pas.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2918.973000" data-stop="2919.834000">C'est le même fichier.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2920.354000" data-stop="2922.216000">Je dis juste scan tous les fichiers.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2922.617000" data-stop="2925.540000">Mon Emacs, en se lançant, il fait toujours un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2925.560000" data-stop="2928.241000">scan de tout ce qu'il y a. Donc, il va,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2928.242000" data-stop="2930.465000"><code>org-agenda-files</code> va regarder tout ce qu’il y a dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2930.485000" data-stop="2933.808000"><code>~/org</code> et tout ça est rajouté à mon
<code>org-agenda-files</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2934.649000" data-stop="2936.931000">Et donc, il va, à chaque lancement d'Emacs, il va</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2936.952000" data-stop="2938.493000">voir tous les fichiers qui sont dans la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2938.533000" data-stop="2939.194000">configuration.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2939.594000" data-stop="2941.636000">Mais c'est le même fichier Emacs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2941.656000" data-stop="2942.577000">Pour ça, il ne change pas.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2942.597000" data-stop="2944.860000">C'est le même fichier Emacs d'un côté ou de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2944.880000" data-stop="2945.140000">l'autre.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2945.811000" data-stop="2947.433000">Simplement d'aller voir tous les fichiers qui</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2947.473000" data-stop="2948.194000">sont en <code>~/org</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2948.755000" data-stop="2950.217000">Et en fait, c'est des symlinks vers les fichiers</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2950.237000" data-stop="2952.881000">qui sont dans un repo privé, un repo public, etc.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2954.703000" data-stop="2955.585000">Pareil avec le bin.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2956.466000" data-stop="2959.550000">Donc ça vient de 36 repositories.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2960.231000" data-stop="2961.272000">Pareil avec le Lisp.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2962.534000" data-stop="2965.218000">Justement, et ça me force un peu aussi à faire</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2965.238000" data-stop="2968.502000">une structure un peu plus standard.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2968.522000" data-stop="2972.528000">Donc ici, si je vais dans… dans <code>~/.dotfiles</code>…</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2973.216000" data-stop="2977.041000">gptel-commit-message.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2979.185000" data-stop="2980.306000">J'ai un répertoire.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2983.170000" data-stop="2984.232000">J'ai un répertoire Lisp.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2986.115000" data-stop="2989.940000">Et c'est dedans, donc c'est des lisps.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2989.980000" data-stop="2996.169000">J'ai ici le petit package, le petit fichier avec</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2996.189000" data-stop="2998.212000">la fonction pour écrire le message de commit.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="2999.494000" data-stop="3002.498000">Si je vais dans... Si je remonte...</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3002.866000" data-stop="3007.713000">Je vais dans Emacs Leuven Lisp.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3007.733000" data-stop="3010.898000">Là, j'ai tous mes fichiers de configuration.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3011.519000" data-stop="3016.707000">Et tout ça se retrouve en fait dans <code>~/lisp</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3018.530000" data-stop="3019.411000">Grâce à symlink.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3019.431000" data-stop="3024.679000">Donc si je vais ici dans <code>~/lisp</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3024.700000" data-stop="3026.502000">Lisp.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3026.522000" data-stop="3026.983000">Voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3028.583000" data-stop="3035.010000">Dotfiler, Emacs gptel, mon fichier de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3035.030000" data-stop="3036.972000">configuration, le nouveau avec gptel.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3038.294000" data-stop="3042.258000">Qu’il voit dans <code>~/lisp</code>, en fait, physiquement,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3042.278000" data-stop="3048.904000">il est dans <code>/home/fni/.dotfiles/emacs-leuven/lisp</code>,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3048.905000" data-stop="3049.826000">il est physiquement là.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3051.568000" data-stop="3055.873000">Celui avec le gptel-commit-message,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3056.511000" data-stop="3058.613000">Physiquement, il est dans un autre repo, il est</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3058.633000" data-stop="3062.216000">dans le repo gptel-commit-message, sous le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3062.236000" data-stop="3062.917000">répertoire Lisp.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3063.638000" data-stop="3065.880000">Donc en fait, en dessous de chaque repository,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3066.500000" data-stop="3069.003000">tous les fichiers qui sont là vont directement</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3069.023000" data-stop="3071.505000">tel quel dans le home et tous les répertoires qui</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3071.525000" data-stop="3074.007000">sont là vont directement tel quel dans le home.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3074.027000" data-stop="3077.110000">Donc en fait, il faut que je vois vraiment tous</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3077.130000" data-stop="3079.633000">mes repos comme des puzzles, pièces de puzzle.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3080.734000" data-stop="3083.076000">Et tous les fichiers ou tous les répertoires à la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3083.096000" data-stop="3085.618000">racine de chaque repo vont se retrouver via des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3085.658000" data-stop="3086.299000">symlinks</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3086.870000" data-stop="3088.231000">dans mon <code>~</code></span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3089.132000" data-stop="3090.554000">Directement en tant que fichier.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3091.695000" data-stop="3093.737000">Par exemple, j’ai toujours un <code>README.org</code> dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3093.757000" data-stop="3094.578000">chacun de mes repos.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3095.599000" data-stop="3098.382000">Là, c'est une exception parce que on peut dire</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3098.923000" data-stop="3100.905000">celui-là n’essaie pas parce que j’ai <code>README.org</code></span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3100.945000" data-stop="3101.966000">dans chacun de mes repos.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3102.487000" data-stop="3105.971000">Donc, il ne saurait pas créer des symlinks d'un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3105.991000" data-stop="3108.693000"><code>README.org</code> dans <code>~</code> vers tous les
repositories.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3109.154000" data-stop="3110.355000">Celui-là, c'est une exception.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3110.676000" data-stop="3113.839000">On me dit de ne pas le symlinker.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3114.291000" data-stop="3115.752000">Et tous les autres fichiers se retrouvent</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3115.772000" data-stop="3119.156000">directement dans mon <code>~</code> avec des symlinks.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3119.176000" data-stop="3120.577000">Et tous les répertoires, pareil.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3120.597000" data-stop="3123.020000">S'il y a des répertoires qui sont communs, donc</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3123.040000" data-stop="3124.781000">j'ai chaque fois plusieurs fois des répertoires</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3124.801000" data-stop="3127.104000">bin dans les repositories, donc à ce moment-là,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3127.124000" data-stop="3128.825000">il fait des symlinks sur les fichiers qui sont</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3128.845000" data-stop="3129.626000">dans les répertoires bin.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3130.887000" data-stop="3133.170000">Et donc pour le Lisp, pareil, dans Emacs, j'ai</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3133.190000" data-stop="3138.855000">juste dit de scanner tous les fichiers que j'ai</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3138.875000" data-stop="3141.117000">dans ~ Lisp et de faire un load library.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3141.137000" data-stop="3143.860000">Donc je fais un dolist avec un find, etc.,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3144.835000" data-stop="3147.619000">Et donc en une seule commande, qui reste la même</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3148.460000" data-stop="3151.205000">sur la machine professionnelle et la machine</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3151.245000" data-stop="3153.889000">privée, j'ai la même commande qui fait scanner</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3153.929000" data-stop="3156.853000">tout contenu mon <code>~/lisp</code> et donc dynamiquement,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3156.893000" data-stop="3159.737000">sur une machine, j'aurai potentiellement plus de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3159.757000" data-stop="3161.780000">fichiers Lisp ou pas, mais c'est la même commande</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3162.381000" data-stop="3164.604000">et je n'ai pas de config particulier à faire.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3165.085000" data-stop="3167.008000">C'est juste en fonction des repositories que je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3167.028000" data-stop="3169.532000">vais cloner sur telle ou telle machine que</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3170.213000" data-stop="3172.396000">j'aurai plus ou moins de fichiers disponibles et</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3172.416000" data-stop="3173.678000">tout ça est caché.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3174.569000" data-stop="3178.115000"><strong class="speaker-name">Sacha:</strong>  Il y a une question dans le chat.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3179.698000" data-stop="3187.551000">Ces liens sont gérés dans Git ?</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="3187.571000" data-stop="3188.373000"><strong class="speaker-name">Fabrice:</strong>  Non, non.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3188.914000" data-stop="3193.802000">Imaginons... Je peux le montrer en live si tu veux.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3193.822000" data-stop="3198.450000">Je vais aller dans Emacs... Donc, cd.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3199.713000" data-stop="3205.744000">Donc dans .dotfiles, dans emacs-chat-sacha-chua.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3207.367000" data-stop="3213.078000">Donc dans ce répertoire-là, j'ai une image, j'ai</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3213.098000" data-stop="3214.441000">quelques fichiers, d'accord ?</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3214.461000" data-stop="3218.809000">Et je vais rajouter un fichier.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3219.130000" data-stop="3221.434000">Fichier des mots, .Org.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3222.815000" data-stop="3224.457000">Voilà, donc ici, maintenant, j'ai un fichier de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3224.477000" data-stop="3226.779000">plus dans ce repository.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3227.460000" data-stop="3229.322000">Je pourrais l'ajouter dans Git, etc.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3229.342000" data-stop="3230.784000">Mais je n'ai même pas besoin de faire ça, en fait.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3230.864000" data-stop="3233.146000">Pour les symlinks, je peux... Donc, pour</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3233.166000" data-stop="3235.449000">l'instant, ce fichier Org, imaginons que j'ai des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3235.469000" data-stop="3237.110000">tâches dedans.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3237.130000" data-stop="3240.194000">Pour l'instant, il sera... Dans ce cas-là,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3240.214000" data-stop="3242.416000">d'ailleurs, je devrais... Enfin, je vais... Je</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3242.436000" data-stop="3244.819000">vais créer un répertoire Org et je vais le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3244.859000" data-stop="3246.921000">déplacer, fichier des mots, temps Org.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3247.181000" data-stop="3248.002000"><strong class="speaker-name">Prot:</strong>  Voilà.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="3248.743000" data-stop="3249.784000"><strong class="speaker-name">Fabrice:</strong>  Donc, ici, dans...</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3250.321000" data-stop="3253.424000">Dans ce répertoire-là, j'ai ce fichier de démo et</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3253.444000" data-stop="3254.966000">on peut imaginer que j'ai des tâches.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3254.986000" data-stop="3258.209000">J'aimerais bien voir ce fichier-là dans mon Org</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3258.229000" data-stop="3258.950000">agenda files.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3259.731000" data-stop="3262.834000">Et pour l'instant, il n'est pas visible à partir</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3262.854000" data-stop="3263.475000">de mon tilde.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3263.895000" data-stop="3265.257000">Il est physiquement là, mais il n'y a pas de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3265.317000" data-stop="3266.358000">symlink dessus.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3267.579000" data-stop="3269.461000">Pour que le symlink soit créé, je vais juste</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3269.501000" data-stop="3273.405000">faire .dot files bin.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3273.726000" data-stop="3275.427000">Dans bin, il y a la commande dot.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3276.669000" data-stop="3277.830000">On peut voir son aide.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3278.688000" data-stop="3280.911000">Il y a dot update, dot status, dot add.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3282.714000" data-stop="3284.737000">Add, c'est pour ajouter un nouveau repository.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3285.938000" data-stop="3288.762000">Et update, c'est pour scanner le contenu des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3288.803000" data-stop="3292.027000">repositories et mettre à jour les liens.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3292.147000" data-stop="3293.670000">Ici, je vais faire dot update.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3294.611000" data-stop="3296.333000">Et alors, je vais faire moins skip pool parce que</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3296.353000" data-stop="3299.197000">sinon, si on ne fait pas moins skip pool, il va</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3299.217000" data-stop="3300.199000">en même temps pooler les repos.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3300.219000" data-stop="3301.641000">Donc, on va essayer que tout soit à jour.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3302.242000" data-stop="3303.824000">Donc ici, je vais faire le <code>&#45;&#45;skip-pull</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3304.765000" data-stop="3306.568000">Et on va voir qu'il va créer un lien, en fait,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3307.308000" data-stop="3308.870000">Vers ce fichier-là, voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3310.253000" data-stop="3314.379000">Donc ici, il a créé, donc dans mon Org, donc dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3314.399000" data-stop="3317.044000">mon tilde en fait, ça c'est mon tilde, donc dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3317.064000" data-stop="3322.072000"><code>~/org</code>, fichier-demo.Org, il l’a lié vers la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3322.092000" data-stop="3324.956000">position physique du chemin.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3324.976000" data-stop="3328.081000">Donc ça veut dire que maintenant, je peux dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3328.101000" data-stop="3334.311000">Emacs, ici, donc si je fais <code>C-x C-f</code>, dans Org,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3336.890000" data-stop="3339.653000">donc c'est des fichiers, voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3339.673000" data-stop="3340.454000">Il est directement là.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3342.176000" data-stop="3342.857000">Donc il est vide.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3343.878000" data-stop="3346.742000">Voilà, et donc ici, fichiers des mots, ça pointe</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3347.102000" data-stop="3349.425000">dans mon type d'org, il pointe vers sa position</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3349.445000" data-stop="3349.765000">physique.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3351.007000" data-stop="3353.489000">Donc les symlinks, c'est lui qui gère ça, c'est</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3353.529000" data-stop="3356.653000">lui qui met à jour en fonction des fichiers</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3356.673000" data-stop="3358.095000">ajoutés ou des fichiers supprimés.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3358.115000" data-stop="3360.217000">Il garde, il compare, voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3360.237000" data-stop="3361.699000">Il y a tout ça dans les repos.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3362.118000" data-stop="3364.381000">Il y a tous ces symlinks qui existent à partir de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3364.421000" data-stop="3366.043000">~ et il met à jour.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3366.343000" data-stop="3367.645000">Il rajoute ou il retire en fonction.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3368.847000" data-stop="3371.070000"><strong class="speaker-name">Prot:</strong>  C'est Git qui garde toujours le</span> <span class="audio-time caption" data-speaker="Prot" data-start="3371.350000" data-stop="3372.612000">fichier original.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="3373.453000" data-stop="3374.454000"><strong class="speaker-name">Fabrice:</strong>  Et donc dans Git, tu as les</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3374.494000" data-stop="3375.776000">fichiers physiques.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3376.056000" data-stop="3377.898000">Git ne voit pas de symlinks, etc.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3378.099000" data-stop="3379.721000">Dans Git, tu as les fichiers physiques.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3379.821000" data-stop="3382.404000">Ici, si je vais... Imaginons que je mette Hello.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3383.506000" data-stop="3386.069000">Dans Git, je vais faire vc-dir, <code>C-&lt;f9&gt;</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3387.831000" data-stop="3388.652000"><code>C-&lt;f9&gt;</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3389.954000" data-stop="3390.775000">Qu'est-ce qui se passe ?</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3393.168000" data-stop="3398.893000">Peut-être parce qu'il n'est pas... Ah oui, c'est</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3398.994000" data-stop="3400.635000">parce que justement, je suis sur le Simlink, là,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3400.655000" data-stop="3404.178000">il faut que j'aille dans dotfiles.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3404.839000" data-stop="3409.163000">Donc c'était Emacs, chat, Sacha, voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3409.403000" data-stop="3410.625000">Donc là, je fais <code>C-&lt;f9&gt;</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3411.565000" data-stop="3414.208000">Et donc je vois que j'ai un nouveau fichier à ajouter.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3414.288000" data-stop="3415.549000">Et là, ce n'est pas un Simlink, ce sera le</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3415.569000" data-stop="3416.210000">fichier physique.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3416.810000" data-stop="3419.853000">Donc au niveau Git, c'est les fichiers physiques</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3419.873000" data-stop="3420.694000">dans des repos.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3420.961000" data-stop="3424.306000">Simplement, conventionnellement, tous mes repos</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3424.326000" data-stop="3428.392000">vont se retrouver en dessous de <code>~/.dotfiles</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3428.872000" data-stop="3433.299000">C'est là qu'ils scannent tout ce qu'il y a en</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3433.339000" data-stop="3436.463000">dessous de <code>~/.dotfiles</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3436.483000" data-stop="3438.186000">C'est là qu'ils scannent tous les repositories et</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3438.226000" data-stop="3442.191000">qu'ils regardent le contenu de chaque repository.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3442.412000" data-stop="3445.075000">Si j'avais ton site web ou ta configuration, tu</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3445.096000" data-stop="3447.559000">rajoutes un fichier, je vais faire <code>dot update</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3448.163000" data-stop="3449.024000">Il va les puller</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3449.264000" data-stop="3451.466000">Et puis, si tu as rajouté des fichiers, si tu as</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3451.486000" data-stop="3453.368000">fait des modifications, il ne se passe rien.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3453.388000" data-stop="3454.789000">Au niveau des symlinks, il ne se passe rien.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3455.930000" data-stop="3458.032000">Puisque simplement, j'aurai la nouvelle version à</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3458.052000" data-stop="3461.195000">jour dans mon clone, dans le sandbox.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3461.995000" data-stop="3463.237000">Mais s'il y a des nouveaux fichiers ou des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3463.257000" data-stop="3465.839000">fichiers qui ont été enlevés, il va rajouter ou</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3465.999000" data-stop="3467.320000">effacer des symlinks.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3468.621000" data-stop="3470.863000">Maintenant, si j'efface ce fichier-là, donc un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3470.883000" data-stop="3478.170000">delete, je vais l’effacer de <code>.dotfiles</code>. Emacs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3480.850000" data-stop="3483.292000">Sacha Chua, le chat.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3483.813000" data-stop="3488.317000">Donc je vais effacer le répertoire ou le fichier ici.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3489.518000" data-stop="3491.439000">Donc hash, yes.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3491.860000" data-stop="3495.703000">Voilà, le fichier n'existe plus dans mon repository.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3496.864000" data-stop="3501.188000">Donc je vais relancer dot update avec le
<code>&#45;&#45;skip-pull</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3502.509000" data-stop="3505.612000">Il va montrer rm, voilà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3505.632000" data-stop="3510.216000">Donc il vient d'effacer le symlink vers tilt Org.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3512.136000" data-stop="3517.664000">C'est génial parce qu'en fait, dans le temps,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3517.684000" data-stop="3520.328000">chaque fois que j'ai rajouté un repository, il</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3520.368000" data-stop="3522.311000">fallait voir où se trouvent les bins, puis faire</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3522.451000" data-stop="3526.096000">add dans le path de tous les bins.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3527.038000" data-stop="3529.982000">Ici, non, tout se retrouve, pour autant que ce</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3530.002000" data-stop="3531.964000">soit directement dans le repository</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3531.965000" data-stop="3536.491000">sous <code>./bin</code>, ça va se retrouver après le symlink dans</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3536.532000" data-stop="3537.553000"><code>~/bin</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3538.866000" data-stop="3542.656000">Et donc j'ai qu'à rajouter une fois le fait que</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3542.716000" data-stop="3545.543000">Tiltbin est dans mon path.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3545.563000" data-stop="3547.448000">Donc ça pourrait marcher pour les manpaths, pour</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3547.468000" data-stop="3549.473000">les fichiers d'info, enfin pour les lists, pour</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3549.493000" data-stop="3551.779000">l'org, donc c'est extrêmement pratique pour ça.</span> <p></p><div class="transcript-heading"><span class="audio-time" data-start="3552.000000">59:12</span> <strong>Enseignement d'Emacs</strong></div><p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3552.670000" data-stop="3555.214000"><strong class="speaker-name">Sacha:</strong>  Pendant les dernières minutes,</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3555.735000" data-stop="3560.462000">j'aimerais connaître ta point de vue sur</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3560.683000" data-stop="3562.145000">l'enseignement d'Emacs.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3563.527000" data-stop="3569.136000">Comment tu structures ton cours pour ne pas noyer</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3569.817000" data-stop="3572.181000">les gens sur les fonctionnalités?</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="3574.355000" data-stop="3579.902000"><strong class="speaker-name">Fabrice:</strong>  Mon cours, je le vois plus comme</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3579.922000" data-stop="3581.825000">étant un cours pour des gens qui connaissent déjà</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3581.845000" data-stop="3585.770000">Emacs, donc c'est plutôt pour leur montrer des</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3585.950000" data-stop="3589.375000">choses qu'ils ne connaissent peut-être pas parce</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3589.395000" data-stop="3591.798000">qu'ils n'ont pas lu des dizaines ou des centaines</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3591.818000" data-stop="3593.320000">ou des milliers de fichiers de configuration</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3593.340000" data-stop="3593.701000">comme moi.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3595.603000" data-stop="3598.187000">Donc voilà, c'est des gens qui a priori</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3598.207000" data-stop="3600.630000">connaissent déjà Emacs, donc ils savent faire</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3601.051000" data-stop="3602.893000">enregistrer, ouvrir un fichier,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3603.599000" data-stop="3605.581000">Et simplement, je vais leur montrer des choses en</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3605.621000" data-stop="3606.962000">plus, comme Helm.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3607.022000" data-stop="3608.504000">Moi, j'utilise Helm pour tout ce qui est la</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3608.524000" data-stop="3609.845000">gestion des fichiers et des buffers.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3612.208000" data-stop="3614.050000">Je vais leur montrer aussi des fonctionnalités</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3614.070000" data-stop="3617.053000">parfois qui sont peu utilisées ou parfois un peu</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3617.073000" data-stop="3623.079000">cachées, donc peu utilisées comme les macros ou</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3623.099000" data-stop="3628.044000">le multiple curseur qu'on ne connaît pas</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3628.064000" data-stop="3629.886000">nécessairement et qui n'est pas standard, mais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3629.906000" data-stop="3631.007000">qui est facile à installer.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3631.510000" data-stop="3634.053000">ou l'édition rectangle, qui est standard, mais</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3634.073000" data-stop="3636.817000">que pendant longtemps, je n'avais pas connu.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3637.838000" data-stop="3640.101000">Et donc voilà, je vais leur montrer des choses</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3640.121000" data-stop="3640.521000">comme ça.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3640.822000" data-stop="3642.824000">A priori, c'est des gens qui connaissent déjà,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3643.064000" data-stop="3644.246000">donc ça va un peu plus vite.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3645.007000" data-stop="3648.191000">Maintenant, j'avais quand même une fois dans un</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3648.211000" data-stop="3651.535000">de mes cours, Martin, qui ne me connaissait pas</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3651.575000" data-stop="3652.176000">du tout Emacs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3652.196000" data-stop="3653.778000">Son père connaissait Emacs, il l'avait amené de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3653.798000" data-stop="3656.421000">force presque.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3656.721000" data-stop="3663.870000">Si on écoute et qu'on suit, je repassais aussi.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3663.890000" data-stop="3667.355000">En fait, je réexpliquais tout depuis le début.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3667.375000" data-stop="3671.440000">J’avais des slides sur <code>C-a</code>, <code>C-e</code>,
<code>M-n</code>,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3671.540000" data-stop="3673.943000"><code>M-p</code>, <code>C-s</code>, <code>C-r</code>.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3674.163000" data-stop="3677.467000">Je réexpliquais tout plus ou moins rapidement en</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3677.507000" data-stop="3681.092000">fonction du niveau des gens, s'ils connaissent déjà.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3681.595000" data-stop="3685.380000">Je vais aller assez vite.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3685.561000" data-stop="3686.923000">En fait, c'est plus facile si les gens</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3686.943000" data-stop="3688.805000">connaissent déjà pour aller plus vite.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3688.905000" data-stop="3691.769000">Sinon, il faudrait plus que deux jours de formation.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3692.150000" data-stop="3694.073000">En fait, j'ai quand même fait quatre jours de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3694.113000" data-stop="3694.874000">formation Emacs.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3695.555000" data-stop="3697.277000">Donc, c'est deux jours sur ce que j'appelle les</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3697.357000" data-stop="3698.118000">fondamentaux.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3698.559000" data-stop="3702.164000">Tout ce qui est édition rectangle, macro,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3702.184000" data-stop="3704.107000">multiple curseur, donc avec des choses en plus.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3704.808000" data-stop="3707.391000">Et puis, deux jours plus orientés sur Org.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3708.473000" data-stop="3709.915000">Il y a tellement de choses dans Org.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3710.401000" data-stop="3713.085000">Il y a les Org agendas, le time blocking que</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3713.105000" data-stop="3716.671000">j'utilise pour tout, pour mon temps, pour faire</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3716.691000" data-stop="3717.512000">des factures derrière.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3718.834000" data-stop="3722.060000">Et puis il y a évidemment Babel, Tangling.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3723.001000" data-stop="3725.165000">Donc tout mon fichier de configuration Emacs, il</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3725.285000" data-stop="3727.849000">est dans un fichier qui est tanglé.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3728.951000" data-stop="3731.475000">Un fichier de doc, la code littérée de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3731.495000" data-stop="3735.241000">programming de Knuth, où je décris pour un humain.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3735.681000" data-stop="3738.045000">Et puis j'ai des petits bouts de code qui vont se retrouver.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3738.616000" data-stop="3741.642000">dans des fichiers de code où il faut pour être exécuté.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3741.662000" data-stop="3743.685000">Mais l'objectif, c'est de faire un document qui</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3743.786000" data-stop="3745.048000">soit lisible par un humain d'abord.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3747.432000" data-stop="3751.760000">Et donc, même en quatre jours, ça passe vite.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3751.780000" data-stop="3754.886000">Il y a trop à montrer.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3756.571000" data-stop="3760.223000"><strong class="speaker-name">Sacha:</strong>  C'est aussi le point lié à des</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3760.243000" data-stop="3761.889000">incertitudes économiques.</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3761.949000" data-stop="3765.622000">Quels sont les avantages du coaching ou de</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3766.103000" data-stop="3769.635000">l'enseignement humain par rapport à l'IA?</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="3772.231000" data-stop="3774.033000"><strong class="speaker-name">Fabrice:</strong>  Donc, répète les avantages du</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3774.053000" data-stop="3776.777000">coaching par rapport à l'IA.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3776.917000" data-stop="3782.324000"><strong class="speaker-name">Sacha:</strong>  Parce qu'il est facile de poser des</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3782.364000" data-stop="3787.271000">questions à l'IA gratuitement, mais je pense que</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3787.872000" data-stop="3794.000000">tes formations, ton cours ont des avantages.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="3795.261000" data-stop="3796.883000"><strong class="speaker-name">Fabrice:</strong>  Absolument.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3797.825000" data-stop="3801.850000">En fait, dans tous les domaines, c'est comme ça.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3802.471000" data-stop="3805.394000">C'est que l'IA, si j'ai une question précise ou</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3805.414000" data-stop="3808.497000">une question claire, il va pouvoir me répondre</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3808.597000" data-stop="3811.780000">très facilement et de manière avec plein de</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3811.820000" data-stop="3815.184000">détails, donc extrêmement fantastique.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3815.204000" data-stop="3819.468000">Mais l'IA, le problème, c'est qu'on ne sait pas</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3819.488000" data-stop="3820.329000">ce qu'on ne sait pas.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3821.229000" data-stop="3827.836000">Et donc, dans la formation, je me doute que plein</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3827.856000" data-stop="3829.678000">de gens, même qui sont des utilisateurs d'Emacs</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3829.698000" data-stop="3830.959000">depuis 20 ans,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3831.479000" data-stop="3834.123000">Plein de gens ne connaissent pas l'édition</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3834.143000" data-stop="3837.729000">rectangle, utilisent peu ou pas les macros, ne</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3837.769000" data-stop="3843.217000">connaissent pas Wdired, le Dired mode éditable, par exemple.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3844.559000" data-stop="3847.123000">Si je mets des photos sur mon disque, je veux</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3847.143000" data-stop="3849.607000">mettre la date de la photo dans le nom du</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3849.647000" data-stop="3852.592000">fichier, je vais passer en mode direct éditable</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3853.153000" data-stop="3854.795000">et je vais faire une petite macro qui va me</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3854.815000" data-stop="3859.663000">copier la date.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3859.930000" data-stop="3864.460000">Et donc voilà, en fait, ChatGPT, si je dis,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3864.461000" data-stop="3866.626000">ChatGPT, explique-moi comment marche l'édition</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3866.646000" data-stop="3868.310000">rectangle, il va l'expliquer.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3868.330000" data-stop="3870.655000">En fait, il ne va jamais répondre à dire, tiens,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3870.675000" data-stop="3872.219000">il y a l'édition rectangle que tu ne connais pas.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3872.780000" data-stop="3873.602000">C'est ça le problème.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3874.021000" data-stop="3877.586000">C'est justement de pouvoir juger ce que les gens</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3877.626000" data-stop="3879.428000">savent et de ce qu'on pourrait leur apporter en</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3879.448000" data-stop="3879.769000">plus.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3880.290000" data-stop="3884.856000">Et là, l'IA va être moins bonne parce qu'elle n'a</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3884.876000" data-stop="3887.940000">pas des propositions comme ça de choses que tu ne</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3887.960000" data-stop="3888.621000">connais pas.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3888.661000" data-stop="3891.385000">C'est de ce point de vue-là que c'est beaucoup</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3891.405000" data-stop="3895.991000">plus pratique en encadrement personnel ou par</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3896.011000" data-stop="3898.555000">groupe où on peut expliquer des choses qu'on</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3898.575000" data-stop="3900.558000">pense que les gens ne savent pas et donc ils ne</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3900.578000" data-stop="3902.480000">vont jamais poser la question à l'IA là-dessus,</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3903.041000" data-stop="3903.842000">par définition.</span> <p></p><span class="audio-time caption" data-speaker="Sacha" data-start="3904.446000" data-stop="3912.317000"><strong class="speaker-name">Sacha:</strong>  Merci beaucoup à vous deux, à tout le</span> <span class="audio-time caption" data-speaker="Sacha" data-start="3912.337000" data-stop="3912.938000">monde.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="3913.038000" data-stop="3914.480000"><strong class="speaker-name">Fabrice:</strong>  Merci beaucoup pour cette</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3914.500000" data-stop="3916.363000">organisation, cette deuxième séance.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3917.905000" data-stop="3919.827000">Peut-être à une prochaine fois.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3919.847000" data-stop="3924.975000">Merci beaucoup en tout cas pour l'organisation, Sacha.</span> <span class="audio-time caption" data-speaker="Fabrice" data-start="3925.555000" data-stop="3926.777000">Au revoir.</span> <p></p><span class="audio-time caption" data-speaker="Prot" data-start="3927.899000" data-stop="3929.661000"><strong class="speaker-name">Prot:</strong>  À la prochaine, au revoir.</span> <p></p><span class="audio-time caption" data-speaker="Fabrice" data-start="3934.315000" data-stop="3936.040000"><strong class="speaker-name">Fabrice:</strong>  Salut, je vais vite dans l'autre.</span></div>
<p></p>


<a name="end-emacs-chat-30-transcript"></a></details>
</div>
</div>
<div id="outline-container-emacs-chat-30-fabrice-niessen-en-fran-ais-partie-2-chat" class="outline-3">
<h3 id="emacs-chat-30-fabrice-niessen-en-fran-ais-partie-2-chat"><a href="https://sachachua.com/blog/feed/index.xml#emacs-chat-30-fabrice-niessen-en-fran-ais-partie-2-chat">Chat</a></h3>
<div class="outline-text-3" id="text-emacs-chat-30-fabrice-niessen-en-fran-ais-partie-2-chat">
<div class="chat" id="orgc081485">
<ul class="org-ul">
<li><span class="nick">protesilaos:</span> ​à bientôt!</li>
<li><span class="nick">julienlambe78:</span> ​Bonjour de Belgique 🙂 Sacha, le volume de votre micro est un peu bas. Nous n'entendons pas bien vos questions. Pensez-vous pouvoir augmenter le volume un petit peu?</li>
<li><span class="nick">SaMusz73:</span>​ ​synlinks `ln -s` et hardlinks `ln ` vers des fichiers sont gérés dans git ? J'ai cru comprendre que git gére assez mal ces symlinks</li>
<li><span class="nick">SaMusz73:</span> Merci :)</li>
<li><span class="nick">JeromeVanLunter:</span> ​​MERCI</li>
<li><span class="nick">SaMusz73:</span> Merci à vous tous !</li>
</ul>

</div>
</div>
</div>
<div><a href="https://sachachua.com/blog/2026/08/27-aout-emacs-chat-fabrice-niessen-en-francais-partie-2/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F08%2F27-aout-emacs-chat-fabrice-niessen-en-francais-partie-2%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		</item><item>
		<title>J'aime faire des erreurs pendant que j'apprends le français</title>
		<link>https://sachachua.com/blog/2026/09/j-aime-faire-des-erreurs-pendant-que-j-apprends-le-francais/</link>
		<dc:creator><![CDATA[Sacha Chua]]></dc:creator>
		<pubDate>Tue, 01 Sep 2026 13:35:14 GMT</pubDate>
    <category>french</category>
		<guid isPermaLink="false">https://sachachua.com/blog/2026/09/j-aime-faire-des-erreurs-pendant-que-j-apprends-le-francais/</guid>
		<description><![CDATA[<p>
Je veux répondre à <a href="https://protesilaos.com/french/2026-08-28-petit-a-petit/">l'article récent de Prot</a> sur l'apprentissage du français en deux parties : sur le fait de profiter des erreurs en apprenant et sur la motivation liée aux connexions.
</p>

<p>
Je me suis rendu compte qu'apprendre à faire de meilleures erreurs est une des raisons pour lesquelles j'aime l'apprentissage d'une langue étrangère. J'ai commencé à apprendre le français parce que ma fille a commencé à l'apprendre à l'école. Dans ce domaine, nous nous ressemblons assez. J'ai plus de motivation et de compréhension de mon processus d'apprentissage, et elle a la neuroplasticité d'un cerveau plus jeune. Donc, c'est une bonne occasion pour moi de montrer comment apprendre une chose difficile. Elle voit que j'utilise les cartes mémoire, elle lit parfois mon journal, elle me rejoint occasionnellement à mes séances avec mon tuteur. Elle voit que je travaille sur le sujet, mais elle voit aussi que nous le transformons en un jeu. Nous parlons du système de répétition espacée et de l'efficacité des moyens mnémotechniques, tels que les images vivantes et les phrases personnelles. Ses expériences et celles de ses camarades nous donnent des occasions de parler de l'effet Dunning-Kruger, de la surconfiance du débutant et de la vallée du désespoir par laquelle on doit passer. (Ce n'est pas si décourageant si on le connaît.) Pendant notre dîner, je partage mon plaisir en essayant des challenges comme mes entretiens d'Emacs Chat en français ou en écrivant des articles techniques. Les détails ne sont pas importants. Ce qui importe, c'est la joie d'apprendre, qui manque à l'école.
</p>

<p>
Pour ma fille en ce moment, l'apprentissage autodidacte sera peut-être plus important que l'éducation systémique. Donc il faut apprendre comment être guidé par les désirs, par les expériences et par les résultats. Notre cerveau a tendance à tomber profondément dans un nouveau loisir. C'est possible de l'enrichir en le liant à d'autres motivations. Un point de vue expérimental réduit la peur. Les erreurs et les remarques ne sont que des données.
</p>

<p>
Du coup, ma fille et moi approchons le français comme ça :
</p>
<ul class="org-ul">
<li>C'est une matière obligatoire à l'école.</li>
<li>Le cours collectif à l'école ne sera probablement pas efficace, selon l'expérience d'autres étudiants.</li>
<li>Nous pouvons nous amuser en contournant les limitations du système. C'est un acte de résistance.</li>
<li>Je vais l'aborder comme un laboratoire d'apprentissage, et elle est la bienvenue pour venir jouer avec moi.</li>
</ul>

<p>
Cette approche suffit pour ma fille en ce moment. Forcément, il y a des réflexions dont je ne parle pas avec elle (parce qu'elle va regarder Pokémon; elle est une enfant après tout). Ça me plaît de les explorer, et je les partage au cas où il y aurait quelque chose d'utile pour d'autres étudiants. :)
</p>

<p>
Désir : Dans mes intérêts, je suis fortement motivée par les connexions personnelles comme avec ma fille ou avec mon mari. Donc pendant qu'elle relit la série de bandes dessinées des Royaumes de Feu en anglais, je lis la même série en français. (Un jour, elle me dira « Arrête, maman ! Trouve ton propre intérêt ! » Jusqu'à ce moment-là, je la suis. Maintenant, elle partage constamment ses morceaux préférés dans les livres avec moi.) J'aime bien mes séances avec mon tuteur. J'apprécie vraiment les conversations d'Emacs Chat et les commentaires sur mes articles et mes vidéos. J'aime bien aussi les échanges de blogs et de vidéos avec Prot en français, et j'ai hâte de me connecter aux autres. En plus, je pense que les améliorations à mon flux de travail (particulièrement sur Emacs) peuvent servir à d'autres personnes qui apprennent une langue étrangère : plus directement s'ils apprennent aussi le français, mais même s'ils apprennent l'anglais ou d'autres langues. Les idées peuvent être utiles. Si je peux ancrer cet intérêt dans plus de connexions personnelles, il peut durer. Par conséquent, une grande partie de mon travail est de renforcer le désir d'apprendre, et mon désir d'apprécier, de me connecter, et d'aider d'autres personnes m'aide pour cela. Si un jour j'ai un rapport convivial avec des personnes, que ce soit en anglais ou en français, ce sera génial. Je pourrai coopérer avec d'autres étudiants de français pour nous améliorer ensemble, ou peut-être arriver à un niveau suffisant où des francophones seront plus à l'aise pour parler avec moi sur Emacs en échangeant mutuellement des connaissances.
</p>

<p>
Les expériences que j'adore :
</p>

<ul class="org-ul">
<li>Mon journal</li>
<li>Mes articles</li>
<li>Mes améliorations à mon flux de travail</li>
<li>Mes séances de prononciation</li>
<li>Mes séances de conversation</li>
<li>Mes diffusions en direct</li>
</ul>

<p>
Des expériences que je considère pour mes prochaines étapes :
</p>

<ul class="org-ul">
<li>Lire mes articles ou mon journal à voix haute, peut-être avec l'analyse de prononciation par l'IA pour identifier les phrases à peaufiner avec mon tuteur ?</li>
<li>Regarder des émissions sans sous-titres</li>
<li>Dicter à mon téléphone</li>
<li>Essayer d'autres tuteurs en plus de celui que j'ai déjà ; je peux consacrer le même budget que celui que j'ai mis à côté pour les activités extrascolaires de ma fille</li>
<li>Participer aux échanges de langue ou de connaissances : Avec des utilisateurs d'Emacs ? Avec les francophones natifs qui veulent améliorer leur niveau d'anglais ? Avec d'autres étudiants de français ? Je me demande comment profiter d'un temps un peu plus libre et prévisible une fois que ma fille s'habitue à l'école virtuelle. Quelqu'un veut me rejoindre pour des conversations privées ou publiques ?</li>
</ul>

<p>
Même si je vis de mes économies, je suis heureuse de consacrer un peu d'argent pour engager des tuteurs et soutenir de belles personnes. C'est un petit acte de résistance contre l'hyper-médiatisation de l'IA.
</p>

<p>
Les résultats, ce qui inclut les erreurs : Ma fille et moi avons parlé de nombreuses fois de l'importance de la gestion des erreurs pour mieux apprendre. Une partie de l'apprentissage est de sélectionner un bon niveau de travail. Trop facile, c'est ennuyeux. Trop dur, ça ne marche pas. Si on a un bon enseignant, il peut nous aider à choisir un bon niveau. Si on apprend soi-même, on doit calibrer son approche. Les erreurs sont les guides.
</p>

<p>
Il y a des sujets où on doit procéder très lentement pour éviter d'ancrer des erreurs, comme la musique ou les mathématiques. Ils demandent de la précision. Quand je travaille au piano, je ne dois pas me dépêcher, ou je ne fais que trébucher. D'abord la précision, puis la vitesse.
</p>

<p>
Je pense que l'apprentissage de la langue n'est pas exactement comme ça. On doit oser plus qu'on ne peut atteindre. Oui, c'est important d'éviter d'ancrer de mauvaises habitudes de prononciation ou d'expression, mais c'est plus important d'éviter d'être paralysé par la peur de faire des erreurs. Donc, c'est utile d'avoir beaucoup d'occasions de le pratiquer dans un contexte sécurisé, comme l'écriture ou mes conversations avec mon tuteur. L'écriture me donne l'opportunité d'identifier les erreurs de genre et de conjugaison, et de pratiquer des moyens mnémotechniques. Par exemple, le livre « Fluent Forever » conseille d'imaginer quelque chose exploser s'il est au masculin ou brûler s'il est au féminin. Les calques et les mots maladroits m'aident à apprendre davantage d'expressions natives et à savourer les différences entre les langues. C'est aussi utile d'agrandir graduellement ma zone de confort, comme dans mes conversations et mes diffusions en direct.
</p>

<p>
De mon côté, je sais que c'est mieux si je me focalise juste sur l'étape devant moi au lieu de m'inspirer de grands rêves. Petit à petit, seulement pour le plaisir actuel. J'ai l'immense privilège d'être détendue. En sachant que mon intérêt peut passer à d'autres sujets à un moment donné, j'essaie de partager des ressources en chemin. (Ça pourrait durer; je garde mon intérêt pour Emacs très longtemps.) Où se retrouvera-t-on ? Je ne sais pas, mais ce sera peut-être une bonne aventure. Voulez-vous me rejoindre ?
</p>

<p>
Voici aussi : <a href="https://sachachua.com/blog/2026/07/tisser-des-liens-personnels-pour-mon-apprentissage-du-francais/">https://sachachua.com/blog/2026/07/tisser-des-liens-personnels-pour-mon-apprentissage-du-francais/</a>
</p>
<div><a href="https://sachachua.com/blog/2026/09/j-aime-faire-des-erreurs-pendant-que-j-apprends-le-francais/index.org">View Org source for this post</a></div>
<p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F09%2Fj-aime-faire-des-erreurs-pendant-que-j-apprends-le-francais%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></description>
		</item>
	</channel>
</rss>