<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Toolloom</title>
    <description>The latest articles on DEV Community by Toolloom (@toolloom).</description>
    <link>https://dev.to/toolloom</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3704103%2Fc046b75e-83a1-4af2-af1e-1714aa945ecc.png</url>
      <title>DEV Community: Toolloom</title>
      <link>https://dev.to/toolloom</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/toolloom"/>
    <language>en</language>
    <item>
      <title>Saving Yourself with Git Reflog</title>
      <dc:creator>Toolloom</dc:creator>
      <pubDate>Fri, 29 May 2026 05:00:12 +0000</pubDate>
      <link>https://dev.to/toolloom/saving-yourself-with-git-reflog-mm9</link>
      <guid>https://dev.to/toolloom/saving-yourself-with-git-reflog-mm9</guid>
      <description>&lt;p&gt;We've all been there: you run a destructive command like &lt;code&gt;git reset --hard&lt;/code&gt; or accidentally delete a branch, and panic sets in. Before you accept defeat, remember that Git rarely actually deletes anything immediately. It keeps a secret history of every single action you take locally in a tool called the reflog.&lt;/p&gt;

&lt;p&gt;Just type &lt;code&gt;git reflog&lt;/code&gt; in your terminal to see a list of your recent movements, even the ones you thought you lost. Once you find the commit hash from right before your mistake, you can run &lt;code&gt;git reset --hard&lt;/code&gt; to bring your code back from the dead. It's the ultimate undo button for Git.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Stop Writing print('var =', var) in Python</title>
      <dc:creator>Toolloom</dc:creator>
      <pubDate>Thu, 28 May 2026 21:00:13 +0000</pubDate>
      <link>https://dev.to/toolloom/stop-writing-printvar-var-in-python-25m4</link>
      <guid>https://dev.to/toolloom/stop-writing-printvar-var-in-python-25m4</guid>
      <description>&lt;p&gt;We've all been there: quickly sprinkling print statements throughout our code to see what a variable holds during runtime. But writing 'print(f"user_id: {user_id}")' over and over gets tedious. Next time, try the f-string shortcut by adding an equals sign after the variable name: 'print(f"{user_id=}")'.&lt;/p&gt;

&lt;p&gt;This will automatically output both the variable name and its value (for example, 'user_id=42'), saving you keystrokes and making your quick-and-dirty debugging sessions much faster. It even works with expressions, like 'print(f"{len(users)=}")'!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Master the Art of Selective Commits with 'git add -p'</title>
      <dc:creator>Toolloom</dc:creator>
      <pubDate>Thu, 28 May 2026 21:00:13 +0000</pubDate>
      <link>https://dev.to/toolloom/master-the-art-of-selective-commits-with-git-add-p-484i</link>
      <guid>https://dev.to/toolloom/master-the-art-of-selective-commits-with-git-add-p-484i</guid>
      <description>&lt;p&gt;Ever finished a long coding session only to realize you've written three different features, fixed a bug, and left a bunch of debug console.log statements in a single file? Instead of committing everything in one massive, chaotic dump, use 'git add -p' (or '--patch'). This command lets you review your changes hunk by hunk, deciding exactly what goes into the staging area and what stays out.&lt;/p&gt;

&lt;p&gt;It's like having a final code review with yourself before making things official. You can stage the actual feature, discard the debug statements, and keep your git history incredibly clean and readable for your team.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Supercharge Your Editing with VS Code's Multi-Cursor Magic</title>
      <dc:creator>Toolloom</dc:creator>
      <pubDate>Thu, 28 May 2026 21:00:13 +0000</pubDate>
      <link>https://dev.to/toolloom/supercharge-your-editing-with-vs-codes-multi-cursor-magic-b65</link>
      <guid>https://dev.to/toolloom/supercharge-your-editing-with-vs-codes-multi-cursor-magic-b65</guid>
      <description>&lt;p&gt;If you're still manually renaming variables or editing identical lines of code one by one, it's time to embrace multi-cursor editing. In VS Code, simply highlight a word and hit Ctrl+D (or Cmd+D on Mac) to automatically select the next occurrence of that word. Each press adds a new cursor, allowing you to edit all of them simultaneously.&lt;/p&gt;

