<?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>Notes on Raveen Kumar</title>
    <link>https://raveenkumar.com/tags/notes/</link>
    <description>Recent content in Notes on Raveen Kumar</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>Raveen Kumar</copyright>
    <lastBuildDate>Mon, 20 Feb 2023 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://raveenkumar.com/tags/notes/index.xml" rel="self" type="application/rss+xml" />
    <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>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>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>Fighting techniques</title>
      <link>https://raveenkumar.com/library/fighting-techniques/</link>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/fighting-techniques/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.espn.co.uk/video/clip/_/id/17310654&#34;&gt;Structure is key to success&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/Pz5VKWHQF4c?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/DtnSwm6ajsk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&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>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>Documentation notes</title>
      <link>https://raveenkumar.com/library/programming/documentation/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/documentation/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://documentation.divio.com/&#34;&gt;https://documentation.divio.com/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://labs.quansight.org/blog/2020/03/documentation-as-a-way-to-build-community&#34;&gt;Documentation as a way to build community&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Errors and bugs</title>
      <link>https://raveenkumar.com/library/programming/errors/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/errors/</guid>
      <description>&lt;h2 id=&#34;removing-old-name-device-or-resource-busy&#34;&gt;Removing old name: Device or resource busy&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://unix.stackexchange.com/questions/11238/how-to-get-over-device-or-resource-busy&#34;&gt;https://unix.stackexchange.com/questions/11238/how-to-get-over-device-or-resource-busy&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The tool you want is lsof, which stands for list open files.&lt;/p&gt;&#xA;&lt;p&gt;It has a lot of options, so check the man page, but if you want to see all open files under a directory:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;lsof +D /path&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;That will recurse through the filesystem under /path, so beware doing it on large directory trees.&lt;/p&gt;&#xA;&lt;p&gt;Once you know which processes have files open, you can exit those apps, or kill them with the kill(1) command.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Finance</title>
      <link>https://raveenkumar.com/library/finance/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/finance/</guid>
      <description>&lt;div class=&#34;video&#34;&gt;&#xA;  &lt;div id=&#34;player-wrapper-0&#34; class=&#34;south-park-post-covid-returns-nfts-super-cut&#34;&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;script&#xA;  type=&#34;text/javascript&#34;&#xA;  src=&#34;https://cdn.jsdelivr.net/npm/@clappr/player@latest/dist/clappr.min.js&#34;&#xA;&gt;&#xA;&lt;/script&gt;&#xA;&#xA;&lt;script&gt;&#xA;  (function () {&#xA;    var playerElement = document.getElementById(&#34;player-wrapper-0&#34;);&#xA;&#xA;    var player = new Clappr.Player({&#xA;      source: &#34;/south-park-post-covid-returns-nfts-super-cut.mp4&#34;,&#xA;      mute: true,&#xA;      height: &#34;100%&#34;,&#xA;      width: &#34;100%&#34;&#xA;    });&#xA;&#xA;    player.attachTo(playerElement);&#xA;  })();&#xA;&lt;/script&gt;</description>
    </item>
    <item>
      <title>General programming notes</title>
      <link>https://raveenkumar.com/library/programming/general-programming-notes/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/general-programming-notes/</guid>
      <description>&lt;h2 id=&#34;file-structure&#34;&gt;File structure&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Always try to keep files in one directory, but name them properly&lt;/li&gt;&#xA;&lt;li&gt;Use multiple directories to dump similar data&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;json&#34;&gt;json&lt;/h2&gt;&#xA;&lt;p&gt;Cannot use bash variables inside json files&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux notes general</title>
      <link>https://raveenkumar.com/library/programming/linux/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/linux/</guid>
      <description>&lt;h2 id=&#34;commands&#34;&gt;Commands&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;cat - contatenate&lt;/li&gt;&#xA;&lt;li&gt;tac - concatenate in reverse&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;column-command&#34;&gt;&lt;code&gt;column&lt;/code&gt; command&lt;/h2&gt;&#xA;&lt;p&gt;The column utility formats its input into multiple columns.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;printf &amp;quot;a:b:c\n1::3\n&amp;quot; | column -t -s &#39;:&#39;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;table border=&#34;2&#34; cellspacing=&#34;0&#34; cellpadding=&#34;6&#34; rules=&#34;groups&#34; frame=&#34;hsides&#34;&gt;&#xA;&lt;colgroup&gt;&#xA;&lt;col  class=&#34;org-right&#34; /&gt;&#xA;&lt;col  class=&#34;org-right&#34; /&gt;&#xA;&lt;col  class=&#34;org-left&#34; /&gt;&#xA;&lt;/colgroup&gt;&#xA;&lt;tbody&gt;&#xA;&lt;tr&gt;&#xA;&lt;td class=&#34;org-right&#34;&gt;a&lt;/td&gt;&#xA;&lt;td class=&#34;org-right&#34;&gt;b&lt;/td&gt;&#xA;&lt;td class=&#34;org-left&#34;&gt;c&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td class=&#34;org-right&#34;&gt;1&lt;/td&gt;&#xA;&lt;td class=&#34;org-right&#34;&gt;3&lt;/td&gt;&#xA;&lt;td class=&#34;org-left&#34;&gt;&amp;#xa0;&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Note that this output is different from one that is printed in terminal. Strange… Below is the terminal output.&lt;/p&gt;&#xA;&lt;table border=&#34;2&#34; cellspacing=&#34;0&#34; cellpadding=&#34;6&#34; rules=&#34;groups&#34; frame=&#34;hsides&#34;&gt;&#xA;&lt;colgroup&gt;&#xA;&lt;col  class=&#34;org-right&#34; /&gt;&#xA;&lt;col  class=&#34;org-left&#34; /&gt;&#xA;&lt;col  class=&#34;org-right&#34; /&gt;&#xA;&lt;/colgroup&gt;&#xA;&lt;tbody&gt;&#xA;&lt;tr&gt;&#xA;&lt;td class=&#34;org-right&#34;&gt;a&lt;/td&gt;&#xA;&lt;td class=&#34;org-left&#34;&gt;b&lt;/td&gt;&#xA;&lt;td class=&#34;org-right&#34;&gt;c&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td class=&#34;org-right&#34;&gt;1&lt;/td&gt;&#xA;&lt;td class=&#34;org-left&#34;&gt;&amp;#xa0;&lt;/td&gt;&#xA;&lt;td class=&#34;org-right&#34;&gt;3&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;uuidgen-universal-unique-id-generator&#34;&gt;&lt;code&gt;uuidgen&lt;/code&gt; universal unique id generator&lt;/h2&gt;&#xA;&lt;p&gt;Generate unique ID&amp;rsquo;s&lt;/p&gt;&#xA;&lt;h2 id=&#34;script-records-terminal&#34;&gt;&lt;code&gt;script&lt;/code&gt; Records terminal&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;man script&#xA;man scriptreplay&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;&#xA;&lt;pre&gt;&lt;code&gt;script --timing=file.tm script.out&#xA;# Write some scripts&#xA;# Exit with `exit` or `^d`&#xA;scriptreplay --timing file.tm --typescript script.out&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;reset-recover-a-borked-terminal&#34;&gt;&lt;code&gt;reset&lt;/code&gt; Recover a borked terminal&lt;/h2&gt;&#xA;&lt;h2 id=&#34;count-number-of-files-in-a-directory&#34;&gt;Count number of files in a directory&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;ls -1 | wc -l&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;building-from-source&#34;&gt;Building from source&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;./configure&#xA;./configure --prefix=$path&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;redirections&#34;&gt;Redirections&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;2&amp;gt;&amp;amp;1&#xA;2&amp;gt;&amp;amp;1 &amp;gt; /dev/null&#xA;&amp;gt;&#xA;&amp;gt;/dev/null&#xA;&amp;gt;&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;keymaps&#34;&gt;Keymaps&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;Ctrl-c&#xA;Ctrl-d&#xA;Ctrl-l&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;cp&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/library/programming/cp/&#34;&gt;cp&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;cut&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/library/programming/cut/&#34;&gt;cut&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;less&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/library/programming/less/&#34;&gt;less&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;linux&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/library/programming/linux/&#34;&gt;linux&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;seq&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/library/programming/seq/&#34;&gt;seq&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;paste&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/library/programming/paste/&#34;&gt;paste&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;pstree&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/posts/2023-02-17-pstree/&#34;&gt;pstree&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;du&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/library/programming/du/&#34;&gt;du&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;rsync&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/library/programming/rsync/&#34;&gt;rsync&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;sed&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/library/programming/sed/&#34;&gt;sed&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;ssh&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/library/programming/ssh/&#34;&gt;ssh&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;vifm&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/library/text-editors/vifm/&#34;&gt;vifm&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;zip&#34;&gt;&lt;a href=&#34;https://raveenkumar.com/library/programming/zip/&#34;&gt;zip&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;readline&#34;&gt;Readline&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;C-x C-e&lt;/code&gt; to edit current commant in default text editor&lt;/li&gt;&#xA;&lt;li&gt;or &lt;code&gt;v&lt;/code&gt; in &lt;code&gt;vi&lt;/code&gt; mode&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;ldd-print-shared-libraries&#34;&gt;&lt;code&gt;ldd&lt;/code&gt; Print shared libraries&lt;/h2&gt;&#xA;&lt;p&gt;This command can be used to find all the shared library or libraries of a program&lt;/p&gt;</description>
    </item>
    <item>
      <title>Programming Concepts</title>
      <link>https://raveenkumar.com/library/programming/programming-concepts/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/programming-concepts/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;Arrays&lt;/li&gt;&#xA;&lt;li&gt;Associative arrays&lt;/li&gt;&#xA;&lt;li&gt;dicts&lt;/li&gt;&#xA;&lt;li&gt;case&lt;/li&gt;&#xA;&lt;li&gt;while&lt;/li&gt;&#xA;&lt;li&gt;for&lt;/li&gt;&#xA;&lt;li&gt;if&lt;/li&gt;&#xA;&lt;li&gt;exit codes and returns&lt;/li&gt;&#xA;&lt;li&gt;advicing functions&lt;/li&gt;&#xA;&lt;li&gt;Fuzzy matching - &lt;a href=&#34;https://raveenkumar.com/posts/2023-02-26-fuzzy-matching-with-python/&#34;&gt;Fuzzy Matching with python&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Programming quotes</title>
      <link>https://raveenkumar.com/library/programming-quotes/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming-quotes/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://howto-pages.org/shootfoot.php&#34;&gt;How to shoot yourself in the foot&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle. — Joe&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Some people, when confronted with a problem, think ‘I&#xA;know, I’ll use regular expressions.’ Now they have two&#xA;problems.&lt;/p&gt;&#xA;&lt;p&gt;Jamie Zawinski&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Yuan-Ma said, ‘When you cut against the grain of the wood,&#xA;much strength is needed. When you program against the&#xA;grain of the problem, much code is needed.’&lt;/p&gt;</description>
    </item>
    <item>
      <title>Simulations</title>
      <link>https://raveenkumar.com/library/programming/vlsi/simulations/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/vlsi/simulations/</guid>
      <description>&lt;p&gt;Notes on compiling a testbench with &lt;code&gt;irun&lt;/code&gt;. The file list it compiles lives&#xA;in &lt;code&gt;irun_args_compile&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;add-every-new-file-to-irun_args_compile&#34;&gt;Add every new file to &lt;code&gt;irun_args_compile&lt;/code&gt;&lt;/h2&gt;&#xA;&lt;p&gt;A new file stays out of the compile until you list it there.&lt;/p&gt;&#xA;&lt;h2 id=&#34;dont-compile-a-file-or-directory-twice&#34;&gt;Don&amp;rsquo;t compile a file or directory twice&lt;/h2&gt;&#xA;&lt;p&gt;Listing the same file or directory twice stops the compile with one of these&#xA;errors:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;xmvlog: *E,COFILX&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;xmvlog: *E,ILLPDL&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;dont-include-a-file-that-is-already-compiled&#34;&gt;Don&amp;rsquo;t &lt;code&gt;`include&lt;/code&gt; a file that is already compiled&lt;/h2&gt;&#xA;&lt;p&gt;If &lt;code&gt;irun_args_compile&lt;/code&gt; already compiles a file, the &lt;code&gt;.sv&lt;/code&gt; file doesn&amp;rsquo;t need to&#xA;&lt;code&gt;`include&lt;/code&gt; it again.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ssh</title>
      <link>https://raveenkumar.com/library/programming/ssh/</link>
      <pubDate>Fri, 17 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/ssh/</guid>
      <description>&lt;h2 id=&#34;cd-to-a-particular-dir-after-ssh&#34;&gt;Cd to a particular dir after ssh&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ ssh -t ostechnix@192.168.225.52 &#39;cd /home/ostechnix/dir1 ; bash&#39;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;to-automatically-install-a-ssh-public-key-on-a-remote-machine&#34;&gt;To automatically install a ssh public key on a remote machine&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;ssh-copy-id -i ~/.ssh/id_rsa.pub $USER@$HOSTNAME&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;to-manually-install-a-ssh-public-key-on-a-remote-machine&#34;&gt;To manually install a ssh public key on a remote machine&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;cat ~/.ssh/id_rsa.pub; # copy the contents of the file; paste into ssh/authorized_keys file;&#xA;chmod 600 ~/.ssh/authorized_keys&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Emacs</title>
      <link>https://raveenkumar.com/library/text-editors/emacs/</link>
      <pubDate>Thu, 16 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/text-editors/emacs/</guid>
      <description>&lt;p&gt;You mean Vim?&lt;/p&gt;&#xA;&lt;p&gt;No matter how much I try EMACS is just too slow for me. Its not snappy as vim. and often times its lagging and hanging and the package management is too slow. Its bluky and full of bloat. Dont get me wrong the base emacs is great. But as soon as I add packages and try to modify it, it keeps getting bulkier and difficult to manage. Whereas vim is snappy. And I can full use tmux and terminal and my hands and safe from injuries. And its comfy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>VLSI</title>
      <link>https://raveenkumar.com/library/programming/vlsi/</link>
      <pubDate>Thu, 16 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/vlsi/</guid>
      <description>&lt;h2 id=&#34;vlsi&#34;&gt;VLSI&lt;/h2&gt;</description>
    </item>
    <item>
      <title>GNU Make Notes</title>
      <link>https://raveenkumar.com/library/programming/gnu-make/</link>
      <pubDate>Mon, 13 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://raveenkumar.com/library/programming/gnu-make/</guid>
      <description>&lt;h2 id=&#34;gnu-make-notes&#34;&gt;GNU Make notes&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.cmcrossroads.com/article/basics-getting-environment-variables-gnu-make&#34;&gt;https://www.cmcrossroads.com/article/basics-getting-environment-variables-gnu-make&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;exit script with &lt;code&gt;exit 0&lt;/code&gt; or make will interpret it as error if there is no &lt;code&gt;0&lt;/code&gt; returned. Context below&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://stackoverflow.com/questions/15894675/make-error-1&#34;&gt;c - Make: *** [] Error 1 - Stack Overflow&lt;/a&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
