<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>emre şahin's digital garden 🍃 - software</title>
    <link>https://emresahin.net/tags/software/</link>
    <description>Posts in the software tag</description>
    <language>en</language>
    <managingEditor>contact@emresahin.net (Emre Şahin)</managingEditor>
    <lastBuildDate>Tue, 29 Sep 2026 14:57:43 +0000</lastBuildDate>
    <atom:link href="https://emresahin.net/tags/software/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>bits 14</title>
      <published>2025-03-12T10:51:28+00:00</published>
      <updated>2025-03-12T10:51:28+00:00</updated>
      <author>Emre Şahin</author>
      <pubDate>Wed, 12 Mar 2025 10:51:28 +0000</pubDate>
      <link>https://emresahin.net/bits-14/</link>
      <guid isPermaLink="true">https://emresahin.net/bits-14/</guid>
      <description>There are three key points highlighted in How to Build Good Software : Reusing good software is easy; it is what allows you to build good things quickly; Software is limited not by the amount of resources put into building it, but by how complex it can get before it breaks down; and The main valu...</description>
      <category>project-management</category>
      <category>engineering</category>
      <category>software</category>
      <category>knowledge accumulation</category>
      <category>organizations</category>
      <category>software-design</category>
      <content:encoded><![CDATA[<p>There are three key points highlighted in <a href="https://knowledge.csc.gov.sg/ethos-issue-21/how-to-build-good-software/">How to Build Good Software</a>:</p>
<blockquote>
<ul>
<li>Reusing good software is easy; it is what allows you to build good things quickly;</li>
<li>Software is limited not by the amount of resources put into building it, but by how complex it can get before it breaks down; and</li>
<li>The main value in software is not the code produced, but the knowledge accumulated by the people who produced it.</li>
</ul>
</blockquote>
<p>These points lead me to view software development as more of a social profession than a purely technical one. Good software is a reflection of healthy interactions within an organization. When communication is difficult, it becomes much harder to accumulate knowledge about organizational needs, manage complexity, and effectively reuse software components.</p>]]></content:encoded>
    </item>
    <item>
      <title>My Emacs Packages</title>
      <published>2014-05-13T14:00:00+00:00</published>
      <updated>2014-05-13T14:00:00+00:00</updated>
      <author>Emre Şahin</author>
      <pubDate>Tue, 13 May 2014 14:00:00 +0000</pubDate>
      <link>https://emresahin.net/my-emacs-packages/</link>
      <guid isPermaLink="true">https://emresahin.net/my-emacs-packages/</guid>
      <description>I’ve been using Emacs for about 7 or 8 years now—maybe a bit less, maybe more. I tried to quit several times for other editors and different workflows, and every time I returned with more enthusiasm. It’s hard to tell for those who use their editors with mouse clicks on pretty icons, but once you...</description>
      <category>Software</category>
      <category>Emacs</category>
      <category>emacs</category>
      <category>org-mode</category>
      <category>software</category>
      <category>python</category>
      <category>latex</category>
      <category>w3m</category>
      <content:encoded><![CDATA[<p>I’ve been using Emacs for about 7 or 8 years now—maybe a bit less,
maybe more. I tried to quit several times for other editors and different
workflows, and every time I returned with more enthusiasm.</p>
<p>It’s hard to tell for those who <em>use</em> their editors with mouse clicks
on pretty icons, but once you catch this virus called <em>doing everything
from the keyboard</em>, it becomes attached to your digital (from <em>digitus</em>,
finger) psyche, making it impossible to leave behind. I even purchased an
Android keyboard for my phablet just to <code>ssh</code> to my home and write with
Emacs. Consider that!</p>
<p>Today I stumbled upon several posts regarding favorite Emacs packages
and wanted to list mine.</p>
<h1 id="org-mode">org-mode</h1>
<p>I’m not writing this in <code>org-mode</code> because I observed that I can
detail, micro-revise, and lose focus while writing because of its
extensive functionality. Instead, I’m using Zsh’s <code>vared</code> to enter lines to
an org-file when I write first drafts. But editing, keeping, following,
creating plots, literate programming—doing everything that can be done
with text—is possible in <code>org-mode</code>.</p>
<p>I have <code>F11</code> bound to <code>org-capture</code> and <code>F12</code> to <code>org-agenda-list</code>.
<code>F9 F9</code> stores links wherever I like, and I can use <code>C-c C-l</code> in org
buffers to paste them.</p>
<h1 id="w3m">w3m</h1>
<p>When I want to search Google but don’t like the idea of running a huge
browser session just to look up an answer on StackOverflow, I use this.</p>
<h1 id="undo-tree">undo-tree</h1>
<p>It shows the versions created by undo/redo of a buffer in a tree format.
Emacs’s default undo may be cumbersome at times, but this package is
terrific.</p>
<h1 id="wc-mode">wc-mode</h1>
<p>To count words in a file. When I forget this package, I use
<code>C-x h M-| wc</code> as a substitute.</p>
<h1 id="auctex">auctex</h1>
<p>Once upon a time, this mode led me to migrate from LyX to LaTeX itself.</p>
<h1 id="ess">ESS</h1>
<p>Emacs Speaks Statistics is an R frontend. I’m not using it daily, but
it’s much better than the R command-line client.</p>
<h1 id="uniquify">Uniquify</h1>
<p>Makes buffer names unique. If you have files with identical names, this
is much better than having names like <code>myfile.txt&lt;1&gt;</code>, <code>myfile.txt&lt;2&gt;</code>,
etc.</p>
<h1 id="recentf-mode">recentf-mode</h1>
<p>A list of recent files.</p>
<h1 id="smex">smex</h1>
<p><code>ido</code> for <code>M-x</code>. Standard <code>M-x</code> selects commands by their prefix; with
<code>smex</code>, you can filter them by any substring. This makes a difference for
those with poor memory.</p>
<h1 id="ahg">ahg</h1>
<p>I use Mercurial more than Git, and <code>ahg-mode</code> seems like a good
alternative to standard <code>vc-</code> commands.</p>
<h1 id="projectile">projectile</h1>
<p>It considers directories under version control as projects and defines
functions like <code>find-file</code>, <code>multi-occur</code>, and <code>recentf</code> for them. It’s a
very simple and non-intrusive way to have project management.</p>
<h1 id="elpy">elpy</h1>
<p>For Python programming, <code>elpy</code> provides completion and much more
functionality.</p>
<h1 id="ack-and-a-half">ack-and-a-half</h1>
<p>An <code>ack</code> mode, a hybrid version of the other two.</p>
<h1 id="xgtags">xgtags</h1>
<p>A GNU Global mode for C++ code tagging.</p>]]></content:encoded>
    </item>
  </channel>
</rss>