&lt;p&gt;If you want to select all occurrences at once, use Ctrl+F2 (or Cmd+F2). It's a massive timesaver that keeps you in the flow and prevents the tedious copy-paste cycle.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Lost your commits? Git reflog to the rescue!</title>
      <dc:creator>Toolloom</dc:creator>
      <pubDate>Thu, 28 May 2026 05:00:09 +0000</pubDate>
      <link>https://dev.to/toolloom/lost-your-commits-git-reflog-to-the-rescue-hcc</link>
      <guid>https://dev.to/toolloom/lost-your-commits-git-reflog-to-the-rescue-hcc</guid>
      <description>&lt;p&gt;We've all been there: you perform a force push, a messy rebase, or accidentally delete a local branch, and suddenly your hard work seems gone forever. Before you panic, run &lt;code&gt;git reflog&lt;/code&gt; in your terminal. Git keeps a silent, chronological diary of almost every action you take locally, even if those commits are no longer attached to any active branch.&lt;/p&gt;

&lt;p&gt;Once you find the commit hash of your lost work in the reflog list, you can easily resurrect it by running &lt;code&gt;git checkout&lt;/code&gt; or creating a new branch from that point. It's the ultimate safety net that will save your skin more than once.&lt;/p&gt;

</description>
      <category>git</category>
    </item>
    <item>
      <title>Master Selective Commits with git add -p</title>
      <dc:creator>Toolloom</dc:creator>
      <pubDate>Wed, 27 May 2026 21:00:09 +0000</pubDate>
      <link>https://dev.to/toolloom/master-selective-commits-with-git-add-p-pg7</link>
      <guid>https://dev.to/toolloom/master-selective-commits-with-git-add-p-pg7</guid>
      <description>&lt;p&gt;Ever finished a long coding session only to realize your working directory is a mess of different logical changes? Instead of staging everything at once with &lt;code&gt;git add .&lt;/code&gt;, try using &lt;code&gt;git add -p&lt;/code&gt; (or &lt;code&gt;--patch&lt;/code&gt;). This command runs an interactive session that steps through your changes hunk by hunk, letting you decide exactly what goes into the next commit.&lt;/p&gt;

&lt;p&gt;You can stage a specific change, skip it, or even split a large hunk into smaller pieces. It's an absolute game-changer for keeping your commit history clean, readable, and easy to review during pull requests.&lt;/p&gt;

</description>
      <category>cli</category>
      <category>git</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Quick Debugging in Python with f-string Self-Documenting Expressions</title>
      <dc:creator>Toolloom</dc:creator>
      <pubDate>Wed, 27 May 2026 21:00:09 +0000</pubDate>
      <link>https://dev.to/toolloom/quick-debugging-in-python-with-f-string-self-documenting-expressions-khi</link>
      <guid>https://dev.to/toolloom/quick-debugging-in-python-with-f-string-self-documenting-expressions-khi</guid>
      <description>&lt;p&gt;If you still find yourself writing &lt;code&gt;print(f"user_id: {user_id}")&lt;/code&gt; to debug your Python code, there's a much cleaner way. Since Python 3.8, you can add an equals sign &lt;code&gt;=&lt;/code&gt; inside the curly braces of your f-string to print both the expression and its evaluated value.&lt;/p&gt;

&lt;p&gt;Simply write &lt;code&gt;print(f"{user_id=}")&lt;/code&gt; and Python will automatically output &lt;code&gt;user_id='12345'&lt;/code&gt;. It works for expressions and function calls too, saving you a ton of keystrokes during quick debugging sessions.&lt;/p&gt;

</description>
      <category>python</category>
    </item>
    <item>
      <title>Level Up Your JS with Logical Assignment Operators</title>
      <dc:creator>Toolloom</dc:creator>
      <pubDate>Wed, 27 May 2026 05:00:12 +0000</pubDate>
      <link>https://dev.to/toolloom/level-up-your-js-with-logical-assignment-operators-546n</link>
      <guid>https://dev.to/toolloom/level-up-your-js-with-logical-assignment-operators-546n</guid>
      <description>&lt;p&gt;If you are still writing &lt;code&gt;if (!settings.theme) settings.theme = 'dark';&lt;/code&gt; or even &lt;code&gt;settings.theme = settings.theme || 'dark';&lt;/code&gt;, it is time to simplify. Modern JavaScript gives us logical assignment operators that combine logical operations with assignment in a clean, readable way.&lt;/p&gt;

