<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tech on Raveen Kumar</title>
    <link>https://raveenkumar.com/tags/tech/</link>
    <description>Recent content in Tech on Raveen Kumar</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>Raveen Kumar</copyright>
    <lastBuildDate>Mon, 14 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://raveenkumar.com/tags/tech/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Resurrecting my website</title>
      <link>https://raveenkumar.com/posts/2026-09-14-resurrecting-my-website/</link>
      <pubDate>Mon, 14 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2026-09-14-resurrecting-my-website/</guid>
      <description>&lt;p&gt;I built this website with &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;, and it was going well. Then I got sidetracked: publishing from &lt;a href=&#34;https://orgmode.org/&#34;&gt;Emacs Org mode&lt;/a&gt;, then &lt;a href=&#34;https://bearblog.dev/&#34;&gt;Bear Blog&lt;/a&gt;. I wrote a lot on Bear Blog, but it had too many restrictions. Somewhere along the way, I lost the motivation.&lt;/p&gt;&#xA;&lt;p&gt;I always wanted to resurrect my website, but I kept putting it off and let raveenkumar.xyz expire. Turn on auto-renew. Always. Otherwise someone else can buy your domain and put it up for sale.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Thank you, Bear Blog</title>
      <link>https://raveenkumar.com/posts/2026-09-14-thank-you-bear-blog/</link>
      <pubDate>Mon, 14 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2026-09-14-thank-you-bear-blog/</guid>
      <description>&lt;p&gt;On 31 August 2023, I wrote my first post on &lt;a href=&#34;https://bearblog.dev/&#34;&gt;Bear Blog&lt;/a&gt;. The whole post: &amp;ldquo;Let&amp;rsquo;s start again shall we!&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;I needed a fresh start. For two years, I had been building websites instead of writing on them. I wrote my own site, rewrote it, tried blogging platforms, learned to host it myself and paid a lot of money for VPSes. None of it got me writing.&lt;/p&gt;&#xA;&lt;p&gt;Bear Blog did. Minimalistic yet functional, as I said back then. No plugins, no build step, nothing to maintain. Just a text box and a publish button.&lt;/p&gt;</description>
    </item>
    <item>
      <title>I let Claude unfollow everyone on Instagram</title>
      <link>https://raveenkumar.com/posts/2026-09-12-i-let-claude-unfollow-everyone-on-instagram/</link>
      <pubDate>Sat, 12 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2026-09-12-i-let-claude-unfollow-everyone-on-instagram/</guid>
      <description>&lt;h2 id=&#34;why&#34;&gt;Why&lt;/h2&gt;&#xA;&lt;p&gt;A year and a half ago I wrote &lt;a href=&#34;https://raveenkumar.com/posts/2025-04-09-cantwont-use-social-media-anymore/&#34;&gt;Can&amp;rsquo;t/Won&amp;rsquo;t use Social Media anymore&lt;/a&gt;. I failed. I fell into the social media trap and wasted so much time on judgemental pricks. Now I&amp;rsquo;m leaving. Parially.&lt;/p&gt;&#xA;&lt;p&gt;I will make my account public and post things I care about. Unfollow everyone. Except John Cena. He is right. No one can see me. I show what I want to.&lt;/p&gt;&#xA;&lt;p&gt;Instagram gave me some good things and a lot more bad ones. It sucks you in and turns you into a different person.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Contacts Organizer cli app</title>
      <link>https://raveenkumar.com/posts/2026-09-04-contacts-organizer-cli-app/</link>
      <pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2026-09-04-contacts-organizer-cli-app/</guid>
      <description>&lt;p&gt;macOS has a really good Contacts app, but managing it is a pain in the ass. So I took it upon myself to solve it with AI.&lt;/p&gt;&#xA;&lt;p&gt;The goal was to find contacts that aren&amp;rsquo;t in any lists and organize them. I used Claude to build the app.&lt;/p&gt;&#xA;&lt;p&gt;Initial prompt&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I want to build a CLI application.&lt;/p&gt;&#xA;&lt;p&gt;Is there a way to organize contacts in MacOS to lists from CLI terminal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Generating Ghibli style art with ChatGPT is pretty neat</title>
      <link>https://raveenkumar.com/posts/2025-04-01-generating-ghibli-style-art-with-chatgpt-is-pretty-neat/</link>
      <pubDate>Tue, 01 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2025-04-01-generating-ghibli-style-art-with-chatgpt-is-pretty-neat/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://raveenkumar.com/bear-import/f71d9a5d-f836-4777-9c56-3e911f189fa8.webp&#34; alt=&#34;F71D9A5D-F836-4777-9C56-3E911F189FA8&#34;&gt;&#xA;&lt;img src=&#34;https://raveenkumar.com/bear-import/2ccc1b91-50ad-409b-9324-b0333e712885-1.webp&#34; alt=&#34;2CCC1B91-50AD-409B-9324-B0333E712885&#34;&gt;&#xA;&lt;img src=&#34;https://raveenkumar.com/bear-import/bcd9ebd9-e2aa-4ea1-ae2e-763b0da4f120.webp&#34; alt=&#34;BCD9EBD9-E2AA-4EA1-AE2E-763B0DA4F120&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to learn programming</title>
      <link>https://raveenkumar.com/posts/2025-03-19-how-to-learn-programming/</link>
      <pubDate>Wed, 19 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2025-03-19-how-to-learn-programming/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;F*ck around until it works&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Messing around is the only way to learn programming&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>My favorite programming language and tools</title>
      <link>https://raveenkumar.com/posts/2025-03-19-my-favorite-programming-language-and-tools/</link>
      <pubDate>Wed, 19 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2025-03-19-my-favorite-programming-language-and-tools/</guid>
      <description>&lt;p&gt;Programming is always fun. At least for me. When I program for myself with lots of freedom, I have lots of fun. But at work not so much. There is quite a lot of restrictions and it kills me to say that I absolutely hate corporate programming.&lt;/p&gt;&#xA;&lt;p&gt;That being said, I do enjoy some programming languages and tools that I use regularly.&lt;/p&gt;&#xA;&lt;h2 id=&#34;programming-languages-for-fun&#34;&gt;Programming Languages for fun&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Bash&lt;/li&gt;&#xA;&lt;li&gt;Python&lt;/li&gt;&#xA;&lt;li&gt;VimScript&lt;/li&gt;&#xA;&lt;li&gt;Emacs Lisp&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;programming-languages-i-use-for-work&#34;&gt;Programming languages I use for work&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;System Verilog and Verilog&lt;/li&gt;&#xA;&lt;li&gt;UVM&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;tools&#34;&gt;Tools&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Vim / Emacs&lt;/li&gt;&#xA;&lt;li&gt;ChatGPT&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;hardware&#34;&gt;Hardware&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;MacBook Air m1&lt;/li&gt;&#xA;&lt;li&gt;Mac mini M2 Pro with triple monitor setup&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Vim not retaining file and command history</title>
      <link>https://raveenkumar.com/posts/2023-05-19-vim-not-retaining-file-and-command-history/</link>
      <pubDate>Fri, 19 May 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-05-19-vim-not-retaining-file-and-command-history/</guid>
      <description>&lt;p&gt;This solved the problem.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://unix.stackexchange.com/questions/43033/what-would-cause-vim-not-to-retain-command-history&#34;&gt;https://unix.stackexchange.com/questions/43033/what-would-cause-vim-not-to-retain-command-history&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Check presence and rights for ~/.viminfo. Usually that&amp;rsquo;s it which keeps command history, file editing positions, etc. One possible case is that this file belongs to root.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Unsubscribe from Emacs Org-mode mailing list</title>
      <link>https://raveenkumar.com/posts/2023-05-17-unsubscribe-from-emacs-org-mode-mailing-list/</link>
      <pubDate>Wed, 17 May 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-05-17-unsubscribe-from-emacs-org-mode-mailing-list/</guid>
      <description>&lt;p&gt;Visit this link and follow the instructions - &lt;a href=&#34;https://lists.gnu.org/mailman/options/emacs-orgmode&#34;&gt;https://lists.gnu.org/mailman/options/emacs-orgmode&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://emacs-orgmode.gnu.narkive.com/SrK9BVd1/o-how-i-can-unsubscribe-this-mail-list&#34;&gt;https://emacs-orgmode.gnu.narkive.com/SrK9BVd1/o-how-i-can-unsubscribe-this-mail-list&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>fc fix command or fix previous command</title>
      <link>https://raveenkumar.com/posts/2023-05-12-fc-fix-command-or-fix-previous-command/</link>
      <pubDate>Fri, 12 May 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-05-12-fc-fix-command-or-fix-previous-command/</guid>
      <description>&lt;p&gt;In Bash, &lt;code&gt;fc&lt;/code&gt; stands for &amp;ldquo;fix command&amp;rdquo; and it is a built-in command that allows you to work with the command history. The &lt;code&gt;fc&lt;/code&gt; command provides a way to view, edit, and re-execute commands from your command history.&lt;/p&gt;&#xA;&lt;p&gt;Here are some common uses of the &lt;code&gt;fc&lt;/code&gt; command:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Viewing command history&lt;/strong&gt;: You can use &lt;code&gt;fc -l&lt;/code&gt; or simply &lt;code&gt;fc&lt;/code&gt; to display the list of recently executed commands. By default, it shows the most recent commands with line numbers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Insert a string at the beginning of all cells in a column</title>
      <link>https://raveenkumar.com/posts/2023-05-10-insert-a-string-at-the-beginning-of-all-cells-in-a-column/</link>
      <pubDate>Wed, 10 May 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-05-10-insert-a-string-at-the-beginning-of-all-cells-in-a-column/</guid>
      <description>&lt;p&gt;Insert a new column before it. Type this formula in the first cell and autofill the remaining,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;= &amp;#34;New String&amp;#34; &amp;amp; A1&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Copy all the required cells in the column and paste it to the original location as &lt;code&gt;values&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Delete the newly inserted row.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Grep for files that does not contain a specific string</title>
      <link>https://raveenkumar.com/posts/2023-05-09-grep-for-files-that-does-not-contain-a-specific-string/</link>
      <pubDate>Tue, 09 May 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-05-09-grep-for-files-that-does-not-contain-a-specific-string/</guid>
      <description>&lt;p&gt;Another useful way to use grep is for printing file names that do not contain a specific string, for example&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;grep -L &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;string&amp;#34;&lt;/span&gt; *&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can use the &lt;code&gt;-L&lt;/code&gt; option of the &lt;code&gt;grep&lt;/code&gt; command, which prints the names of all files that do not contain the specified search string.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;*&lt;/code&gt; at the end tells &lt;code&gt;grep&lt;/code&gt; to search all files in the current directory. If you want to search only specific files or directories, you can replace the &lt;code&gt;*&lt;/code&gt; with the filenames or directory names.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Periodically run a program and watch the output</title>
      <link>https://raveenkumar.com/posts/2023-05-05-periodically-run-a-program-and-watch-the-output/</link>
      <pubDate>Fri, 05 May 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-05-05-periodically-run-a-program-and-watch-the-output/</guid>
      <description>&lt;h2 id=&#34;watch&#34;&gt;watch&lt;/h2&gt;&#xA;&lt;p&gt;Execute a program periodically, showing output fullscreen&lt;/p&gt;&#xA;&lt;p&gt;Example&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;watch ls&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;alternative - &lt;code&gt;viddy&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Horizontally print file contents</title>
      <link>https://raveenkumar.com/posts/2023-05-03-horizontally-print-file-contents/</link>
      <pubDate>Wed, 03 May 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-05-03-horizontally-print-file-contents/</guid>
      <description>&lt;p&gt;To concatenate the contents of a vertical file horizontally in Unix, you can use the &lt;code&gt;paste&lt;/code&gt; command with the &lt;code&gt;-s&lt;/code&gt; option.&lt;/p&gt;&#xA;&lt;p&gt;Here&amp;rsquo;s an example:&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s say you have a file &lt;code&gt;file.txt&lt;/code&gt; with the following vertical content:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apple&#xA;banana&#xA;orange&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can concatenate the contents horizontally using the following command:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;paste -s file.txt&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will produce the output:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apple   banana  orange&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The &lt;code&gt;-s&lt;/code&gt; option tells &lt;code&gt;paste&lt;/code&gt; to concatenate the lines horizontally instead of vertically. By default, &lt;code&gt;paste&lt;/code&gt; separates the columns with a tab character. If you want to use a different separator, you can specify it with the &lt;code&gt;-d&lt;/code&gt; option followed by the separator character. For example:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Power of 2s</title>
      <link>https://raveenkumar.com/posts/2023-04-20-power-of-2s/</link>
      <pubDate>Thu, 20 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-04-20-power-of-2s/</guid>
      <description>&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;n&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;2^n&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;1&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;1&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;2&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;2&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;4&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;3&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;8&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;4&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;16&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;5&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;32&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;6&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;64&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;7&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;128&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;8&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;256&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;9&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;512&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;10&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;1,024&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;11&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;2,048&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;12&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;4,096&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;13&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;8,192&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;14&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;16,384&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;15&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;32,768&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;16&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;65,536&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;17&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;131,072&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;18&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;262,144&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;19&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;524,288&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;20&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;1,048,576&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Reading notes - Designing a Video Game hardware in Verilog</title>
      <link>https://raveenkumar.com/posts/2023-04-20-reading-notes---designing-a-video-game-hardware-in-verilog/</link>
      <pubDate>Thu, 20 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-04-20-reading-notes---designing-a-video-game-hardware-in-verilog/</guid>
      <description>&lt;p&gt;Book: &lt;em&gt;Designing Video Game Hardware in Verilog&lt;/em&gt;, Steven Hugg (2018).&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;../2023-04-20-power-of-2s/&#34;&gt;2023-04-20-power-of-2s&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Byte - 8 bits&#xA;Nibble - 4 bits&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-verilog&#34; data-lang=&#34;verilog&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;/*&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;A clock divider in Verilog, using the cascading&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;flip-flop method.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;*/&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;module&lt;/span&gt; clock_divider(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;input&lt;/span&gt; clk,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;input&lt;/span&gt; reset,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;output&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;reg&lt;/span&gt; clk_div2,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;output&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;reg&lt;/span&gt; clk_div4,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;output&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;reg&lt;/span&gt; clk_div8,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;output&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;reg&lt;/span&gt; clk_div16&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#75715e&#34;&gt;// simple ripple clock divider&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;always&lt;/span&gt; @(&lt;span style=&#34;color:#66d9ef&#34;&gt;posedge&lt;/span&gt; clk)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    clk_div2 &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; reset &lt;span style=&#34;color:#f92672&#34;&gt;?&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;~&lt;/span&gt;clk_div2;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;always&lt;/span&gt; @(&lt;span style=&#34;color:#66d9ef&#34;&gt;posedge&lt;/span&gt; clk_div2)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    clk_div4 &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;~&lt;/span&gt;clk_div4;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;always&lt;/span&gt; @(&lt;span style=&#34;color:#66d9ef&#34;&gt;posedge&lt;/span&gt; clk_div4)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    clk_div8 &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;~&lt;/span&gt;clk_div8;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;always&lt;/span&gt; @(&lt;span style=&#34;color:#66d9ef&#34;&gt;posedge&lt;/span&gt; clk_div8)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    clk_div16 &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;~&lt;/span&gt;clk_div16;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;endmodule&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;static-timing-anaysis&#34;&gt;Static timing anaysis&lt;/h2&gt;&#xA;&lt;p&gt;Setup time and hold time are timing constraints that must be met in digital circuits to ensure correct data transfer between logic elements. These constraints are important to consider in the design of synchronous digital circuits, which use a clock signal to synchronize the transfer of data between flip-flops or other storage elements.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Emacs symbol search at point</title>
      <link>https://raveenkumar.com/posts/2023-04-12-emacs-symbol-search-at-point/</link>
      <pubDate>Wed, 12 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-04-12-emacs-symbol-search-at-point/</guid>
      <description>&lt;p&gt;To enter symbol search press &lt;code&gt;M-s .&lt;/code&gt; this with execute &lt;code&gt;isearch-forward-symbol-at-point&lt;/code&gt; function. This is similar to vim&amp;rsquo;s &lt;code&gt;*&lt;/code&gt; key. I accitentally pressed it instead of &lt;code&gt;M-s h .&lt;/code&gt; and found it while trying to highlight a symbol, lol.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mark ring and Jumplist with emacs and helm</title>
      <link>https://raveenkumar.com/posts/2023-04-07-mark-ring-and-jumplist-with-emacs-and-helm/</link>
      <pubDate>Fri, 07 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-04-07-mark-ring-and-jumplist-with-emacs-and-helm/</guid>
      <description>&lt;p&gt;Like vim, emacs has an alternative to jump list. It is called mark rings but its difficult to use. Fortunately there is a helm and counsel function to help us navigate the mark rings. Add this following command to emacs init file,&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(global-set-key (kbd &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C-c &amp;#39;&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;helm-all-mark-rings&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I use &lt;code&gt;C-c &#39;&lt;/code&gt; to browse mark rings.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stop asking tags table to be reset every time a new file is visited in a different project</title>
      <link>https://raveenkumar.com/posts/2023-04-07-stop-asking-tags-table-to-be-reset-every-time-a-new-file-is-visited-in-a-different-project/</link>
      <pubDate>Fri, 07 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-04-07-stop-asking-tags-table-to-be-reset-every-time-a-new-file-is-visited-in-a-different-project/</guid>
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; tags-add-tables &lt;span style=&#34;color:#66d9ef&#34;&gt;nil&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Emacs configuration for perl programming</title>
      <link>https://raveenkumar.com/posts/2023-03-03-emacs-configuration-for-perl-programming/</link>
      <pubDate>Fri, 03 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-03-03-emacs-configuration-for-perl-programming/</guid>
      <description>&lt;p&gt;Configuration taken from &lt;a href=&#34;https://www.emacswiki.org/emacs/CPerlMode&#34;&gt;https://www.emacswiki.org/emacs/CPerlMode&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;;; Perl&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;; cperl-mode is preferred to perl-mode&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;; &amp;#34;Brevity is the soul of wit&amp;#34; &amp;lt;foo at acm.org&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(defalias &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;perl-mode&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;cperl-mode&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; cperl-invalid-face &lt;span style=&#34;color:#66d9ef&#34;&gt;nil&lt;/span&gt;) &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; cperl-electric-keywords &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;) &lt;span style=&#34;color:#75715e&#34;&gt;;; expands for keywords such as foreach, while, etc...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; cperl-hairy &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;) &lt;span style=&#34;color:#75715e&#34;&gt;;; Turns on most of the CPerlMode options&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Python docstrings</title>
      <link>https://raveenkumar.com/posts/2023-02-28-python-docstrings/</link>
      <pubDate>Tue, 28 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-28-python-docstrings/</guid>
      <description>&lt;p&gt;In python, docstrings are used to define the functions documentation. Refer this page,&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://peps.python.org/pep-0257/&#34;&gt;https://peps.python.org/pep-0257/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;function&lt;/span&gt;(a, b):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&amp;#34;Do X and return a list.&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Git hangs on git pull or git fetch</title>
      <link>https://raveenkumar.com/posts/2023-02-27-git-hangs-on-git-pull-or-git-fetch/</link>
      <pubDate>Mon, 27 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-27-git-hangs-on-git-pull-or-git-fetch/</guid>
      <description>&lt;p&gt;Sometime I find git hanging in wsl and it is not able to recover. The only way to recover is restarting the computer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How-to delete an element from a xml tree in Python</title>
      <link>https://raveenkumar.com/posts/2023-02-27-how-to-delete-an-element-from-a-xml-tree-in-python/</link>
      <pubDate>Mon, 27 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-27-how-to-delete-an-element-from-a-xml-tree-in-python/</guid>
      <description>&lt;p&gt;Following are the steps to delete an element from a xml tree proprly when parsing with python,&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://stackoverflow.com/questions/47041688/remove-element-from-xml-with-elementtree&#34;&gt;https://stackoverflow.com/questions/47041688/remove-element-from-xml-with-elementtree&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Example XML tree&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;foo&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;bar&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;level&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;test&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;name=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;stuff&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               hello&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/stuff&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/test&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;test&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;name=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;stuff&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;               hello&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/stuff&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/test&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/level&amp;gt;&lt;/span&gt;   &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/bar&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/foo&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Python code to delete stuff&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; xml.etree.ElementTree &lt;span style=&#34;color:#66d9ef&#34;&gt;as&lt;/span&gt; ET&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tree &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; ET&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;parse(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;myfile.xml&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;root &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; tree&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;getroot()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; test &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; root&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;iter(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;test&amp;#39;&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; stuff &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; test&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;findall(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;stuff&amp;#39;&lt;/span&gt;):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;       test&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;remove(stuff)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print ET&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;tostring(root)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You need to have pointer to parent tag in order to remove child tag.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fuzzy matching with python</title>
      <link>https://raveenkumar.com/posts/2023-02-26-fuzzy-matching-with-python/</link>
      <pubDate>Sun, 26 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-26-fuzzy-matching-with-python/</guid>
      <description>&lt;p&gt;Fuzzy matching is great. In fact, it is better than regular expression matching in certain cases. Come to think of it, our entire human brain works on fuzzy matching.&lt;/p&gt;&#xA;&lt;p&gt;Take handwriting, for example, everyone can read each other&amp;rsquo;s handwriting as long as it&amp;rsquo;s legible. That&amp;rsquo;s fuzzy matching on an organic level.&lt;/p&gt;&#xA;&lt;p&gt;I had a problem where I have a string of text, and I wanted to match the substring with other string but the issue is that the substring varies from string to string and I cant predict the proper substring to do a regex matching. So suddenly out of the blue I got an idea to do a fuzzy matching.&lt;/p&gt;</description>
    </item>
    <item>
      <title>rsync is weird, does not sync &#34;tags&#34; directory</title>
      <link>https://raveenkumar.com/posts/2023-02-24-rsync-is-weird/</link>
      <pubDate>Fri, 24 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-24-rsync-is-weird/</guid>
      <description>&lt;p&gt;For whatever reason rsync decided not to sync &lt;code&gt;tags&lt;/code&gt; directory since it is ignored in CVS mode. Took a lot time to figure out the problem. Finally this command works correctly.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;code&gt;--include&lt;/code&gt;&lt;/em&gt; used to sync everything, despite ofthe cvs option, -C. But removed in this command.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;rsync -av --delete --checksum --copy-links -rPuzhi ./public/ root@raveenkumar.xyz:/var/www/raveenkumar/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Ask bing</title>
      <link>https://raveenkumar.com/posts/2023-02-23-ask-bing/</link>
      <pubDate>Thu, 23 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-23-ask-bing/</guid>
      <description>&lt;p&gt;Today I got access to bing chat feature. Finally AI search is here, lets see how well this goes. Based on my chat it seems much dumber than chatgpt.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://raveenkumar.com/2023-02-23-ask-bing.png&#34; alt=&#34;ask-bing&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Emacs keybindings work on macos</title>
      <link>https://raveenkumar.com/posts/2023-02-23-emacs-keybindings-works-on-macos/</link>
      <pubDate>Thu, 23 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-23-emacs-keybindings-works-on-macos/</guid>
      <description>&lt;p&gt;I was suprised to find out that when I accidentally pressed ctrl-k on a line it killed it in macos. Looks like some emacs keybindings are supported system wide by default.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://irreal.org/blog/?p=259&#34;&gt;http://irreal.org/blog/?p=259&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Explained in this blog post.&lt;/p&gt;&#xA;&lt;p&gt;【Ctrl+f】, 【Ctrl+b】, 【Ctrl+a】, 【Ctrl+e】, 【Ctrl+k】, 【Ctrl+y】, 【Ctrl+p】, 【Ctrl+n】, and a few others work across the whole system.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adding epiog to python scripts using argparse module</title>
      <link>https://raveenkumar.com/posts/2023-02-20-adding-epilog-to-python-scripts-using-argparse-module/</link>
      <pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-20-adding-epilog-to-python-scripts-using-argparse-module/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://docs.python.org/dev/library/argparse.html#argparse.RawDescriptionHelpFormatter&#34;&gt;https://docs.python.org/dev/library/argparse.html#argparse.RawDescriptionHelpFormatter&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;We can add epilog to argparse help and description to add more info. Refer link above.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Emacs File-info package</title>
      <link>https://raveenkumar.com/posts/2023-02-20-emacs-file-info-package/</link>
      <pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-20-emacs-file-info-package/</guid>
      <description>&lt;p&gt;Found a new package today. Does exactly what I want. List and copy the file info and path with a keybind and a popup window.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/Artawower/file-info.el&#34;&gt;https://github.com/Artawower/file-info.el&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Installation:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Add this to you init.el file&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;; File-info&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;use-package&lt;/span&gt; hydra&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;:straight&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;use-package&lt;/span&gt; browse-at-remote&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;:straight&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;use-package&lt;/span&gt; posframe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;:straight&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;use-package&lt;/span&gt; file-info&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;:straight&lt;/span&gt; (&lt;span style=&#34;color:#e6db74&#34;&gt;:host&lt;/span&gt; github &lt;span style=&#34;color:#e6db74&#34;&gt;:repo&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;artawower/file-info.el&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;:bind&lt;/span&gt; ((&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C-c f i&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;file-info-show&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;:config&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; hydra-hint-display-type &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;posframe&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; hydra-posframe-show-params &lt;span style=&#34;color:#f92672&#34;&gt;`&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;:poshandler&lt;/span&gt; posframe-poshandler-frame-center&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                               &lt;span style=&#34;color:#e6db74&#34;&gt;:internal-border-width&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                               &lt;span style=&#34;color:#e6db74&#34;&gt;:internal-border-color&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;#61AFEF&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                               &lt;span style=&#34;color:#e6db74&#34;&gt;:left-fringe&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                                               &lt;span style=&#34;color:#e6db74&#34;&gt;:right-fringe&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt;)))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://du-blog.ru/media/elisp.webp&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Emacs wrap region package</title>
      <link>https://raveenkumar.com/posts/2023-02-20-emacs-wrap-region-package/</link>
      <pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-20-emacs-wrap-region-package/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/rejeep/wrap-region.el&#34;&gt;https://github.com/rejeep/wrap-region.el&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Wrap Region is a minor mode for Emacs that wraps a region with punctuations. For &amp;ldquo;tagged&amp;rdquo; markup modes, such as HTML and XML, it wraps with tags.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to copy paste as plain text into gmail on ios</title>
      <link>https://raveenkumar.com/posts/2023-02-20-how-to-copy-paste-as-plain-text-into-gmail-on-ios/</link>
      <pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-20-how-to-copy-paste-as-plain-text-into-gmail-on-ios/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://apple.stackexchange.com/questions/354992/how-to-copy-and-paste-as-plain-text-on-ios&#34;&gt;https://apple.stackexchange.com/questions/354992/how-to-copy-and-paste-as-plain-text-on-ios&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Paste formatted&lt;/li&gt;&#xA;&lt;li&gt;Select the just pasted text and in the context menu swipe right and tap on &amp;ldquo;Share&amp;hellip;&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;In the Share sheet, tap on &amp;ldquo;Copy&amp;rdquo;. This copies as plain text!&lt;/li&gt;&#xA;&lt;li&gt;Tap still selected text to get the context menu again&lt;/li&gt;&#xA;&lt;li&gt;In the context menu tap on &amp;ldquo;Paste&amp;rdquo; to replace the selected, formatted text with its plain text representation&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>PHP Notes</title>
      <link>https://raveenkumar.com/library/programming/php/</link>
      <pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/php/</guid>
      <description>&lt;h2 id=&#34;php-notes&#34;&gt;PHP Notes&lt;/h2&gt;</description>
    </item>
    <item>
      <title>Recursively grep with emacs lisp only</title>
      <link>https://raveenkumar.com/posts/2023-02-20-recursive-grep-with-emacs-lisp-only/</link>
      <pubDate>Mon, 20 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-20-recursive-grep-with-emacs-lisp-only/</guid>
      <description>&lt;p&gt;I was looking for a way to recursively grep inside a directory and a find-grep replacement since its not availabe in windows and I found this.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.reddit.com/r/emacs/comments/bxtwfg/grep_and_find_but_in_pure_emacs_lisp/&#34;&gt;https://www.reddit.com/r/emacs/comments/bxtwfg/grep_and_find_but_in_pure_emacs_lisp/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(project-find-regexp)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>My webside ideas</title>
      <link>https://raveenkumar.com/library/my-webside-ideas/</link>
      <pubDate>Sun, 19 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/my-webside-ideas/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;Tags are better than folders&lt;/li&gt;&#xA;&lt;li&gt;Write things chronological and as essays and tag some keywords&lt;/li&gt;&#xA;&lt;li&gt;Let it sort itself on the fly based on tags&lt;/li&gt;&#xA;&lt;li&gt;Use less folders&lt;/li&gt;&#xA;&lt;li&gt;Less structure more flow&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>AWK</title>
      <link>https://raveenkumar.com/library/programming/awk/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/awk/</guid>
      <description>&lt;h2 id=&#34;example-1&#34;&gt;Example 1&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;awk -F &#39;,&#39; &#39;{print $NF}&#39; {{filename}}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;To print only rows with columns matching a specific string&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;awk &#39;$3 == &amp;quot;hello&amp;quot;&#39; file&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;This will match with,&#xA;&lt;code&gt;1 2 hello something&lt;/code&gt;&#xA;but not with,&#xA;&lt;code&gt;1 2 world something&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;example-2-awking-and-cutting-some-stuff&#34;&gt;Example 2: Awking and cutting some stuff&lt;/h2&gt;&#xA;&lt;p&gt;Lets assume that you want to print the 1st and 3rd field in one line.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;echo &amp;quot;A:B:C:D:E:F:G&amp;quot; | awk -F &#39;:&#39; &#39;ORS=&amp;quot; &amp;quot; {print $1} {print $3}&#39;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Here ORS stands for, The output record separator, by default its a newline.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cat</title>
      <link>https://raveenkumar.com/library/programming/cat/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/cat/</guid>
      <description>&lt;h2 id=&#34;join-multimedia-files&#34;&gt;Join multimedia files&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;cat movie.mpeg.0* &amp;gt; movie.mpeg&#xA;cat *mp3 &amp;gt; combined.mp3&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Coding Guidelines</title>
      <link>https://raveenkumar.com/library/programming/coding-guidelines/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/coding-guidelines/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;First rule of coding, do not code&lt;/li&gt;&#xA;&lt;li&gt;Second rule of coding, write less code whenever you can&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>cp</title>
      <link>https://raveenkumar.com/library/programming/cp/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/cp/</guid>
      <description>&lt;h2 id=&#34;dereference--follow-and-copy-symbolic-links&#34;&gt;Dereference / follow and copy symbolic links&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;cp -L source dest&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;copy-only-file-that-do-not-exist-in-the-destination-directory---update&#34;&gt;COPY ONLY FILE THAT DO NOT EXIST IN THE DESTINATION DIRECTORY - UPDATE&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;cp -u *.html destination&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cut</title>
      <link>https://raveenkumar.com/library/programming/cut/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/cut/</guid>
      <description>&lt;h2 id=&#34;cut-from-25th-column&#34;&gt;Cut from 25th column&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://superuser.com/questions/316785/is-there-a-diff-utility-that-allows-you-to-exclude-columns&#34;&gt;https://superuser.com/questions/316785/is-there-a-diff-utility-that-allows-you-to-exclude-columns&lt;/a&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;cut -c25- file.txt&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;cut-fields&#34;&gt;Cut fields&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;echo &amp;quot;1:2:3&amp;quot; | cut -d &amp;quot;:&amp;quot; -f 1&#xA;&#xA;1&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>du</title>
      <link>https://raveenkumar.com/library/programming/du/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/du/</guid>
      <description>&lt;h2 id=&#34;find-size-of-all-files-and-directories-under-current-directory-and-sort-it-based-on-size&#34;&gt;Find size of all files and directories under current directory and sort it based on size&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;du -sh * | sort -h&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>FFMPEG notes</title>
      <link>https://raveenkumar.com/library/programming/ffmpeg/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/ffmpeg/</guid>
      <description>&lt;h2 id=&#34;basic-usage&#34;&gt;Basic usage&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;ffmpeg -i input.mp4 output.mp4&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;scale-video-to-height-1080p&#34;&gt;Scale video to height 1080p&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;ffmpeg -i input.mp4 -vf &amp;quot;scale=-2:1080&amp;quot; output.mp4&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;remove-audio-track-from-a-video-file&#34;&gt;Remove audio track from a video file&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;ffmpeg -i input.mp4 -an output.mp4&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;slow-down-a-video&#34;&gt;Slow down a video&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video&#34;&gt;https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video&lt;/a&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;ffmpeg -i &amp;quot;$infile&amp;quot; -filter:v &amp;quot;setpts=2.0*PTS&amp;quot; &amp;quot;slowmo-$infile&amp;quot;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;interpolate-videos-to-high-fps&#34;&gt;Interpolate videos to high fps&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;ffmpeg -i input.mkv -filter:v &amp;quot;minterpolate=&#39;mi_mode=mci:mc_mode=aobmc:vsbmc=1:fps=120&amp;quot; output.mkv&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;concat-video-files&#34;&gt;Concat video files&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;# mylist.txt file format&#xA;# this is a comment&#xA;file &#39;/path/to/file1.mp4&#39;&#xA;file &#39;/path/to/file2.mp4&#39;&#xA;file &#39;/path/to/file3.mp4&#39;&#xA;&#xA;ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;cut-video-files&#34;&gt;Cut video files&lt;/h2&gt;&#xA;&lt;p&gt;Following example cuts a video from 5 seconds to 10 seconds and exports&#xA;it. Alternatively, use this software&lt;/p&gt;</description>
    </item>
    <item>
      <title>Locate</title>
      <link>https://raveenkumar.com/library/programming/locate/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/locate/</guid>
      <description>&lt;h2 id=&#34;description&#34;&gt;Description&lt;/h2&gt;&#xA;&lt;p&gt;Locate is a alternative to find for files.&#xA;Locate uses &lt;code&gt;updatedb&lt;/code&gt; command to update its database.&#xA;Note that we must run the &lt;code&gt;updatedb&lt;/code&gt; command everytime there is file&#xA;system change.&lt;/p&gt;&#xA;&lt;h2 id=&#34;example&#34;&gt;Example&lt;/h2&gt;&#xA;&lt;h3 id=&#34;create-a-database&#34;&gt;Create a database&lt;/h3&gt;&#xA;&lt;pre&gt;&lt;code&gt;updatedb&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h3 id=&#34;locate-files&#34;&gt;Locate files&lt;/h3&gt;&#xA;&lt;pre&gt;&lt;code&gt;locate filename&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h3 id=&#34;create-a-database-locally&#34;&gt;Create a database locally&lt;/h3&gt;&#xA;&lt;pre&gt;&lt;code&gt;updatedb_path=&amp;quot;$HOME/.local/locate_db&amp;quot;&#xA;updatedb_home=&amp;quot;$updatedb_path/home.db&amp;quot;&#xA;updatedb -l 0 -o &amp;quot;$updatedb_home&amp;quot; -U ~/&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h3 id=&#34;locate-files-for-locally-created-database&#34;&gt;Locate files for locally created database&lt;/h3&gt;&#xA;&lt;pre&gt;&lt;code&gt;locate -d &amp;quot;$updatedb_home&amp;quot;&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>pandoc</title>
      <link>https://raveenkumar.com/library/programming/pandoc/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/pandoc/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://pandoc.org/MANUAL.html&#34;&gt;https://pandoc.org/MANUAL.html&lt;/a&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;pandoc -o output.html input.txt&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Powershell notes</title>
      <link>https://raveenkumar.com/library/programming/powershell/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/powershell/</guid>
      <description>&lt;h2 id=&#34;winget&#34;&gt;Winget&lt;/h2&gt;&#xA;&lt;p&gt;To install any program using powershell in similar way to linux use, &lt;code&gt;winget&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Example:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;winget install pandoc&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Sed</title>
      <link>https://raveenkumar.com/library/programming/sed/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/sed/</guid>
      <description>&lt;h2 id=&#34;to-replace-text&#34;&gt;To replace text&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;sed &#39;s/text/replacement_text/g&#39; &amp;lt;file_name&amp;gt;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;to-replace-text-and-write-file&#34;&gt;To replace text and write file&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;sed -i &#39;s/text/replacement_text/g&#39; &amp;lt;file_name&amp;gt;&lt;/code&gt; ** Append to beginning&#xA;of a file sed -i &amp;lsquo;1i text&amp;rsquo; file.txt * &lt;a href=&#34;https://raveenkumar.com/library/programming/linux/&#34;&gt;back&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;find-and-replace-a-specific-line-from-all-files-in-current-directory-matching-a-specific-extension&#34;&gt;Find and replace a specific line from all files in current directory matching a specific extension&lt;/h2&gt;&#xA;&lt;p&gt;Here, all .md files have&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;a id=&amp;#34;org55550fd&amp;#34;&amp;gt;&amp;lt;/a&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Line in it. The following command deletes those lines from all the files.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;find . -iname &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;*.md&amp;#34;&lt;/span&gt; -exec sed -i &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/&amp;lt;a id=*/d&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>TMUX</title>
      <link>https://raveenkumar.com/library/programming/tmux/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/tmux/</guid>
      <description>&lt;p&gt;The greatest samurai to ever exist?&lt;/p&gt;&#xA;&lt;h2 id=&#34;tmux-plugins&#34;&gt;TMUX plugins&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/tmux-plugins/tpm&#34;&gt;GitHub - tmux-plugins/tpm: Tmux Plugin Manager&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/tmux-plugins/tmux-urlview&#34;&gt;GitHub - tmux-plugins/tmux-urlview: Quickly open any url on your terminal window!&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/tmux-plugins/tmux-resurrect&#34;&gt;GitHub - tmux-plugins/tmux-resurrect: Persists tmux environment across system restarts.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;to-move-a-pane-from-another-window-to-current-window&#34;&gt;To move a pane from another window to current window&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;join-pane -s target-window:target-pane&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;to-use-256-colours-in-tmux&#34;&gt;To use 256 colours in Tmux&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://sanctum.geek.nz/arabesque/256-colour-terminals/#:~:text=To%20use%20256%20colours%20in%20Tmux%2C%20you%20should,colour231%20in%20your%20status%20lines%20and%20other%20configurations&#34;&gt;256 colours in TMUX&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;You should set the default terminal in &lt;code&gt;.tmux.conf&lt;/code&gt; to be&#xA;screen-256color,&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;set -g default-terminal &amp;quot;screen-256color&amp;quot;&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows WSL Notes</title>
      <link>https://raveenkumar.com/library/programming/windows-wsl/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/windows-wsl/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://thomasward.com/wsl2-x11/&#34;&gt;https://thomasward.com/wsl2-x11/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;change-password&#34;&gt;Change password&lt;/h2&gt;&#xA;&lt;h3 id=&#34;to-change-to-root-user&#34;&gt;To change to root user&lt;/h3&gt;&#xA;&lt;pre&gt;&lt;code&gt;ubuntu config --default-user root&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h3 id=&#34;to-change-password&#34;&gt;To change password&lt;/h3&gt;&#xA;&lt;pre&gt;&lt;code&gt;passwd, passwd &amp;lt;user_name&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;open-windows-gui-applications-with-linux-command-line&#34;&gt;Open Windows GUI applications with Linux command line&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;mspaint.exe file.png&#xA;notepad.exe file.txt&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://dev.to/adityakanekar/upgrading-from-wsl1-to-wsl2-1fl9&#34;&gt;https://dev.to/adityakanekar/upgrading-from-wsl1-to-wsl2-1fl9&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>bc</title>
      <link>https://raveenkumar.com/library/programming/bc/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/bc/</guid>
      <description>&lt;h2 id=&#34;bc-as-a-hex-calculator&#34;&gt;bc as a hex calculator&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;obase=16&#xA;ibase=16&#xA;9+1&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;bc-fractional&#34;&gt;bc fractional&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;scale=10&#xA;1/3&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;evaluating-expressions-from-commandline&#34;&gt;Evaluating expressions from commandline&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;bc &amp;lt;&amp;lt;&amp;lt; &amp;quot;ibase=10; obase=16; $(grep cru_spare -r | awk -F &amp;quot;,&amp;quot; &#39;{print $NF}&#39;)&amp;quot;&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; notes</title>
      <link>https://raveenkumar.com/library/programming/c&#43;&#43;/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/c&#43;&#43;/</guid>
      <description>&lt;h2 id=&#34;for-loops&#34;&gt;For loops&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;for (uint32_t i=0; i&amp;lt;10; i++) {&#xA;printf(&amp;quot;i = %d&amp;quot;, i);&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;prints&#34;&gt;Prints&lt;/h2&gt;&#xA;&lt;p&gt;printf(&amp;ldquo;unsigned = %u&amp;rdquo;, var1);&#xA;printf(&amp;ldquo;signed   = %d&amp;rdquo;, var1);&lt;/p&gt;&#xA;&lt;h2 id=&#34;functions&#34;&gt;Functions&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://softwareengineering.stackexchange.com/questions/286490/what-is-the-difference-between-function-and-functionvoid&#34;&gt;https://softwareengineering.stackexchange.com/questions/286490/what-is-the-difference-between-function-and-functionvoid&lt;/a&gt;&#xA;6.7.6.3 Function declarators (including prototypes)&#xA;10 The special case of an unnamed parameter of type void as the only item in the list specifies that the function has no parameters.&#xA;14 An identifier list declares only the identifiers of the parameters of the function. An empty list in a function declarator that is part of a definition of that function specifies that the function has no parameters. The empty list in a function declarator that is not part of a definition of that function specifies that no information about the number or types of the parameters is supplied.145)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Copy and paste as plain text into gmail on ios</title>
      <link>https://raveenkumar.com/posts/2023-02-17-copy-and-paste-as-plain-text-into-gmail-on-ios/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/posts/2023-02-17-copy-and-paste-as-plain-text-into-gmail-on-ios/</guid>
      <description>&lt;p&gt;When you copy text anywhere in the browser from an ios device, it is a formatted text. To paste is as a plain text do the following.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Paste formatted&lt;/li&gt;&#xA;&lt;li&gt;Select the just pasted text and in the context menu swipe right and tap on &amp;ldquo;Share&amp;hellip;&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;In the Share sheet, tap on &amp;ldquo;Copy&amp;rdquo;. This copies as plain text!&lt;/li&gt;&#xA;&lt;li&gt;Tap still selected text to get the context menu again&lt;/li&gt;&#xA;&lt;li&gt;In the context menu tap on &amp;ldquo;Paste&amp;rdquo; to replace the selected, formatted text with its plain text representation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Reference:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
