<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>heiwiper's website</title><link>https://heiwiper.com/</link><description>Heiwiper's personal website — posts about tools, workflows, and other things.</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Tue, 08 Sep 2026 08:00:00 +0100</lastBuildDate><atom:link href="https://heiwiper.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Staging and Committing using Magit (Video)</title><link>https://heiwiper.com/posts/magit-stage-and-commit/</link><pubDate>Tue, 08 Sep 2026 08:00:00 +0100</pubDate><author>heiwiper</author><guid>https://heiwiper.com/posts/magit-stage-and-commit/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;&#10;&#9;&#9;&#9;&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/muVGcc8R39U?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;&#10;&#9;&#9;&lt;/div&gt;&#10;&#10;&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;I have covered the Magit Status interface in &lt;a class="no-underline text-link hover" href="https://heiwiper.com/posts/magit-status-tour/"&gt;my last post&lt;/a&gt;&#10;, which is the Magit equivalent of running &lt;code&gt;git status&lt;/code&gt;. In this article I will go through two other very commonly used &lt;code&gt;git&lt;/code&gt; workflows: staging and committing. Magit really excels at these, as we will see in the rest of this post.&lt;/p&gt;</description><content:encoded>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;&#10;&#9;&#9;&#9;&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/muVGcc8R39U?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;&#10;&#9;&#9;&lt;/div&gt;&#10;&#10;&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;I have covered the Magit Status interface in &lt;a class="no-underline text-link hover" href="https://heiwiper.com/posts/magit-status-tour/"&gt;my last post&lt;/a&gt;&#10;, which is the Magit equivalent of running &lt;code&gt;git status&lt;/code&gt;. In this article I will go through two other very commonly used &lt;code&gt;git&lt;/code&gt; workflows: staging and committing. Magit really excels at these, as we will see in the rest of this post.&lt;/p&gt;&#10;&lt;h2 id="staging"&gt;Staging&lt;/h2&gt;&#10;&lt;p&gt;Staging in Magit benefits from the intuitive Magit Status interface which adds a sense of responsiveness to the process. Staging or unstaging changes is instantly reflected in the same interface. It gives an impression of moving things around. Navigating through changes is as simple as moving the cursor around using the arrow keys, or the more efficient approach: using the keys &lt;code&gt;n&lt;/code&gt; for &lt;code&gt;next&lt;/code&gt; and &lt;code&gt;p&lt;/code&gt; for &lt;code&gt;previous&lt;/code&gt; to navigate through one change at a time.&lt;/p&gt;&#10;&lt;figure&gt;&lt;img src="https://heiwiper.com/img/magit-stage-and-commit/1.png"&#10;&#9;&#9;&#9;alt="I like to imagine the 3 sections Untracked files, Unstaged changes and Staged changes as a 3-shelf drawer where each shelf represents a section and the objects in the shelf represent the changes that we would move around."&gt;&lt;figcaption&gt;&#10;&#9;&#9;&#9;&lt;p&gt;I like to imagine the 3 sections Untracked files, Unstaged changes and Staged changes as a 3-shelf drawer where each shelf represents a section and the objects in the shelf represent the changes that we would move around.&lt;/p&gt;&#10;&#9;&#9;&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;p&gt;The best part about staging changes in Magit is that we only press the &lt;code&gt;s&lt;/code&gt; key to &lt;strong&gt;stage&lt;/strong&gt; literally anything, whether it is a single line, a hunk, a whole file or all changes (we can also use the capitalized letter &lt;code&gt;S&lt;/code&gt; or &lt;code&gt;U&lt;/code&gt; to &lt;strong&gt;stage&lt;/strong&gt; or &lt;strong&gt;unstage&lt;/strong&gt; all changes). The only difference is where we put the cursor before we press the &lt;code&gt;s&lt;/code&gt; key. Staging a part of a hunk requires selecting the lines that we want to stage. Unstaging is performed in the same exact way except that we use the key &lt;code&gt;u&lt;/code&gt; for &lt;strong&gt;unstaging&lt;/strong&gt;. In addition to that we can also discard changes in a similar way using the key &lt;code&gt;k&lt;/code&gt;. All these shortcuts are displayed in the help buffer for discovery.&lt;/p&gt;&#10;&lt;h2 id="committing"&gt;Committing&lt;/h2&gt;&#10;&lt;p&gt;This Git command is essentially straightforward. The changes should be already staged at this point, and we just need to save them and add a message to describe changes. Magit improves this workflow by adding more workflows related to commits. Let&amp;rsquo;s first check the Magit Commit menu in the following image which appears when we press the &lt;code&gt;c&lt;/code&gt; key.&lt;/p&gt;&#10;&lt;figure&gt;&lt;img src="https://heiwiper.com/img/magit-stage-and-commit/2.png"&#10;&#9;&#9;&#9;alt="Magit Commit menu appears in the bottom half of the screen."&gt;&lt;figcaption&gt;&#10;&#9;&#9;&#9;&lt;p&gt;Magit Commit menu appears in the bottom half of the screen.&lt;/p&gt;&#10;&#9;&#9;&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;p&gt;We will start with my favorite command &lt;strong&gt;Instant fixup&lt;/strong&gt;, before going over the menu sections.&lt;/p&gt;&#10;&lt;p&gt;The &lt;strong&gt;Instant fixup&lt;/strong&gt; command takes staged changes and adds them to any existing commit. For example, let&amp;rsquo;s imagine we introduced a new API route in commit &lt;strong&gt;A&lt;/strong&gt; and then made a couple of commits (&lt;strong&gt;B&lt;/strong&gt; and &lt;strong&gt;C&lt;/strong&gt;) on top. Later we review the commits for this API and decide to rename the route, but that commit is now a few commits back, the tip is &lt;strong&gt;C&lt;/strong&gt;. The easy way to fix it is to add a new commit &lt;strong&gt;D&lt;/strong&gt;; the cleaner way is to fold the change into commit &lt;strong&gt;A&lt;/strong&gt; and rewrite the history from &lt;strong&gt;A&lt;/strong&gt; through &lt;strong&gt;C&lt;/strong&gt;. But rebasing creates friction, and one would avoid it if not strictly necessary. &lt;strong&gt;Instant fixup&lt;/strong&gt; takes the clean approach and simplifies it: trigger the command, indicate the commit to add the changes to, and that&amp;rsquo;s it. This makes commits very forgiving, any commit can be altered in just a few keystrokes. I have previously read an article making this point, comparing how commits feel mutable in Jujutsu VCS compared to Git. In reality Git allows similar mutability; it&amp;rsquo;s just hidden behind a couple of commands, and users tend to work around such pain points rather than figure out the proper way to achieve what they want.&lt;/p&gt;&#10;&lt;p&gt;The &lt;strong&gt;Arguments&lt;/strong&gt; section above provides some flags that can be toggled for very specific use cases. For example, let&amp;rsquo;s say at some point we would like to make sure Git hooks are not executed when we commit our changes, we would just press the key &lt;code&gt;-&lt;/code&gt; then &lt;code&gt;n&lt;/code&gt;. We can also notice how Magit highlights the actual Git CLI flags for each argument, which helps new Git users get familiar with the flags provided by Git and also helps experienced Git users ensure they are using the right flag.&lt;/p&gt;&#10;&lt;p&gt;The &lt;strong&gt;Create&lt;/strong&gt; section contains a single command: the commit command itself. When invoked, the screen splits in half, with the commit message prompt on one side and the diff of the changes to be committed on the other. The following image shows the commit creation interface.&lt;/p&gt;&#10;&lt;figure&gt;&lt;img src="https://heiwiper.com/img/magit-stage-and-commit/3.png"&#10;&#9;&#9;&#9;alt="The commit message prompt and the diff of the changes to be committed."&gt;&lt;figcaption&gt;&#10;&#9;&#9;&#9;&lt;p&gt;The commit message prompt and the diff of the changes to be committed.&lt;/p&gt;&#10;&#9;&#9;&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;p&gt;The &lt;strong&gt;Edit HEAD&lt;/strong&gt; section contains commands to modify the last commit in 3 different ways:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Extend:&lt;/strong&gt; Adds the staged changes to the last commit&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Amend:&lt;/strong&gt; Adds the staged changes to the last commit and changes the commit message&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Reword:&lt;/strong&gt; Changes the last commit&amp;rsquo;s message&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;I will not go through the remaining commands since I don&amp;rsquo;t use them often, but if you are curious you can check the &lt;a class="no-underline text-link hover" href="https://docs.magit.vc/magit/Committing.html" target="_blank" rel="noopener noreferrer"&gt;official documentation&lt;/a&gt;&#10;.&lt;/p&gt;&#10;&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;&#10;&lt;p&gt;Staging in Magit is very simple yet very efficient. Because it feels like selecting text, the process is very intentional: you pick exactly the parts you want to stage, with no stray lines or whitespace cluttering the commit. Committing also feels efficient but in a different way. I like how the immutability barrier is not relevant. It gives the possibility to easily push commits that describe the flow of implementation of a specific feature. What I also like about Magit in general is how it remains faithful to Git by following the same terminology, it&amp;rsquo;s also possible to check each command that was executed by Magit by simply pressing the key &lt;code&gt;$&lt;/code&gt;.&lt;/p&gt;&#10;</content:encoded><category>emacs</category><category>git</category><category>magit</category><enclosure url="https://heiwiper.com/img/magit-stage-and-commit/featured.webp" length="0" type="image/webp"/></item><item><title>Emacs Chat with Sacha and Prot</title><link>https://heiwiper.com/posts/emacs-chat-with-sacha-and-prot/</link><pubDate>Thu, 20 Aug 2026 19:46:44 +0100</pubDate><author>heiwiper</author><guid>https://heiwiper.com/posts/emacs-chat-with-sacha-and-prot/</guid><description>&lt;p&gt;Today I participated in the Emacs Chat series hosted by &lt;a class="no-underline text-link hover" href="https://sachachua.com" target="_blank" rel="noopener noreferrer"&gt;Sacha Chua&lt;/a&gt;&#10; and &lt;a class="no-underline text-link hover" href="https://protesilaos.com" target="_blank" rel="noopener noreferrer"&gt;Protesilaos&lt;/a&gt;&#10; as a co-host. We explored &lt;a class="no-underline text-link hover" href="https://github.com/heiwiper/emacs.d" target="_blank" rel="noopener noreferrer"&gt;my Emacs configuration&lt;/a&gt;&#10;. It was a very nice opportunity to share workflows and learn new things such as Emacs&amp;rsquo;s built-in input methods which I might use to write French and Arabic without the need to switch the system&amp;rsquo;s input method. I have also learned about an interesting workflow to sync transactions from my bank account to a ledger file using &lt;a class="no-underline text-link hover" href="https://ledger-cli.org" target="_blank" rel="noopener noreferrer"&gt;ledger-cli&lt;/a&gt;&#10;. Although I no longer use Emacs to keep track of my expenses, it&amp;rsquo;s a workflow that I would consider integrating into &lt;a class="no-underline text-link hover" href="https://gnucash.org" target="_blank" rel="noopener noreferrer"&gt;GnuCash&lt;/a&gt;&#10;.&lt;/p&gt;</description><content:encoded>&lt;p&gt;Today I participated in the Emacs Chat series hosted by &lt;a class="no-underline text-link hover" href="https://sachachua.com" target="_blank" rel="noopener noreferrer"&gt;Sacha Chua&lt;/a&gt;&#10; and &lt;a class="no-underline text-link hover" href="https://protesilaos.com" target="_blank" rel="noopener noreferrer"&gt;Protesilaos&lt;/a&gt;&#10; as a co-host. We explored &lt;a class="no-underline text-link hover" href="https://github.com/heiwiper/emacs.d" target="_blank" rel="noopener noreferrer"&gt;my Emacs configuration&lt;/a&gt;&#10;. It was a very nice opportunity to share workflows and learn new things such as Emacs&amp;rsquo;s built-in input methods which I might use to write French and Arabic without the need to switch the system&amp;rsquo;s input method. I have also learned about an interesting workflow to sync transactions from my bank account to a ledger file using &lt;a class="no-underline text-link hover" href="https://ledger-cli.org" target="_blank" rel="noopener noreferrer"&gt;ledger-cli&lt;/a&gt;&#10;. Although I no longer use Emacs to keep track of my expenses, it&amp;rsquo;s a workflow that I would consider integrating into &lt;a class="no-underline text-link hover" href="https://gnucash.org" target="_blank" rel="noopener noreferrer"&gt;GnuCash&lt;/a&gt;&#10;.&lt;/p&gt;&#10;&lt;p&gt;After having this conversation on YouTube I am thinking about taking the opportunity to share my blog posts content on YouTube to practice speaking English and at the same time share my content in other formats for people who prefer audio/video content.&lt;/p&gt;&#10;&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;&#10;&#9;&#9;&#9;&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/_qkvvVP8ZMQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;&#10;&#9;&#9;&lt;/div&gt;&#10;&#10;&lt;p&gt;Sacha&amp;rsquo;s Blog post: &lt;a class="no-underline text-link hover" href="https://sachachua.com/blog/2026/08/20-aout-emacs-chat-abdallah-maouche/" target="_blank" rel="noopener noreferrer"&gt;https://sachachua.com/blog/2026/08/20-aout-emacs-chat-abdallah-maouche/&lt;/a&gt;&#10;&lt;/p&gt;&#10;</content:encoded><category>emacs</category><category>org-mode</category></item><item><title>A Tour of Magit's Status Interface</title><link>https://heiwiper.com/posts/magit-status-tour/</link><pubDate>Sat, 15 Aug 2026 20:43:46 +0100</pubDate><author>heiwiper</author><guid>https://heiwiper.com/posts/magit-status-tour/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;Magit is an Emacs Git client that &lt;a class="no-underline text-link hover" href="https://magit.vc/blogs/#posts-by-users" target="_blank" rel="noopener noreferrer"&gt;is praised by many users&lt;/a&gt;&#10;. It was one of the reasons I switched to Emacs back when I stumbled across &lt;a class="no-underline text-link hover" href="https://www.youtube.com/watch?v=NDP91RNgT4A" target="_blank" rel="noopener noreferrer"&gt;an Emacs video tutorial&lt;/a&gt;&#10; for the first time. I remember I was impressed by the intuitive UI/UX. In this blog post, I will go over the main Magit interface — Magit Status — and hopefully you will get to see why &lt;a class="no-underline text-link hover" href="https://heiwiper.com/posts/magit-is-awesome/"&gt;Magit is awesome&lt;/a&gt;&#10;.&lt;/p&gt;</description><content:encoded>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;Magit is an Emacs Git client that &lt;a class="no-underline text-link hover" href="https://magit.vc/blogs/#posts-by-users" target="_blank" rel="noopener noreferrer"&gt;is praised by many users&lt;/a&gt;&#10;. It was one of the reasons I switched to Emacs back when I stumbled across &lt;a class="no-underline text-link hover" href="https://www.youtube.com/watch?v=NDP91RNgT4A" target="_blank" rel="noopener noreferrer"&gt;an Emacs video tutorial&lt;/a&gt;&#10; for the first time. I remember I was impressed by the intuitive UI/UX. In this blog post, I will go over the main Magit interface — Magit Status — and hopefully you will get to see why &lt;a class="no-underline text-link hover" href="https://heiwiper.com/posts/magit-is-awesome/"&gt;Magit is awesome&lt;/a&gt;&#10;.&lt;/p&gt;&#10;&lt;h2 id="magit-status"&gt;Magit Status&lt;/h2&gt;&#10;&lt;p&gt;This is the entry point interface that appears when you invoke Magit. It contains quite a lot of information, even if it doesn&amp;rsquo;t seem so at first glance. The following image is an example of the Magit Status interface:&lt;/p&gt;&#10;&lt;figure&gt;&lt;img src="https://heiwiper.com/img/magit-status-tour/magit-status.png"&#10;&#9;&#9;&#9;alt="Magit Status interface"&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;p&gt;There are two sections. The first displays four pieces of information — Head, Merge, Push, and Tag — which refer to:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Head&lt;/strong&gt; — the last commit of your local branch&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Merge&lt;/strong&gt; — the remote branch you merge changes into&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Push&lt;/strong&gt; — the remote branch you push changes to (for example, a fork you contribute to)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Tag&lt;/strong&gt; — the latest tag on your local branch, and how many commits you are ahead of it&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The second section contains the recent commits, which are collapsed by default to avoid clutter. Here&amp;rsquo;s what the status interface looks like when you open the recent commits section using the &lt;code&gt;TAB&lt;/code&gt; key:&lt;/p&gt;&#10;&lt;figure&gt;&lt;img src="https://heiwiper.com/img/magit-status-tour/magit-status-recent-commits.png"&#10;&#9;&#9;&#9;alt="Magit Status interface with recent commits visible"&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;p&gt;This still doesn&amp;rsquo;t look like the &lt;em&gt;a lot of information&lt;/em&gt; I described earlier, but the missing sections are just as informative: Magit only shows a section when it has something to report, and the lack of a staged or unstaged section here means nothing has changed.&lt;/p&gt;&#10;&lt;p&gt;In the following image, I modified the repository so these sections now appear:&lt;/p&gt;&#10;&lt;figure&gt;&lt;img src="https://heiwiper.com/img/magit-status-tour/magit-status-more-sections.png"&#10;&#9;&#9;&#9;alt="Magit Status interface with more sections visible"&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;p&gt;First, the untracked files (collapsed by default). Second, the changed files under the unstaged section, including their changes (also collapsed). Third, the staged changes, similar to the previous section but containing only what was staged.&lt;/p&gt;&#10;&lt;p&gt;The interesting part about the Magit status interface is that it is interactive: you can stage or unstage changes, and add, delete, or hide untracked files. The list of possible interactions is far too long to cover here. To give you a better picture, it feels like piloting an airplane with the whole control panel within reach — except that here everything is at your fingertips. The following image shows that control panel:&lt;/p&gt;&#10;&lt;figure&gt;&lt;img src="https://heiwiper.com/img/magit-status-tour/magit-help-menu.png"&#10;&#9;&#9;&#9;alt="Magit help menu"&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;p&gt;The above image shows the Magit commands menu, which is hidden away and can be accessed using the &lt;code&gt;?&lt;/code&gt; key. It lists the commands available from the status interface, covering almost anything you would need, all accessible through a single key — and most are easy to remember because the first letter of the action is the shortcut key.&lt;/p&gt;&#10;&lt;p&gt;Looking back at the screenshots in this post, this single interface gives you the entire state of the repository while also providing all the commands you need, with excellent discoverability whether you are coming from the Git CLI or just starting out with Git through Magit.&lt;/p&gt;&#10;&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;&#10;&lt;p&gt;The design behind Magit&amp;rsquo;s status interface never ceases to amaze me. I had planned to cover several other topics, such as how Magit approaches some Git workflows, but I found myself writing a lot about just the status interface, so I decided to keep this post short. In future posts I would like to write about simple workflows like staging, committing, and navigating between branches, as well as more advanced ones like cherry-picking and rebasing (which don&amp;rsquo;t feel advanced at all when you&amp;rsquo;re using Magit).&lt;/p&gt;&#10;&#10;&lt;details class="my-8"&gt;&#10; &lt;summary class="cocomaterial text-lg cursor-pointer"&gt;Still here? Good. Collect your cat.&lt;/summary&gt;&#10; &lt;figure class="mt-4"&gt;&#10; &lt;img src="https://heiwiper.com/img/magit-status-tour/cat-reward.webp" alt="Cat reward for A Tour of Magit&amp;#39;s Status Interface"&gt;&#10; &lt;figcaption class="text-sm text-muted mt-2"&gt;Cat reward&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;/details&gt;&#10;&#10;</content:encoded><category>emacs</category><category>git</category><category>magit</category><enclosure url="https://heiwiper.com/img/magit-status-tour/featured.webp" length="0" type="image/webp"/></item><item><title>Magit Is Amazing!</title><link>https://heiwiper.com/posts/magit-is-awesome/</link><pubDate>Wed, 15 Oct 2025 20:02:21 +0100</pubDate><author>heiwiper</author><guid>https://heiwiper.com/posts/magit-is-awesome/</guid><description>&lt;p&gt;I&amp;rsquo;ve been hearing a lot about &lt;a class="no-underline text-link hover" href="https://jj-vcs.github.io/jj/latest/" target="_blank" rel="noopener noreferrer"&gt;Jujutsu&lt;/a&gt;&#10; VCS lately, and when I say a lot I mean maybe 5 times this year. But that is a lot for a new VCS I would say.&lt;/p&gt;&#10;&lt;p&gt;The &lt;a class="no-underline text-link hover" href="https://www.stavros.io/posts/switch-to-jujutsu-already-a-tutorial/?utm_source=changelog-news" target="_blank" rel="noopener noreferrer"&gt;article&lt;/a&gt;&#10; I came across mostly goes through the flexibility of Jujutsu VCS over &lt;a class="no-underline text-link hover" href="https://git-scm.com" target="_blank" rel="noopener noreferrer"&gt;Git&lt;/a&gt;&#10;, or at least that&amp;rsquo;s as far as I managed to read before I lost interest. I was thinking &amp;ldquo;&lt;em&gt;you can easily do this using Git???&lt;/em&gt;&amp;rdquo;, but then I realized that I&amp;rsquo;ve actually never used Git for almost anything besides cloning repositories&amp;hellip; I&amp;rsquo;ve always been using &lt;a class="no-underline text-link hover" href="https://magit.vc" title="Magit! 🪄" target="_blank" rel="noopener noreferrer"&gt;Magit&lt;/a&gt;&#10; for almost everything.&lt;/p&gt;</description><content:encoded>&lt;p&gt;I&amp;rsquo;ve been hearing a lot about &lt;a class="no-underline text-link hover" href="https://jj-vcs.github.io/jj/latest/" target="_blank" rel="noopener noreferrer"&gt;Jujutsu&lt;/a&gt;&#10; VCS lately, and when I say a lot I mean maybe 5 times this year. But that is a lot for a new VCS I would say.&lt;/p&gt;&#10;&lt;p&gt;The &lt;a class="no-underline text-link hover" href="https://www.stavros.io/posts/switch-to-jujutsu-already-a-tutorial/?utm_source=changelog-news" target="_blank" rel="noopener noreferrer"&gt;article&lt;/a&gt;&#10; I came across mostly goes through the flexibility of Jujutsu VCS over &lt;a class="no-underline text-link hover" href="https://git-scm.com" target="_blank" rel="noopener noreferrer"&gt;Git&lt;/a&gt;&#10;, or at least that&amp;rsquo;s as far as I managed to read before I lost interest. I was thinking &amp;ldquo;&lt;em&gt;you can easily do this using Git???&lt;/em&gt;&amp;rdquo;, but then I realized that I&amp;rsquo;ve actually never used Git for almost anything besides cloning repositories&amp;hellip; I&amp;rsquo;ve always been using &lt;a class="no-underline text-link hover" href="https://magit.vc" title="Magit! 🪄" target="_blank" rel="noopener noreferrer"&gt;Magit&lt;/a&gt;&#10; for almost everything.&lt;/p&gt;&#10;&lt;p&gt;Sometimes I think whether it would have been better if I started using Git CLI and then switched to Magit, that way I would really understand why it&amp;rsquo;s called that way, rather than taking all the amazing work behind it for granted. But I think afterall I wouldn&amp;rsquo;t have discovered Git commands so early in my career if I had just used the Git CLI from the start. I remember I was stashing my code changes back in my early career while other coworkers were struggling to move to another branch without losing their changes.&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;m pretty sure this isn&amp;rsquo;t all what Jujutsu is about, but now I really don&amp;rsquo;t feel like giving it a try anytime soon because of that article.&lt;/p&gt;&#10;&lt;p&gt;If you&amp;rsquo;re new to Magit, I walk through its status interface in &lt;a class="no-underline text-link hover" href="https://heiwiper.com/posts/magit-status-tour/"&gt;A Tour of Magit&amp;rsquo;s Status Interface&lt;/a&gt;&#10;.&lt;/p&gt;&#10;&#10;&lt;details class="my-8"&gt;&#10; &lt;summary class="cocomaterial text-lg cursor-pointer"&gt;Still here? Good. Collect your cat.&lt;/summary&gt;&#10; &lt;figure class="mt-4"&gt;&#10; &lt;img src="https://heiwiper.com/img/magit-is-awesome/featured.webp" alt="Featured image for this post for Magit Is Amazing!"&gt;&#10; &lt;figcaption class="text-sm text-muted mt-2"&gt;Featured image for this post&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;/details&gt;&#10;&#10;</content:encoded><category>emacs</category><category>git</category><enclosure url="https://heiwiper.com/img/magit-is-awesome/featured.webp" length="0" type="image/webp"/></item><item><title>My Journey to Personal Information Management</title><link>https://heiwiper.com/posts/my-journey-to-personal-information-management/</link><pubDate>Thu, 22 Feb 2024 23:00:00 +0100</pubDate><author>heiwiper</author><guid>https://heiwiper.com/posts/my-journey-to-personal-information-management/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;Over the past few years, I have tried many tools and methods to manage my personal information in a way that I can trust my system to handle all the information I throw at it, without having to worry about forgetting an idea or an important event. I would always give up after a few days or a month at the most. Over time, I realised that I was trying to apply methods that worked for other people to myself, and that was the main reason why I didn&amp;rsquo;t stick with any of them. After that, I started keeping the ideas that seemed to work and trying to build my own workflow. That&amp;rsquo;s what I&amp;rsquo;m going to talk about in the rest of this post.&lt;/p&gt;</description><content:encoded>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;Over the past few years, I have tried many tools and methods to manage my personal information in a way that I can trust my system to handle all the information I throw at it, without having to worry about forgetting an idea or an important event. I would always give up after a few days or a month at the most. Over time, I realised that I was trying to apply methods that worked for other people to myself, and that was the main reason why I didn&amp;rsquo;t stick with any of them. After that, I started keeping the ideas that seemed to work and trying to build my own workflow. That&amp;rsquo;s what I&amp;rsquo;m going to talk about in the rest of this post.&lt;/p&gt;&#10;&lt;h2 id="capturing-thoughts"&gt;Capturing thoughts&lt;/h2&gt;&#10;&lt;p&gt;Capturing thoughts is all about writing down whatever comes into your head and which is not actionable at the moment. This was largely inspired by David Allen, author of Getting Things Done. This method allows me to clear my mind and let go of thoughts that I would otherwise have to remember until I get a chance to either process them or store them somewhere that was inaccessible at the time the thought came to me.&lt;/p&gt;&#10;&lt;p&gt;The problem with capturing thoughts is that sometimes the effort required to capture the thought is greater than the effort required to simply keep the thought in your mind, even if you&amp;rsquo;re aware that you may eventually forget it.&lt;/p&gt;&#10;&lt;p&gt;To overcome this problem, it is important to choose the right tool. Personally, I always go for smartphones, even though I usually prefer to keep my personal information in plain text. But when it comes to capturing thoughts, the data is usually stored temporarily. I would have to move it somewhere else anyway.&lt;/p&gt;&#10;&lt;p&gt;It is also important to choose the right application with the least amount of resistance. The one I use is &lt;a class="no-underline text-link hover" href="https://github.com/nproth/pin" target="_blank" rel="noopener noreferrer"&gt;P!n&lt;/a&gt;&#10;.&lt;/p&gt;&#10;&lt;p&gt;It&amp;rsquo;s a very minimalist Android app that I&amp;rsquo;ve been using for a couple of years now. I have never lost a note while using this app and the features it offers are all that I need. I have tried other apps such as &lt;a class="no-underline text-link hover" href="https://github.com/msasikanth/pinnit" target="_blank" rel="noopener noreferrer"&gt;Pinnit&lt;/a&gt;&#10; which offers very similar features to the former, plus extra features such as setting reminders. But the fact that I have to go into the app to write the note is a deal breaker for me.&lt;/p&gt;&#10;&lt;h2 id="managing-habits"&gt;Managing habits&lt;/h2&gt;&#10;&lt;p&gt;Habits are any tasks I have to do on a regular basis. They can be as simple as daily routines like brushing my teeth. In addition to these daily routines, I like to add other productivity habits that I want to make part of my day, such as reading books.&lt;/p&gt;&#10;&lt;p&gt;I think the most important thing about managing habits is reminders and history. There are many tools that can provide this, even notebooks can be used to track habits. I honestly haven&amp;rsquo;t tried many tools, I&amp;rsquo;ve been using the Android app &lt;a class="no-underline text-link hover" href="https://github.com/iSoron/uhabits" target="_blank" rel="noopener noreferrer"&gt;Loop Habit Tracker&lt;/a&gt;&#10; for a couple of years now and I find it ticks almost all the boxes for me. The habits can be measured if necessary, the interface is very intuitive and offers useful graphs to keep track of your history. The notifications are persistent, so they don&amp;rsquo;t disappear until I check that I&amp;rsquo;ve completed the task. And there&amp;rsquo;s a bonus: the checkmark widget, which allows me to check my habits from the home screen. I only use it for measurable tasks because I have to update it several times a day. The only problem I have with this app is that I lose my habit notifications every time I restart the phone, which doesn&amp;rsquo;t happen very often.&lt;/p&gt;&#10;&lt;video controls preload="none" poster="/img/my-journey-to-personal-information-management/screen-loop-habit-tracker-poster.webp" class="mx-auto my-8 max-h-[75vh] w-auto max-w-full h-auto rounded-lg bg-black"&gt;&#10; &lt;source src="https://heiwiper.com/img/my-journey-to-personal-information-management/screen-loop-habit-tracker.mp4" type="video/mp4"&gt;&#10;&lt;/video&gt;&#10;&lt;h2 id="bullet-journal"&gt;Bullet journal&lt;/h2&gt;&#10;&lt;p&gt;I used to think that I would never stick to a non-digital way of keeping track of tasks, notes, events&amp;hellip; I mean, we have smartphones and computers for that now. It just didn&amp;rsquo;t make sense to leave all the features of modern apps like reminders and filters for pen and paper. But now that I have given it a fair chance (5 months so far), I think it serves a good purpose, at least for me. It&amp;rsquo;s not life-changing or anything like that. But mostly it has helped me get into the habit of checking in with myself. When it comes to self-discipline, that turned out to be what I lacked the most.&lt;/p&gt;&#10;&lt;p&gt;I think what is most important about the bullet journal is the practice that is built around it. It&amp;rsquo;s about reviewing everything you write in a timely manner, which has the benefit of weeding out anything that doesn&amp;rsquo;t matter as time goes on. I&amp;rsquo;m still thinking about applying this method in a digital way, but for now I like that it works well enough for my everyday life, so I&amp;rsquo;ll stick with it for this year at least.&lt;/p&gt;&#10;&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;&#10;&lt;p&gt;That will be all for this article. I wanted to talk about another tool, but I think it deserves its own post, so I will leave it for another time.&lt;/p&gt;&#10;&#10;&lt;details class="my-8"&gt;&#10; &lt;summary class="cocomaterial text-lg cursor-pointer"&gt;Still here? Good. Collect your cat.&lt;/summary&gt;&#10; &lt;figure class="mt-4"&gt;&#10; &lt;img src="https://heiwiper.com/img/my-journey-to-personal-information-management/featured.webp" alt="Featured image for this post for My Journey to Personal Information Management"&gt;&#10; &lt;figcaption class="text-sm text-muted mt-2"&gt;Featured image for this post&lt;/figcaption&gt;&#10; &lt;/figure&gt;&#10;&lt;/details&gt;&#10;&#10;</content:encoded><category>productivity</category><category>tools</category><enclosure url="https://heiwiper.com/img/my-journey-to-personal-information-management/featured.webp" length="0" type="image/webp"/></item></channel></rss>