&lt;p&gt;By using &lt;code&gt;settings.theme ||= 'dark'&lt;/code&gt;, you only assign 'dark' if &lt;code&gt;settings.theme&lt;/code&gt; is falsy. Even better, use the nullish coalescing assignment operator (&lt;code&gt;??=&lt;/code&gt;) to only assign a value if the variable is strictly &lt;code&gt;null&lt;/code&gt; or &lt;code&gt;undefined&lt;/code&gt;. This prevents pesky bugs where valid falsy values, like &lt;code&gt;0&lt;/code&gt; or an empty string, accidentally get overwritten.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Master the Multi-Cursor Skip in VS Code</title>
      <dc:creator>Toolloom</dc:creator>
      <pubDate>Wed, 27 May 2026 05:00:12 +0000</pubDate>
      <link>https://dev.to/toolloom/master-the-multi-cursor-skip-in-vs-code-2chg</link>
      <guid>https://dev.to/toolloom/master-the-multi-cursor-skip-in-vs-code-2chg</guid>
      <description>&lt;p&gt;Most devs know that pressing &lt;code&gt;Ctrl+D&lt;/code&gt; (or &lt;code&gt;Cmd+D&lt;/code&gt; on macOS) selects the next occurrence of the highlighted word. It’s a game-changer for quick renaming. But what happens when you accidentally select a variable you didn't want to change?&lt;/p&gt;

&lt;p&gt;Instead of hitting escape and starting all over, you can use &lt;code&gt;Ctrl+K&lt;/code&gt; followed by &lt;code&gt;Ctrl+D&lt;/code&gt; (or &lt;code&gt;Cmd+K&lt;/code&gt; then &lt;code&gt;Cmd+D&lt;/code&gt; on Mac). This nifty combo skips the currently highlighted occurrence and jumps straight to the next one, keeping your other selections intact. It's a massive time-saver when refactoring.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tooling</category>
      <category>tutorial</category>
      <category>vscode</category>
    </item>
    <item>
      <title>Clean Up Your Commit History Effortlessly with Git Fixups</title>
      <dc:creator>Toolloom</dc:creator>
      <pubDate>Wed, 27 May 2026 05:00:12 +0000</pubDate>
      <link>https://dev.to/toolloom/clean-up-your-commit-history-effortlessly-with-git-fixups-2ce7</link>
      <guid>https://dev.to/toolloom/clean-up-your-commit-history-effortlessly-with-git-fixups-2ce7</guid>
      <description>&lt;p&gt;We've all been there: you submit a pull request, notice a tiny typo, and end up making a commit named "fix typo" or "temp." Instead of cluttering your git history, try using &lt;code&gt;git commit --fixup [commit-hash]&lt;/code&gt; when committing the fix. This marks your new change as a fixup of that specific older commit.&lt;/p&gt;

&lt;p&gt;When you're ready to clean things up before merging, run &lt;code&gt;git rebase -i --autosquash origin/main&lt;/code&gt;. Git will automatically organize your interactive rebase todo list, placing the fixup commits directly beneath their parent commits and marking them to be melted in. It keeps your commit history pristine without the manual drag-and-drop headache.&lt;/p&gt;

</description>
      <category>cli</category>
      <category>git</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Master the Art of Selective Commits with Git Patch</title>
      <dc:creator>Toolloom</dc:creator>
      <pubDate>Tue, 26 May 2026 21:00:12 +0000</pubDate>
      <link>https://dev.to/toolloom/master-the-art-of-selective-commits-with-git-patch-ao4</link>
      <guid>https://dev.to/toolloom/master-the-art-of-selective-commits-with-git-patch-ao4</guid>
      <description>&lt;p&gt;Ever finished a long coding session only to realize you've written three different features and a hotfix all in the same files? Instead of committing one giant, chaotic mess, use 'git add -p' (or '--patch'). This command takes you through your changes chunk by chunk, letting you decide whether to stage, skip, or even split each specific modification.&lt;/p&gt;

&lt;p&gt;It's a fantastic way to keep your commit history clean, readable, and easy to roll back if something goes wrong. Plus, reviewing your code line-by-line before staging acts as a great final self-review to catch silly mistakes before they ever reach your repository.&lt;/p&gt;

</description>
      <category>git</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Quick and Dirty Python Debugging with the f-string '=' Shortcut</title>
      <dc:creator>Toolloom</dc:creator>
      <pubDate>Tue, 26 May 2026 21:00:12 +0000</pubDate>
      <link>https://dev.to/toolloom/quick-and-dirty-python-debugging-with-the-f-string-shortcut-14n5</link>
      <guid>https://dev.to/toolloom/quick-and-dirty-python-debugging-with-the-f-string-shortcut-14n5</guid>
      <description>&lt;p&gt;We've all been there: sprinkling 'print()' statements all over our Python code to figure out why a variable isn't what we expect. Instead of typing 'print(f"user_id: {user_id}")', save yourself some keystrokes by using the '=' shortcut inside your f-string. Simply write 'print(f"{user_id=}")'.&lt;/p&gt;

&lt;p&gt;Python will automatically expand this to print both the variable name and its evaluated value, outputting 'user_id=42'. It even works for expressions, like 'print(f"{len(users)=}")'. It's a small, built-in trick that makes quick print-debugging much faster and cleaner.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
