<?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>Abdelrahman&#39;s Blog</title>
    <link>https://abdelrahman.sh/</link>
    <description>Recent content on Abdelrahman&#39;s Blog</description>
    <image>
      <title>Abdelrahman&#39;s Blog</title>
      <url>https://abdelrahman.sh/cover.png</url>
      <link>https://abdelrahman.sh/cover.png</link>
    </image>
    <generator>Hugo -- 0.140.1</generator>
    <language>en</language>
    <lastBuildDate>Sat, 10 Jan 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://abdelrahman.sh/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How-to: Images</title>
      <link>https://abdelrahman.sh/2026/how-to-images/</link>
      <pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2026/how-to-images/</guid>
      <description>.zsh_history isn&amp;#39;t forever</description>
    </item>
    <item>
      <title>I don&#39;t have Python installed</title>
      <link>https://abdelrahman.sh/2025/11/i-do-not-have-python-installed/</link>
      <pubDate>Sun, 16 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2025/11/i-do-not-have-python-installed/</guid>
      <description>Why would I?</description>
    </item>
    <item>
      <title>Finessing Unix pipes</title>
      <link>https://abdelrahman.sh/2025/09/finessing-unix-pipes/</link>
      <pubDate>Mon, 22 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2025/09/finessing-unix-pipes/</guid>
      <description>up: a live playground for terminal commands</description>
    </item>
    <item>
      <title>Scripting with Kotlin</title>
      <link>https://abdelrahman.sh/2025/09/scripting-with-kotlin/</link>
      <pubDate>Mon, 15 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2025/09/scripting-with-kotlin/</guid>
      <description>Via kotlinc -script</description>
    </item>
    <item>
      <title>How-to: PDFs</title>
      <link>https://abdelrahman.sh/2025/09/how-to-pdfs/</link>
      <pubDate>Sun, 14 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2025/09/how-to-pdfs/</guid>
      <description>.zsh_history isn&amp;#39;t forever</description>
    </item>
    <item>
      <title>Shell we Nix?</title>
      <link>https://abdelrahman.sh/2025/03/shell-we-nix/</link>
      <pubDate>Sun, 09 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2025/03/shell-we-nix/</guid>
      <description>&lt;p&gt;Ever wanted a way to quickly &amp;amp; temporarily install an &lt;a href=&#34;https://github.com/mtoyoda/sl&#34;&gt;amusing command-line tool&lt;/a&gt; that you read about on the interwebz?&lt;/p&gt;
&lt;p&gt;I certainly needed something like that since forever. Every now and then I gotta compress a JPEG using &lt;a href=&#34;https://github.com/ImageMagick/ImageMagick&#34;&gt;&lt;code&gt;imagemagick&lt;/code&gt;&lt;/a&gt;, format a markdown file using &lt;a href=&#34;https://github.com/prettier/prettier&#34;&gt;&lt;code&gt;prettier&lt;/code&gt;&lt;/a&gt;, or demonstrate to my colleagues that &lt;code&gt;[,,,].length&lt;/code&gt; is a valid JavaScript expression, while not having Node.js installed on my machine.&lt;/p&gt;
&lt;p&gt;Second best thing I had was &lt;a href=&#34;https://brew.sh/&#34;&gt;Homebrew&lt;/a&gt;. I&amp;rsquo;d &lt;code&gt;brew install&lt;/code&gt; the tool, take it for a spin, and hopefully remember to &lt;code&gt;brew uninstall&lt;/code&gt; it afterwards - or else it&amp;rsquo;ll not only bloat my system, but also slow down &lt;code&gt;brew upgrade&lt;/code&gt;s even more for the forseable future until I factory-reset my machine next Spring cleaning.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Delightful Programming with Kotlin: Part #1</title>
      <link>https://abdelrahman.sh/2024/04/delightful-programming-with-kotlin-part-one/</link>
      <pubDate>Sun, 14 Apr 2024 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2024/04/delightful-programming-with-kotlin-part-one/</guid>
      <description>&lt;p&gt;A compiler tells you whether the code you wrote is syntactically valid. A &lt;em&gt;good&lt;/em&gt; compiler, however, doesn&amp;rsquo;t do just that; it also tells you at build time whether your code might run into a logical bug later on at runtime.&lt;/p&gt;
&lt;p&gt;One such logical bug we often make as developers is not handling the possibility that map lookups yield nothing. Being a good compiler, &lt;a href=&#34;https://kotlinlang.org/docs/command-line.html&#34;&gt;&lt;code&gt;kotlinc&lt;/code&gt;&lt;/a&gt; knows that the entry you&amp;rsquo;re looking up in a map might not exist, and therefore errors out if it detects that you weren&amp;rsquo;t prepared for that possibility.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to subtract dates in Node.js</title>
      <link>https://abdelrahman.sh/2023/07/how-to-subtract-dates-in-node-js/</link>
      <pubDate>Thu, 20 Jul 2023 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2023/07/how-to-subtract-dates-in-node-js/</guid>
      <description>It&amp;#39;s probably not what you think.</description>
    </item>
    <item>
      <title>Record your terminal using your terminal</title>
      <link>https://abdelrahman.sh/2023/07/record-your-terminal-using-your-terminal/</link>
      <pubDate>Mon, 10 Jul 2023 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2023/07/record-your-terminal-using-your-terminal/</guid>
      <description>Record your terminal as a GIF with asciinema and agg</description>
    </item>
    <item>
      <title>The Sierpiński triangle</title>
      <link>https://abdelrahman.sh/2023/01/the-sierpinski-triangle/</link>
      <pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2023/01/the-sierpinski-triangle/</guid>
      <description>Drawing the Sierpiński triangle fractal on the HTML Canvas</description>
    </item>
    <item>
      <title>Generate large files in Unix ad hoc</title>
      <link>https://abdelrahman.sh/2022/12/generate-large-files-in-unix-ad-hoc/</link>
      <pubDate>Wed, 28 Dec 2022 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2022/12/generate-large-files-in-unix-ad-hoc/</guid>
      <description>Leveraging one of Unix&amp;#39;s most versatile commands to our advantage</description>
    </item>
    <item>
      <title>Your network packets were in my living room</title>
      <link>https://abdelrahman.sh/2022/10/your-network-packets-were-in-my-living-room/</link>
      <pubDate>Sun, 30 Oct 2022 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2022/10/your-network-packets-were-in-my-living-room/</guid>
      <description>Serving my blog from home!</description>
    </item>
    <item>
      <title>Logic programming in JavaScript</title>
      <link>https://abdelrahman.sh/2022/05/logic-programming-in-javascript/</link>
      <pubDate>Mon, 30 May 2022 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/2022/05/logic-programming-in-javascript/</guid>
      <description>Logic programming in JavaScript using LogicJS</description>
    </item>
    <item>
      <title>Publications</title>
      <link>https://abdelrahman.sh/publications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://abdelrahman.sh/publications/</guid>
      <description>search</description>
    </item>
  </channel>
</rss>
