<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on arunsrin&#39;s notes</title>
    <link>https://www.arunsr.in/</link>
    <description>Recent content in Home on arunsrin&#39;s notes</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <atom:link href="https://www.arunsr.in/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>🔒 OpenSSL</title>
      <link>https://www.arunsr.in/tech/openssl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/openssl/</guid>
      <description>&lt;h1 id=&#34;-openssl&#34;&gt;🔒 OpenSSL&lt;/h1&gt;&#xA;&lt;p&gt;Some non-openssl &lt;a href=&#34;https://www.arunsr.in/tech/security/&#34;&gt;security&lt;/a&gt;&#xA; notes are in a sibling page.&lt;/p&gt;&#xA;&lt;h2 id=&#34;verify-public-cert-private-key-csr&#34;&gt;Verify Public Cert, Private Key, CSR&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Public Cert&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openssl x509 -noout -text -in server.crt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Private Key&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openssl rsa -noout -text -in server.key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;CSR&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openssl req -text -noout -verify -in server.csr&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;verify-if-a-cert-and-key-are-pairs&#34;&gt;Verify if a cert and key are pairs&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openssl x509 -noout -modulus -in server.pem &lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt; openssl md5 &lt;span style=&#34;color:#1f2328&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#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:#0a3069&#34;&gt;&lt;/span&gt;openssl rsa -noout -modulus -in server.key &lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt; openssl md5&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;convert-cer-to-pem&#34;&gt;Convert .cer to .pem&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openssl x509 -inform der -in certificate.cer -out certificate.pem&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;connect-and-verify&#34;&gt;Connect and verify&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Connect to a remote host and see a whole lot of details:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; openssl s_client -connect remote-hostname.com:443 &lt;span style=&#34;color:#0a3069&#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:#0a3069&#34;&gt;&lt;/span&gt; -msg -showcerts -verify &lt;span style=&#34;color:#0550ae&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#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:#0a3069&#34;&gt;&lt;/span&gt;-CAfile allca.cer -cert myhostname.cer -key myhostname.key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;View a remote host&amp;rsquo;s certificate details:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6639ba&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#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:#0a3069&#34;&gt;&lt;/span&gt;openssl s_client  -connect remote-hostname.com:443 2&amp;gt;/dev/null &lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#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:#0a3069&#34;&gt;&lt;/span&gt;openssl x509 -text&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;generate-a-csr&#34;&gt;Generate a CSR&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openssl req -newkey rsa:2048 -nodes -out myhostname.csr -config myopenssl.cnf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For this a config file is needed. Fill it up with details like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://www.arunsr.in/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/about/</guid>
      <description>&lt;h1 id=&#34;material-penguin-anim-heart-about&#34;&gt;:material-penguin:{ .anim-heart }About&lt;/h1&gt;&#xA;&lt;p&gt;I’m a software engineer in Bangalore who is addicted to &lt;a href=&#34;https://www.arunsr.in/books/&#34;&gt;books&lt;/a&gt;&#xA;. Classic&#xA;Literature (&lt;a href=&#34;https://www.arunsr.in/books/fiction/literary/despair/&#34;&gt;Vladimir Nabokov&lt;/a&gt;&#xA;), Popular Science (&lt;a href=&#34;https://www.arunsr.in/other-interests/people/dawkins/&#34;&gt;Richard&#xA;Dawkins&lt;/a&gt;&#xA;) and Science Fiction (Greg Egan) are the&#xA;genres I prefer. The picture at the end of this page shows all the books I own,&#xA;as of Feb 2015.&lt;/p&gt;&#xA;&lt;p&gt;I seem to prefer breadth over depth, and enjoy playing games (mostly&#xA;on my &lt;a href=&#34;https://www.arunsr.in/games/xbox/&#34;&gt;Xbox Series X&lt;/a&gt;&#xA; these days), fiddling with&#xA;GNU/Linux (Fedora or WSL2 on windows), &lt;a href=&#34;https://www.arunsr.in/tech/editors/&#34;&gt;Emacs&lt;/a&gt;&#xA; and&#xA;&lt;a href=&#34;https://www.arunsr.in/tech/programming/python/&#34;&gt;Python&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Accounting</title>
      <link>https://www.arunsr.in/books/intro/accounting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/intro/accounting/</guid>
      <description>&lt;h1 id=&#34;material-file-document-outline-anim-heart--accounting&#34;&gt;:material-file-document-outline:{ .anim-heart } Accounting&lt;/h1&gt;&#xA;&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;Apparently, the need to keep accounting was a key driver in the&#xA;invention of writing and numbers.&lt;/p&gt;&#xA;&lt;h2 id=&#34;types-of-accounting&#34;&gt;Types of Accounting&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Book keeping - raw data collection. Almost always double-entry&#xA;bookkeeping&lt;/li&gt;&#xA;&lt;li&gt;Financial accounting - Create reports about income statement,&#xA;balance sheet, etc to see cash flows and profit and financial&#xA;positiion of an entity.&lt;/li&gt;&#xA;&lt;li&gt;Auditing - Independent checks&lt;/li&gt;&#xA;&lt;li&gt;Management accounting - Internal use of accounting data to make&#xA;decisions around prices, volumes of production, locations for&#xA;expansion etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Deloitte, Ernst and Young, KPMG, PwC are apparently the big four.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Advertising</title>
      <link>https://www.arunsr.in/books/intro/advertising/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/intro/advertising/</guid>
      <description>&lt;h1 id=&#34;material-file-document-outline-anim-flip--advertising&#34;&gt;:material-file-document-outline:{ .anim-flip } Advertising&lt;/h1&gt;&#xA;&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;I have a low impression of the advertising industry but it should be&#xA;interesting to read an advocate&amp;rsquo;s perspective.&lt;/p&gt;&#xA;&lt;p&gt;Lol the author blames policymakers for mandating content labels&#xA;(this product is 90% sugar) over end result (it&amp;rsquo;s tasty and you&amp;rsquo;ll&#xA;love eating it).&lt;/p&gt;&#xA;&lt;h2 id=&#34;types&#34;&gt;Types&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Classifieds: ads which people look for; newspaper/internet&lt;/li&gt;&#xA;&lt;li&gt;Display: ads which look for people; intrusive by nature;&#xA;newspaper/tv/radio/internet&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;advertising-tripartite&#34;&gt;Advertising tripartite&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Advertisers e.g. soda companies. The ones who pay money to reach&#xA;an audience.&lt;/li&gt;&#xA;&lt;li&gt;Media e.g. news channels, papers, radio stations. They have an ad&#xA;arm that is hopefully independent of the content arm.&lt;/li&gt;&#xA;&lt;li&gt;Advertising agencies e.g. the people who create the ads.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;history-and-ecosystem&#34;&gt;History and Ecosystem&lt;/h2&gt;&#xA;&lt;p&gt;Media and agency split is apparently about 90/10% these days.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AI</title>
      <link>https://www.arunsr.in/tech/ai/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/ai/</guid>
      <description>&lt;h1 id=&#34;material-brain-anim-bounce--ai&#34;&gt;:material-brain:{ .anim-bounce } AI&lt;/h1&gt;&#xA;&lt;h2 id=&#34;benefits&#34;&gt;Benefits&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;m enjoying playing with LLMs these days. Here are some ways they have improved&#xA;my life:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;In late 2024 I was using it for simple things like the random quotes at the&#xA;bottom of this (and all other) pages: these are generated by a simple bit of&#xA;JavaScript that ChatGPT helped create. It knew how to integrate this into&#xA;MkDocs and generated a bunch of quotes too :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Alexander the Great</title>
      <link>https://www.arunsr.in/books/intro/alexander/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/intro/alexander/</guid>
      <description>&lt;h1 id=&#34;material-file-document-outline-anim-bounce--alexander-the-great&#34;&gt;:material-file-document-outline:{ .anim-bounce } Alexander the Great&lt;/h1&gt;&#xA;&lt;h1 id=&#34;introduction&#34;&gt;Introduction&lt;/h1&gt;&#xA;&lt;p&gt;Born in 356 BCE, king of Macedon from 336 to his death in 323.&lt;/p&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&lt;/h2&gt;&#xA;&lt;p&gt;People used to maintain Astronomical Diaries to monitor positions of&#xA;planets, and unusual phenomena like comets and eclipses. Some of them&#xA;were seen as omens and used to decide how to protect the king. They&#xA;are good texts that chronicle his deeds.&lt;/p&gt;&#xA;&lt;p&gt;Later accounts lionize him as they were meant to serve as inspiration&#xA;for their audience: the Roman elite. So they are not very reliable&#xA;even if there are multiple accounts of the same story.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Anaesthesia</title>
      <link>https://www.arunsr.in/books/intro/anaesthesia/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/intro/anaesthesia/</guid>
      <description>&lt;h1 id=&#34;material-file-document-outline-anim-pulse--anaesthesia&#34;&gt;:material-file-document-outline:{ .anim-pulse } Anaesthesia&lt;/h1&gt;&#xA;&lt;h1 id=&#34;suspended-animation-concepts-of-anaesthesia&#34;&gt;Suspended Animation: Concepts of Anaesthesia&lt;/h1&gt;&#xA;&lt;p&gt;In the mid-19th century, the term &lt;em&gt;etherization&lt;/em&gt; was used to describe&#xA;the state produced by the inhalation of ether vapour. They found&#xA;chloroform and other agents were more effective. So the term&#xA;anaesthesia, i.e. &lt;em&gt;without sensation&lt;/em&gt;, came into being.&lt;/p&gt;&#xA;&lt;p&gt;The ether/chloroform combo was not enough and intravenous agents,&#xA;muscle relaxants and other adjuncts were introduced. Nowadays an&#xA;anaesthetic agent, an analgesic, and a muscle relaxant are used&#xA;together.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ansible</title>
      <link>https://www.arunsr.in/tech/ansible/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/ansible/</guid>
      <description>&lt;h1 id=&#34;simple-ansible-anim-heart--ansible&#34;&gt;:simple-ansible:{ .anim-heart } Ansible&lt;/h1&gt;&#xA;&lt;p&gt;These are mostly notes from reading &lt;em&gt;Mastering Ansible&lt;/em&gt;, by James Freeman and&#xA;Jesse Keating. I&amp;rsquo;ve used ansible quite a bit but wanted a structured&#xA;understanding of it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;setup&#34;&gt;Setup&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;pip install ansible&lt;/code&gt; in a virtualenv is enough. Config is in &lt;code&gt;~/.ansible.cfg&lt;/code&gt;.&#xA;Verify the critical paths with this:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;~/code/learnansible via  v3.12.0 &lt;span style=&#34;color:#0550ae&#34;&gt;(&lt;/span&gt;.ans&lt;span style=&#34;color:#0550ae&#34;&gt;)&lt;/span&gt; ❯ ansible-inventory --version&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ansible-inventory &lt;span style=&#34;color:#0550ae&#34;&gt;[&lt;/span&gt;core 2.16.x&lt;span style=&#34;color:#0550ae&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  config &lt;span style=&#34;color:#953800&#34;&gt;file&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt; /home/arunsrin/.ansible.cfg&#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;&lt;h3 id=&#34;modern-ansible-tooling&#34;&gt;Modern Ansible Tooling&lt;/h3&gt;&#xA;&lt;p&gt;While &lt;code&gt;ansible-playbook&lt;/code&gt; is the classic way to run tasks, the modern ecosystem now prefers &lt;strong&gt;Ansible Navigator&lt;/strong&gt; (&lt;code&gt;ansible-navigator&lt;/code&gt;) for a more consistent, containerized execution environment and a rich TUI.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AWS</title>
      <link>https://www.arunsr.in/tech/aws/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/aws/</guid>
      <description>&lt;h1 id=&#34;material-cloud-anim-fade--aws&#34;&gt;:material-cloud:{ .anim-fade } AWS&lt;/h1&gt;&#xA;&lt;p&gt;Most of this is from &lt;em&gt;Amazon Web Services in Action, IInd edition&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;cloudformation&#34;&gt;CloudFormation&lt;/h2&gt;&#xA;&lt;p&gt;Use CloudFormation to create a wordpress infra using these services:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ELB - ALB specifically&lt;/li&gt;&#xA;&lt;li&gt;EC2 - Let&amp;rsquo;s try 2 instances&lt;/li&gt;&#xA;&lt;li&gt;RDS - For MySql&lt;/li&gt;&#xA;&lt;li&gt;EFS - Using NFSv4.1 for User uploads&lt;/li&gt;&#xA;&lt;li&gt;Security Groups - Firewall&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Full yaml written by the authors is &lt;a href=&#34;https://s3.amazonaws.com/awsinaction-code2/chapter02/template.yaml&#34;&gt;here&lt;/a&gt;&#xA;.&lt;/p&gt;&#xA;&lt;p&gt;Well that was fast. The template file externalizes the keypair so you can put&#xA;your own from the drop down.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Browsers</title>
      <link>https://www.arunsr.in/tech/browsers/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/browsers/</guid>
      <description>&lt;h1 id=&#34;material-web-anim-pulse--browsers&#34;&gt;:material-web:{ .anim-pulse } Browsers&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve settled on, surprisingly, MS Edge as my primary browser. The bits I like:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;It allows me to have a separate instance signed in with my work profile, and&#xA;another one with my personal profile. So I&amp;rsquo;m quite happy segregating bookmarks,&#xA;extensions, etc across both those instances.&lt;/li&gt;&#xA;&lt;li&gt;The chrome family of browsers have the best &lt;em&gt;Print to PDF&lt;/em&gt; option. I use this&#xA;once in a while to archive great pages (like LWN&amp;rsquo;s weekly news).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;great-extensions&#34;&gt;Great extensions&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://microsoftedge.microsoft.com/addons/detail/bitwarden-free-password/jbkfoedolllekgbhcbcoahefnbanhhlh&#34;&gt;Bitwarden&lt;/a&gt;&#xA;: This is my password manager so I can&amp;rsquo;t live without this one.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Capitalism</title>
      <link>https://www.arunsr.in/other-interests/research/capitalism/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/research/capitalism/</guid>
      <description>&lt;h1 id=&#34;material-cash-multiple-anim-heart--capitalism&#34;&gt;:material-cash-multiple:{ .anim-heart } Capitalism&lt;/h1&gt;&#xA;&lt;p&gt;Unfettered capitalism is the root of all evil.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.theguardian.com/world/2013/dec/08/david-simon-capitalism-marx-two-americas-wire&#34;&gt;&amp;lsquo;There are now two Americas. My country is a horror show&amp;rsquo;&lt;/a&gt;&#xA; from &lt;strong&gt;The Wire&lt;/strong&gt; creator, David Simon.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Pretty much all of the &lt;a href=&#34;https://www.reddit.com/r/antiwork/&#34;&gt;anti-work&lt;/a&gt;&#xA; subreddit is a joy to lurk in.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.cbc.ca/documentaries/the-passionate-eye/recycling-was-a-lie-a-big-lie-to-sell-more-plastic-industry-experts-say-1.5735618&#34;&gt;Fuck the Plastic Industry&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.vox.com/culture/2019/12/23/20991659/ebook-amazon-kindle-ereader-department-of-justice-publishing-lawsuit-apple-ipad&#34;&gt;Nice&#xA;overview&lt;/a&gt;&#xA;&#xA;of how the book industry compares with ebooks. Essentially amazon&#xA;re-used the same model in both (where the publisher recommends a price&#xA;but the seller decides it ultimately), and Apple colluded with the big&#xA;publishers to switch it to another model: where the price can be&#xA;determined by the publisher up front, and the seller just gets a flat&#xA;30% cut.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Carl Sagan</title>
      <link>https://www.arunsr.in/other-interests/people/sagan/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/people/sagan/</guid>
      <description>&lt;h1 id=&#34;material-weather-night-anim-rotate--carl-sagan&#34;&gt;:material-weather-night:{ .anim-rotate } Carl Sagan&lt;/h1&gt;&#xA;&lt;h2 id=&#34;why&#34;&gt;Why&lt;/h2&gt;&#xA;&lt;p&gt;Dawkins made me an atheist, but Sagan first had to make me a&#xA;&lt;a href=&#34;https://www.arunsr.in/other-interests/research/scepticism/&#34;&gt;sceptic&lt;/a&gt;&#xA;. In my childhood, I used to believe anything I read. I was&#xA;obsessed with pseudo-scientific rubbish like ESP and Telepathy and&#xA;Aliens in Roswell. It took kind-hearted Sagan&amp;rsquo;s thought-provoking&#xA;books to guide me back to a more sensble path.&lt;/p&gt;&#xA;&lt;p&gt;Carl Sagan was a great explainer and a passionate communicator. Who&#xA;better to represent all of humanity, in the plaques that were sent out&#xA;to space in the Voyager?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Climate Change</title>
      <link>https://www.arunsr.in/other-interests/research/climate-change/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/research/climate-change/</guid>
      <description>&lt;h1 id=&#34;material-thermometer-anim-fade--climate-change&#34;&gt;:material-thermometer:{ .anim-fade } Climate Change&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.theguardian.com/environment/2019/sep/20/the-climate-crisis-explained-in-10-charts&#34;&gt;10 charts by the Guardian&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://xkcd.com/1732&#34;&gt;xkcd on temperature change&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://arstechnica.com/science/2020/01/whats-causing-australias-devastating-fire-weather/&#34;&gt;Australia&amp;rsquo;s 2019/2020 forest fires&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.arunsr.in/books/non-fiction/science/thinking-climate-change/&#34;&gt;My own notes&lt;/a&gt;&#xA; from the book &lt;em&gt;&amp;ldquo;The thinking person&amp;rsquo;s guide to Climate Change&amp;rdquo;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>COVID-19 References</title>
      <link>https://www.arunsr.in/other-interests/research/covid-19/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/research/covid-19/</guid>
      <description>&lt;h1 id=&#34;material-virus-anim-fade--covid-19-references&#34;&gt;:material-virus:{ .anim-fade } COVID-19 References&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;m keeping a diary of interesting links to track the COVID-19 epidemic.&lt;/p&gt;&#xA;&lt;h2 id=&#34;global-links&#34;&gt;Global links&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Archive of &lt;a href=&#34;https://web.archive.org/web/20200618093658/https://slatestarcodex.com/2020/03/02/coronavirus-links-speculation-open-thread/&#34;&gt;a good bunch of links on SSC&lt;/a&gt;&#xA;.&lt;/li&gt;&#xA;&lt;li&gt;A rationalist &lt;a href=&#34;https://putanumonit.com/2020/02/27/seeing-the-smoke/&#34;&gt;prepper&lt;/a&gt;&#xA;. Articles like this helped me prepare about a month before shit hit the fan.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://medium.com/@tomaspueyo/coronavirus-act-today-or-people-will-die-f4d3d9cd99ca&#34;&gt;Why You Must Act Now&lt;/a&gt;&#xA; - Nice comprehensive article that was doing the rounds in the early days.&lt;/li&gt;&#xA;&lt;li&gt;Comprehensive &lt;a href=&#34;https://arstechnica.com/science/2020/04/dont-panic-the-comprehensive-ars-technica-guide-to-the-coronavirus/&#34;&gt;arstechnica coverage&lt;/a&gt;&#xA;.&lt;/li&gt;&#xA;&lt;li&gt;Why the whole test kit availability thing was messed up in the early days: &lt;a href=&#34;https://arstechnica.com/science/2020/04/cdcs-failed-coronavirus-tests-were-tainted-with-coronavirus-feds-confirm/&#34;&gt;they were tainted&lt;/a&gt;&#xA;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.who.int/news-room/detail/29-06-2020-covidtimeline&#34;&gt;Timeline of WHO&amp;rsquo;s response&lt;/a&gt;&#xA;.&lt;/li&gt;&#xA;&lt;li&gt;How &lt;a href=&#34;https://arstechnica.com/science/2020/06/new-zealand-eliminates-covid-19-lifts-all-social-distancing/&#34;&gt;New Zealand beat COVID-19&lt;/a&gt;&#xA;.&lt;/li&gt;&#xA;&lt;li&gt;A nice summary of &lt;a href=&#34;https://blogs.sciencemag.org/pipeline/archives/2020/09/21/the-vaccine-protocols&#34;&gt;the Vaccine Protocols&lt;/a&gt;&#xA;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;scepticism&#34;&gt;Scepticism&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A paper that was doing the rounds on Whatsapp was &lt;a href=&#34;https://www.statnews.com/2020/02/03/retraction-faulty-coronavirus-paper-good-moment-for-science/&#34;&gt;retracted&lt;/a&gt;&#xA;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.politico.com/news/2020/04/21/malaria-drug-virginia-coronavirus-study-198590&#34;&gt;HCQ results&lt;/a&gt;&#xA; after certain clowns made a big deal of it.&lt;/li&gt;&#xA;&lt;li&gt;Lack of clarity on &lt;a href=&#34;https://www.sciencedaily.com/releases/2020/04/200429134020.htm&#34;&gt;remdesivir&amp;rsquo;s effectiveness&lt;/a&gt;&#xA;. It may be &lt;a href=&#34;https://arstechnica.com/science/2020/05/hydroxychloroquine-linked-to-increase-in-covid-19-deaths-heart-risks/&#34;&gt;worse than doing nothing&lt;/a&gt;&#xA;.&lt;/li&gt;&#xA;&lt;li&gt;Social media scrambling as always, fighting &lt;a href=&#34;https://techcrunch.com/2020/05/07/plandemic-video-judy-mikovits/&#34;&gt;misinformation&lt;/a&gt;&#xA;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;india-specific-links&#34;&gt;India-specific links&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.thehindu.com/data/data-where-does-india-stand-on-the-coronavirus-curve/article31137679.ece?homepage=true&#34;&gt;Trying to predict the curve&lt;/a&gt;&#xA;, way back in March.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ndtv.com/india-news/coronavirus-outbreak-15-lakh-delhi-covid-19-cases-in-optimistic-scenario-centres-estimate-2199464&#34;&gt;Some more scenarios&lt;/a&gt;&#xA;, from March.&lt;/li&gt;&#xA;&lt;li&gt;Reasons for doubt: &lt;a href=&#34;https://www.thehindu.com/sci-tech/health/India-under-reported-TB-for-15-years-WHO/article16070274.ece&#34;&gt;India under-reporting TB cases for years&lt;/a&gt;&#xA;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.thehindu.com/news/national/coronavirus-madhya-pradesh-pushes-working-hours-from-eight-to-12-in-factories/article31527330.ece?homepage=true&#34;&gt;So cruel :(&lt;/a&gt;&#xA;. Politicians and corporations put worker rights last.&lt;/li&gt;&#xA;&lt;li&gt;India has an &lt;a href=&#34;https://idsp.nic.in/index4.php?lang=1&amp;amp;level=0&amp;amp;linkid=406&amp;amp;lid=3689&#34;&gt;Integrated Disease Surveillance Program&lt;/a&gt;&#xA; that is meant to handle epidemics like this. They had daily updates until COVID-19 hit, and ICMR stepped in instead.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.theguardian.com/world/2020/jun/08/how-lives-were-destroyed-under-cover-of-lockdown-in-a-small-indian-town&#34;&gt;How to make even a fucking epidemic about religion&lt;/a&gt;&#xA;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.thehindu.com/news/national/news-analysis-india-may-have-undercounted-cases/article31822079.ece&#34;&gt;ICMR research&lt;/a&gt;&#xA; that implies 7 lakh infected in a few districts, when the nation-wide count at that time was 3.4 lakhs (!!)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;bangalore-specific-links&#34;&gt;Bangalore-specific links&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://bbmp.gov.in/en/covid19bulletins&#34;&gt;BBMP daily bulletins&lt;/a&gt;&#xA;. Very nice charts.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://chbms.bbmpgov.in/portal/reports1/hreport.html&#34;&gt;Hospital beds allocated and available currently&lt;/a&gt;&#xA;.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Crypto 101</title>
      <link>https://www.arunsr.in/books/non-fiction/science/crypto101/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/non-fiction/science/crypto101/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-fade--crypto-101&#34;&gt;:material-pencil:{ .anim-fade } Crypto 101&lt;/h1&gt;&#xA;&lt;p&gt;Notes from reading the excellent book at &lt;a href=&#34;https://www.crypto101.io/&#34;&gt;https://www.crypto101.io/&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Other &lt;a href=&#34;https://www.arunsr.in/tech/security/&#34;&gt;security&lt;/a&gt;&#xA; notes.&lt;/p&gt;&#xA;&lt;h2 id=&#34;block-ciphers&#34;&gt;Block ciphers&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;C = E(k, P)&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;k&lt;/code&gt; and &lt;code&gt;P&lt;/code&gt; are the key and plain text.&lt;/p&gt;&#xA;&lt;p&gt;The plain text is broken up into blocks of length equal to the key&amp;rsquo;s block size.&lt;/p&gt;&#xA;&lt;p&gt;The same key is used to decrypt.&lt;/p&gt;&#xA;&lt;p&gt;Most common one is AES. preceeded by DES.&lt;/p&gt;&#xA;&lt;p&gt;AES was called Rijndael after its 2 developers. allows block sizes of 32, 128, 192 and 256.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cryptocurrencies</title>
      <link>https://www.arunsr.in/other-interests/research/cryptocurrencies/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/research/cryptocurrencies/</guid>
      <description>&lt;h1 id=&#34;material-currency-btc-anim-bounce--cryptocurrencies&#34;&gt;:material-currency-btc:{ .anim-bounce } Cryptocurrencies&lt;/h1&gt;&#xA;&lt;p&gt;I find it telling that the loudest proponents of Crypto are VCs who extol the virtues of a decentralized system while building and profiting from centralized solutions. Here are some links that align well with how I perceive crypto.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.usenix.org/publications/loginonline/web3-fraud&#34;&gt;Usenix | The Web3 Fraud&lt;/a&gt;&#xA; - Mostly from the perspective of how painfully slow and inefficient the compute is.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://networked.substack.com/p/web3-i-have-my-daots&#34;&gt;Web3? I have my DAOts&lt;/a&gt;&#xA; - Nicely balances the FOMO that a self-respective engineer would have with a new technology with failings of crypto/NFTs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docseuss.medium.com/look-what-you-made-me-do-a-lot-of-people-have-asked-me-to-make-nft-games-and-i-wont-because-i-m-29c7cfdbbb79&#34;&gt;look what you made me do: a lot of people have asked me to make NFT games and I won’t because i’m not a fucking dumbass. now let me tell you why only a dumbass would get into NFT games&lt;/a&gt;&#xA; - A game developers perspective on NFTs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://drewdevault.com/2021/04/26/Cryptocurrency-is-a-disaster.html&#34;&gt;Cryptocurrency is an abject disaster&lt;/a&gt;&#xA; - From Drew DeVault, who is always worth reading.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.stephendiehl.com/blog/ponzi.html&#34;&gt;Bitcoin: The Postmodern Ponzi&lt;/a&gt;&#xA; - Comparison to a Ponzi scheme.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.schneier.com/blog/archives/2019/02/blockchain_and_.html&#34;&gt;Blockchain and Trust&lt;/a&gt;&#xA; - By Schneier.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Databases</title>
      <link>https://www.arunsr.in/tech/databases/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/databases/</guid>
      <description>&lt;h1 id=&#34;material-database-anim-flip--databases&#34;&gt;:material-database:{ .anim-flip } Databases&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.arunsr.in/tech/elastic/&#34;&gt;Elastic&lt;/a&gt;&#xA; notes are in a sibling page.&lt;/p&gt;&#xA;&lt;h2 id=&#34;notes-from-sql-quickstart-guide&#34;&gt;Notes from &amp;ldquo;SQL QuickStart Guide&amp;rdquo;&lt;/h2&gt;&#xA;&lt;p&gt;Author: Walter Shields&lt;/p&gt;&#xA;&lt;h3 id=&#34;basic-operations&#34;&gt;Basic operations&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;-- Single line comment&#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:#57606a&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;/* Multi &#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:#57606a&#34;&gt;Line&#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:#57606a&#34;&gt;Comment */&lt;/span&gt;&lt;span style=&#34;color:#fff&#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:#fff&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;FirstName&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;LastName&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;Email&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;City&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;customers&lt;span style=&#34;color:#1f2328&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once more, using aliases:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;FirstName&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;AS&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;First Name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;LastName&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;AS&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;Surname&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;Email&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;City&lt;span style=&#34;color:#fff&#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:#fff&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;customers&lt;span style=&#34;color:#1f2328&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And again, with sorting:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;SELECT&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;FirstName&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;AS&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;First Name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;LastName&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;AS&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;Surname&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;Email&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;City&lt;span style=&#34;color:#fff&#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:#fff&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;from&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;customers&lt;span style=&#34;color:#fff&#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:#fff&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;ORDER&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;BY&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;Surname&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;DESC&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;;&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Show only first 10 records: use the keyword &lt;code&gt;LIMIT&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Despair, by Vladimir Nabokov</title>
      <link>https://www.arunsr.in/books/fiction/literary/despair/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/fiction/literary/despair/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-heart--despair-by-vladimir-nabokov&#34;&gt;:material-pencil:{ .anim-heart } Despair, by Vladimir Nabokov&lt;/h1&gt;&#xA;&lt;p&gt;I reread this book this month. Nabokov’s protagonists are always fascinating.&#xA;The one is Despair, Hermann, is almost tragic in how desperately he hides from&#xA;reality. In this he is like that other great unreliable narrator, Charles&#xA;Kinbote from Pale Fire. And when people in the real world laugh and point a&#xA;finger at this naked emperor, he chooses to recede into a reality where his&#xA;garments are the finest, his wit awes his friends, and his intellect outwits&#xA;the police.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Docker</title>
      <link>https://www.arunsr.in/tech/docker/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/docker/</guid>
      <description>&lt;h1 id=&#34;simple-docker-anim-fade--docker&#34;&gt;:simple-docker:{ .anim-fade } Docker&lt;/h1&gt;&#xA;&lt;p&gt;Once you get a bit of a rhythm with docker, it becomes pretty&#xA;fun. Here are notes I took while reading some Docker books. Two good&#xA;ones that I&amp;rsquo;d recommend are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Using Docker&lt;/li&gt;&#xA;&lt;li&gt;Docker in Action&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Some &lt;a href=&#34;https://www.arunsr.in/tech/k8s/&#34;&gt;kubernetes&lt;/a&gt;&#xA; notes are here.&lt;/p&gt;&#xA;&lt;h2 id=&#34;useful-commands&#34;&gt;Useful commands&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;docker inspect &amp;lt;containerid&amp;gt;&lt;/code&gt; - Shows IPAddress among other things.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;docker diff &amp;lt;containerid&amp;gt;&lt;/code&gt; - List of files changed in the container.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;docker logs &amp;lt;containerid&amp;gt;&lt;/code&gt; - list of everything that happened in the container.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Eats, Shoots &amp; Leaves</title>
      <link>https://www.arunsr.in/books/non-fiction/writing/eats-shoots-leaves/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/non-fiction/writing/eats-shoots-leaves/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-pulse--eats-shoots--leaves&#34;&gt;:material-pencil:{ .anim-pulse } Eats, Shoots &amp;amp; Leaves&lt;/h1&gt;&#xA;&lt;p&gt;&lt;em&gt;Author:&lt;/em&gt; Lynne Truss&lt;/p&gt;&#xA;&lt;p&gt;This one is for the pedants. Read this book if you&amp;rsquo;re the kind of person who&#xA;grits your teeth every time you see a grammatical mistake in a hoarding. The&#xA;title refers to a statement about a panda that eats (bamboo) shoots and leaves.&#xA;But a misplaced comma makes it sound like a story about an evil panda that&#xA;eats, shoots and leaves.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Editors</title>
      <link>https://www.arunsr.in/tech/editors/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/editors/</guid>
      <description>&lt;h1 id=&#34;material-keyboard-outline-anim-bounce--editors&#34;&gt;:material-keyboard-outline:{ .anim-bounce } Editors&lt;/h1&gt;&#xA;&lt;p&gt;My heart lies with GNU Emacs. It is probably my most used tool at work&#xA;because I take a crapload of notes. The pages on this site are written&#xA;in Emacs in markdown (because &lt;em&gt;mkdocs&lt;/em&gt; supports it well). Some other&#xA;notes are in &lt;em&gt;org&lt;/em&gt; format. And the bulk of my work-related notes&#xA;(dating back to 2007) are in one big fat plain text file that is, as of&#xA;December 2017, &lt;em&gt;26252&lt;/em&gt; lines long.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Elastic Stack</title>
      <link>https://www.arunsr.in/tech/elastic/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/elastic/</guid>
      <description>&lt;h1 id=&#34;material-magnify-anim-fade--elastic-stack&#34;&gt;:material-magnify:{ .anim-fade } Elastic Stack&lt;/h1&gt;&#xA;&lt;p&gt;These are notes from &lt;em&gt;Learning Elastic Stack 7.0&lt;/em&gt;, by Pranav Shukla&#xA;and Sharath Kumar MN.&lt;/p&gt;&#xA;&lt;h2 id=&#34;using-the-kibana-console&#34;&gt;Using the Kibana Console&lt;/h2&gt;&#xA;&lt;p&gt;Some simple APIs to warm up.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;GET /&lt;/code&gt; &amp;lt;- Prints version information&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;GET &amp;lt;index-name&amp;gt;/_mappings&lt;/code&gt; &amp;lt;- schema/mappings of this index&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;GET &amp;lt;index-name&amp;gt;/_doc/&amp;lt;id_of_document&amp;gt;&lt;/code&gt; &amp;lt;- Content of this document&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;fundamentals&#34;&gt;Fundamentals&lt;/h2&gt;&#xA;&lt;p&gt;An &lt;code&gt;Index&lt;/code&gt; is loosely analogous to a table, and a document to a&#xA;record.  One Index can have only one &lt;code&gt;Type&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Flow</title>
      <link>https://www.arunsr.in/books/non-fiction/psychology/flow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/non-fiction/psychology/flow/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-rotate--flow&#34;&gt;:material-pencil:{ .anim-rotate } Flow&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve long been interested in Active vs Passive hobbies, why one is better than&#xA;the others, and so on. Here&amp;rsquo;s a &lt;a href=&#34;https://www.reddit.com/r/truegaming/comments/en9li9/if_i_am_genuinely_happy_what_is_wrong_with/&#34;&gt;nice reddit&#xA;post&lt;/a&gt;&#xA;&#xA;that captures a similar mindset around gaming. So reading Flow gave a lot of&#xA;clarity to these ideas.&lt;/p&gt;&#xA;&lt;p&gt;Any programmer who&amp;rsquo;s been &amp;lsquo;in the zone&amp;rsquo; and loses sense of time knows the&#xA;feeling of &amp;lsquo;Flow&amp;rsquo; and that is the subject of this book &amp;ndash; Deep hobbies that&#xA;improve one&amp;rsquo;s self.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git</title>
      <link>https://www.arunsr.in/tech/git/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/git/</guid>
      <description>&lt;h1 id=&#34;material-database-anim-fade--git&#34;&gt;:material-database:{ .anim-fade } Git&lt;/h1&gt;&#xA;&lt;h2 id=&#34;separate-git-configurations-for-work-and-play&#34;&gt;Separate git configurations for work and play&lt;/h2&gt;&#xA;&lt;p&gt;Put something like this in your &lt;code&gt;~/.gitconfig&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[includeIf &amp;#34;gitdir:~/work/&amp;#34;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    path = ~/.gitconfig.work&#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;[includeIf &amp;#34;gitdir:~/code/&amp;#34;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    path = ~/.gitconfig.personal&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If your work repos are in &lt;code&gt;~/work&lt;/code&gt;, you can have a separate user/email etc for&#xA;repos in that folder.&lt;/p&gt;&#xA;&lt;h2 id=&#34;delete-a-tag-thats-already-pushed&#34;&gt;Delete a tag that&amp;rsquo;s already pushed&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git tag -d &amp;lt;tag_name&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git push --delete origin &amp;lt;tag_name&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;signing-commited-commits&#34;&gt;Signing commited commits&lt;/h2&gt;&#xA;&lt;p&gt;If you want to sign the last &lt;code&gt;N&lt;/code&gt; commits that you have already pushed:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Go</title>
      <link>https://www.arunsr.in/tech/programming/go/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/programming/go/</guid>
      <description>&lt;h1 id=&#34;simple-go-anim-pulse--go&#34;&gt;:simple-go:{ .anim-pulse } Go&lt;/h1&gt;&#xA;&lt;p&gt;Notes from the book &lt;em&gt;Learning Go&lt;/em&gt;, by Jon Bodner.&lt;/p&gt;&#xA;&lt;h2 id=&#34;setup-environment&#34;&gt;Setup, Environment&lt;/h2&gt;&#xA;&lt;h3 id=&#34;difference-between-go-get-and-go-install&#34;&gt;Difference between &lt;code&gt;go get&lt;/code&gt; and &lt;code&gt;go install&lt;/code&gt;:&lt;/h3&gt;&#xA;&lt;p&gt;See &lt;a href=&#34;https://stackoverflow.com/questions/24878737/what-is-the-difference-between-go-get-and-go-install#24878851&#34;&gt;here&lt;/a&gt;&#xA;.&#xA;Basically &lt;code&gt;go get&lt;/code&gt; downloads the source to $GOPATH/src along with the&#xA;dependencies, and the latter compiles.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;go install&lt;/code&gt; is recommended. Ignore &lt;code&gt;go get&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;hey&#34;&gt;Hey&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/rakyll&#34;&gt;hey&lt;/a&gt;&#xA; for load testing http services. Install with:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;go install github.com/rakyll/hey@latest&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;vi&#34;&gt;Vi&lt;/h3&gt;&#xA;&lt;p&gt;Install vim-go: it comes with a massive set of tools.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Good Math</title>
      <link>https://www.arunsr.in/books/non-fiction/math/good-math/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/non-fiction/math/good-math/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-rotate--good-math&#34;&gt;:material-pencil:{ .anim-rotate } Good Math&lt;/h1&gt;&#xA;&lt;p&gt;&lt;em&gt;Full Title:&lt;/em&gt; Good Math: A Geek&amp;rsquo;s Guide to the Beauty of Numbers, Logic, and Computation&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Author&lt;/em&gt;: Mark C. Chu-Carroll&lt;/p&gt;&#xA;&lt;p&gt;Here are some notes I took while reading this book. Overall I felt it&#xA;was interesting, but there were large jumps in difficulty in some of&#xA;the later chapters.&lt;/p&gt;&#xA;&lt;h2 id=&#34;continuous-fractions&#34;&gt;Continuous fractions&lt;/h2&gt;&#xA;&lt;p&gt;This was the most fascinating part of the book for me. I hadn&amp;rsquo;t heard of these before!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Grafana</title>
      <link>https://www.arunsr.in/tech/grafana/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/grafana/</guid>
      <description>&lt;h1 id=&#34;material-chart-bell-curve-anim-flip--grafana&#34;&gt;:material-chart-bell-curve:{ .anim-flip } Grafana&lt;/h1&gt;&#xA;&lt;p&gt;Most of these notes are from the book &lt;em&gt;Learn Grafana 7.0&lt;/em&gt; by Eric Salituro.&lt;/p&gt;&#xA;&lt;h2 id=&#34;installation&#34;&gt;Installation&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker volume create grafana-storage&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker run -d --name&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;grafana -p 3000:3000 &lt;span style=&#34;color:#0a3069&#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:#0a3069&#34;&gt;&lt;/span&gt;  -v grafana-storage:/var/lib/grafana &lt;span style=&#34;color:#0a3069&#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:#0a3069&#34;&gt;&lt;/span&gt;    grafana/grafana&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then in my virtualbox, I can access it at http://192.168.56.101:3000/login&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;admin/admin&lt;/code&gt; are the default credentials&lt;/p&gt;&#xA;&lt;p&gt;Install plugins like this:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;grafana-cli plugins install marcusolsson-csv-datasource&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then you can load csv data sources, and so on.&lt;/p&gt;&#xA;&lt;h2 id=&#34;prometheus&#34;&gt;Prometheus&lt;/h2&gt;&#xA;&lt;h3 id=&#34;time-series-basics&#34;&gt;Time Series Basics&lt;/h3&gt;&#xA;&lt;p&gt;We launched its container in &lt;code&gt;chapter04/docker-compose.yml&lt;/code&gt; and made it query&#xA;itself and grafana.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hate Inc.</title>
      <link>https://www.arunsr.in/books/non-fiction/history/hate-inc/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/non-fiction/history/hate-inc/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-flip--hate-inc&#34;&gt;:material-pencil:{ .anim-flip } Hate Inc.&lt;/h1&gt;&#xA;&lt;p&gt;&lt;em&gt;Full Title&lt;/em&gt;: Hate Inc.: Why Today&amp;rsquo;s Media Makes Us Despise One Another&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Author&lt;/em&gt;: Matt Taibbi&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been reading Taibbi for a while now and this was a nice&#xA;refreshing step back from his usual acerbic style. He covers the media&#xA;industry&amp;rsquo;s complicity in creating a toxic political&#xA;environment. Towards the end is where the book gets really&#xA;interesting: as an inward-looking view into how the left-leaning media&#xA;is as bad in creating filter bubbles as the usual suspects in the&#xA;right.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To Read A Book</title>
      <link>https://www.arunsr.in/books/non-fiction/writing/how-to-read-a-book/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/non-fiction/writing/how-to-read-a-book/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-fade--how-to-read-a-book&#34;&gt;:material-pencil:{ .anim-fade } How To Read A Book&lt;/h1&gt;&#xA;&lt;h2 id=&#34;by-mortimer-j-adler-and-charles-van-doren&#34;&gt;By Mortimer J. Adler and Charles Van Doren&lt;/h2&gt;&#xA;&lt;p&gt;Reading this was a turning point for me. For a lifetime, I&amp;rsquo;d read&#xA;anything that caught my interest: science fiction, evolutionary&#xA;biology, classic literature and so on.&lt;/p&gt;&#xA;&lt;p&gt;After reading far too many general science books, I started to realize&#xA;that I&amp;rsquo;d hit a plateau, and was not learning anything new from them. I&#xA;felt like I had to go deeper and analyze one of these subjects&#xA;thoroughly, or wider, to learn something new.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Immune, by Phillip Dettmer</title>
      <link>https://www.arunsr.in/books/non-fiction/science/immune/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/non-fiction/science/immune/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-fade--immune-by-phillip-dettmer&#34;&gt;:material-pencil:{ .anim-fade } Immune, by Phillip Dettmer&lt;/h1&gt;&#xA;&lt;p&gt;This is an incredible book and the brief notes I took below do not do justice&#xA;to how well it is written.&lt;/p&gt;&#xA;&lt;p&gt;White blood cells is a too vague a term for the varied kinds of defenses we&#xA;have.. Too simplistic.&lt;/p&gt;&#xA;&lt;h2 id=&#34;innate-immune-system&#34;&gt;Innate Immune System&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;First line of defense&lt;/li&gt;&#xA;&lt;li&gt;Can differentiate Self vs other. Anything that is not Self is a threat&lt;/li&gt;&#xA;&lt;li&gt;Simple blueprints for vast patterns of attacks (all bacteria for example)&lt;/li&gt;&#xA;&lt;li&gt;Activates the 2nd line of defense if needed&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Important players:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java</title>
      <link>https://www.arunsr.in/tech/programming/java/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/programming/java/</guid>
      <description>&lt;h1 id=&#34;material-language-java-anim-fade--java&#34;&gt;:material-language-java:{ .anim-fade } Java&lt;/h1&gt;&#xA;&lt;p&gt;Most of these notes are from the book &lt;em&gt;Java Projects&lt;/em&gt; by &lt;em&gt;Peter Verhas&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;maven-build-lifecycle-targets&#34;&gt;Maven build lifecycle targets&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;validate&lt;/code&gt; - validate the project is correct and all necessary information is available&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;compile&lt;/code&gt; - compile the source code of the project&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;test&lt;/code&gt; - test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;package&lt;/code&gt; - take the compiled code and package it in its distributable format, such as a JAR.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;verify&lt;/code&gt; - run any checks on results of integration tests to ensure quality criteria are met&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;install&lt;/code&gt; - install the package into the local repository, for use as a dependency in other projects locally&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;deploy&lt;/code&gt; - done in the build environment, copies the final package to the remote repository for sharing with other developers and projects.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;From &lt;a href=&#34;https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html&#34;&gt;the official documentation&lt;/a&gt;&#xA;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kafka</title>
      <link>https://www.arunsr.in/tech/kafka/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/kafka/</guid>
      <description>&lt;h1 id=&#34;material-ladybug-anim-heart--kafka&#34;&gt;:material-ladybug:{ .anim-heart } Kafka&lt;/h1&gt;&#xA;&lt;p&gt;These notes are based on a series of posts I read, starting with &lt;a href=&#34;https://www.confluent.io/blog/kafka-streams-tables-part-1-event-streaming/&#34;&gt;this&#xA;one&lt;/a&gt;&#xA;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-basics&#34;&gt;The Basics&lt;/h2&gt;&#xA;&lt;p&gt;Basically it lets you pub/sub to Events.&lt;/p&gt;&#xA;&lt;p&gt;And store them.&lt;/p&gt;&#xA;&lt;p&gt;And process and analyze them.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;An &lt;strong&gt;Event&lt;/strong&gt; is something that has a key, value and timestamp.&lt;/p&gt;&#xA;&lt;p&gt;And a &lt;strong&gt;Table&lt;/strong&gt; represents the state at that particular point in time. This is&#xA;mutable.&lt;/p&gt;&#xA;&lt;p&gt;A &lt;strong&gt;Stream&lt;/strong&gt; provides immutable data. You can insert stuff into it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes</title>
      <link>https://www.arunsr.in/tech/k8s/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/k8s/</guid>
      <description>&lt;h1 id=&#34;material-kubernetes-anim-flip--kubernetes&#34;&gt;:material-kubernetes:{ .anim-flip } Kubernetes&lt;/h1&gt;&#xA;&lt;p&gt;Some kubernetes overview links, with a focus on networking.&lt;/p&gt;&#xA;&lt;h2 id=&#34;terminal-enhancements&#34;&gt;Terminal Enhancements&lt;/h2&gt;&#xA;&lt;h3 id=&#34;k9s&#34;&gt;k9s&lt;/h3&gt;&#xA;&lt;p&gt;Get it &lt;a href=&#34;https://k9scli.io/&#34;&gt;here&lt;/a&gt;&#xA;. My go-to cluster navigator of choice. Very&#xA;vim-like in behavior.&lt;/p&gt;&#xA;&lt;h3 id=&#34;k3s--kind--minikube&#34;&gt;k3s / kind / minikube&lt;/h3&gt;&#xA;&lt;p&gt;For local development:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;k3s&lt;/strong&gt;: Lightweight Kubernetes, great for IoT and Edge but also amazing for local labs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;kind&lt;/strong&gt;: Run Kubernetes inside Docker. Fast and reliable for CI/CD.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;cilium-and-ebpf&#34;&gt;Cilium and eBPF&lt;/h3&gt;&#xA;&lt;p&gt;Modern Kubernetes networking is moving towards &lt;strong&gt;eBPF&lt;/strong&gt; for performance and security. &lt;strong&gt;Cilium&lt;/strong&gt; is the leading CNI in this space, replacing traditional iptables-based kube-proxy in many environments.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Learnings/Notes</title>
      <link>https://www.arunsr.in/tech/linux/learnings-and-notes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/linux/learnings-and-notes/</guid>
      <description>&lt;h1 id=&#34;material-penguin-anim-bounce--learningsnotes&#34;&gt;:material-penguin:{ .anim-bounce } Learnings/Notes&lt;/h1&gt;&#xA;&lt;h2 id=&#34;linuxs-cfs-completely-fair-scheduler&#34;&gt;Linux&amp;rsquo;s CFS: Completely Fair Scheduler&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;On a single cpu, the available cpu cycles are divided among all the&#xA;threads in proportion to their weights.&lt;/li&gt;&#xA;&lt;li&gt;The weight &lt;code&gt;= priority =&lt;/code&gt; niceness.&lt;/li&gt;&#xA;&lt;li&gt;Threads are organized in a runqueue (implemented as a red-black tree).&lt;/li&gt;&#xA;&lt;li&gt;A thread exceeding its timeslice is pre-empted and the next one is given a slice.&lt;/li&gt;&#xA;&lt;li&gt;In multicore systems, each core has its own runqueue.&lt;/li&gt;&#xA;&lt;li&gt;But this may not always be fair (since one core may run one&#xA;low-priority thread while the other may run several high-priority&#xA;threads, inefficiently)&lt;/li&gt;&#xA;&lt;li&gt;So linux has a load balancer that periodically keeps the queus in balance.&lt;/li&gt;&#xA;&lt;li&gt;Load balancing is a costly operation (both computation and&#xA;commuication operations are expensive) so it is kept at a minimum if&#xA;possible.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;memory-layout-in-linux&#34;&gt;Memory layout in Linux&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;32-bit: 3:1 ratio: out of 4gb, 3gb is for users and 1gb for kernel&lt;/li&gt;&#xA;&lt;li&gt;64-bit: 1:1: out of 128TB, 64TB is for users and 64 for kernel.&lt;/li&gt;&#xA;&lt;li&gt;So the kernel memory starts at 0xffff80000000&lt;snip&gt;000 in 64-bit,&#xA;and 0xc000000 in 32-bit.&lt;/li&gt;&#xA;&lt;li&gt;For a user process, Stack size is 8mb by default (see ulimit -s).&lt;/li&gt;&#xA;&lt;li&gt;Stack occupies top of the address space and grows down.&lt;/li&gt;&#xA;&lt;li&gt;The botttom of the stack contains env variables, prog name and **args&lt;/li&gt;&#xA;&lt;li&gt;Below the stack is memmap which has stuff linked dynamically and&#xA;mapped by the kernel at runtime.&lt;/li&gt;&#xA;&lt;li&gt;Then is the heap.&lt;/li&gt;&#xA;&lt;li&gt;Then there&amp;rsquo;s bss/data/program text.&lt;/li&gt;&#xA;&lt;li&gt;text is usually read-only.&lt;/li&gt;&#xA;&lt;li&gt;stack and data are non-executable (to prevent (partially) overflows).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;docker-notes&#34;&gt;Docker Notes:&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;apache mesos: get a lot of compute clusters looking like a single system.&lt;/li&gt;&#xA;&lt;li&gt;Docker Trusted Registry: on-prem repository service&lt;/li&gt;&#xA;&lt;li&gt;Machine: configures docker on cloud instances&lt;/li&gt;&#xA;&lt;li&gt;Swarm: deploys containers in clusters. (Docker&amp;rsquo;s version of Kubernetes)&lt;/li&gt;&#xA;&lt;li&gt;Compose: use YAML templates ofr multiple application deployments.&lt;/li&gt;&#xA;&lt;li&gt;Tutum - like compose for cloud deployment. New acquisition.&lt;/li&gt;&#xA;&lt;li&gt;OpenStack Havana supports docker as a hypervisor.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker run -d&lt;/code&gt; (detaches and runs as a daemon)&lt;/li&gt;&#xA;&lt;li&gt;use &lt;code&gt;docker start -i asdasdas123 bash&lt;/code&gt; to connect to an existing&#xA;instance. (or actually attach).&lt;/li&gt;&#xA;&lt;li&gt;use &lt;code&gt;docker exec&lt;/code&gt; if you want another process in an existing&#xA;container. better than attach since attach just reattaches to the&#xA;original pid1 process.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker rename&lt;/code&gt; renames an existing container. otherwise &lt;code&gt;--name&lt;/code&gt; while starting.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker ps -a&lt;/code&gt; shows non-running containers.&lt;/li&gt;&#xA;&lt;li&gt;names are auto-generated if you don&amp;rsquo;t specify them :)&lt;/li&gt;&#xA;&lt;li&gt;=docker run –name loopdate -d centos /bin/sh -c &amp;ldquo;while true; do date; sleep 3; done&amp;rdquo;=&lt;/li&gt;&#xA;&lt;li&gt;(daemonize example)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker logs  --tail 0 -f loopdate&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;(to see the live logs for the example above)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker cp /etc/hostname asdasd123132:/tmp&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker run --restart &amp;lt;etc&amp;gt;&lt;/code&gt;: sets a policy to restart if it&#xA;stops. doesn&amp;rsquo;t start a new container, just restarts the same id.&lt;/li&gt;&#xA;&lt;li&gt;NUMA - Non-Uniform Memory Access.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;/var/lib/docker/containers/&amp;lt;id&amp;gt;&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;/var/lib/docker/aufs/diff/&amp;lt;id&amp;gt;&lt;/code&gt;: see the CopyOnWrite diffs between this instance and the base layers.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker diff &amp;lt;id&amp;gt;&lt;/code&gt;: shows files changed in a container.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker inspect loopdate|less&lt;/code&gt; : json metadata, e.g. ipaddress.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker history &amp;lt;image&amp;gt;&lt;/code&gt; shows the history of commands used to build that image.&lt;/li&gt;&#xA;&lt;li&gt;&amp;rsquo;latest&amp;rsquo; is a convention but need not be latest.. e.g. ubuntu sets&#xA;&amp;rsquo;latest&amp;rsquo; to their LTS release 14.04, and not to bleeding edge.&lt;/li&gt;&#xA;&lt;li&gt;creating images: either &amp;lsquo;commit&amp;rsquo; an existing container, or specify a dockerfile.&lt;/li&gt;&#xA;&lt;li&gt;you can save and package to tar file instead of pushing to a registry.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker images -a&lt;/code&gt;: show intermediate images (these don&amp;rsquo;t have tags)&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker rm `docker ps --no-trunc -aq`&lt;/code&gt; (remove everything)&lt;/li&gt;&#xA;&lt;li&gt;sample commit command:&#xA;&lt;code&gt;docker commit --change &#39;CMD [&amp;quot;/usr/sbin/httpd&amp;quot;,&amp;quot;-D&amp;quot;,&amp;quot;FOREGROUND&amp;quot;]&#39;  --change &#39;ENV APACHE_RUN_USER www-data&#39;  --change &#39;ENV APACHE_RUN_GROUP www-data&#39; 26cb lab/websvr:v0.2&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;do a &lt;code&gt;docker pull &amp;lt;image&amp;gt;&lt;/code&gt; before use if you want to speed up your boxes.&lt;/li&gt;&#xA;&lt;li&gt;docker registry is opensource, and v1.6+ is in go and supports parallel downloads.&lt;/li&gt;&#xA;&lt;li&gt;registry:latest is 0.9, and is a python app. deprecated.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker run -p 5000:5000 -d registry:2&lt;/code&gt; –gives a web interface for registry v2.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker tag arun/myapache localhost:5000/myapache&lt;/code&gt;, followed by a&#xA;&lt;code&gt;push&lt;/code&gt;: pushes myapache to the local registry.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker save/load&lt;/code&gt;: tar a repo (i.e. image), including parent layers&#xA;and tags and versions, for local circulation.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;docker export&lt;/code&gt; is like save, but flattens the filesystem.&lt;/li&gt;&#xA;&lt;li&gt;build a docker image from a dockerfile: docker build some/path&lt;/li&gt;&#xA;&lt;li&gt;use &lt;code&gt;--link&lt;/code&gt; to link two containers together (adds to each container&amp;rsquo;s&#xA;hosts file). newer versions have advanced networking: put associated&#xA;containers in a single subnet , and allow them to talk to each&#xA;other.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;vagrant-notes&#34;&gt;Vagrant notes:&lt;/h2&gt;&#xA;&lt;h3 id=&#34;setup&#34;&gt;setup:&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;vagrant init&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;vagrant box add centos/7&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;mention the same box in the vagrantfile&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;start&#34;&gt;start:&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;vagrant up&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;vagrant ssh&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;stop&#34;&gt;stop:&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;vagrant suspend&lt;/code&gt; # save state and stop&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;vagrant halt&lt;/code&gt; # graceful shutdown&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;vagrant destroy&lt;/code&gt; # wipe out hd etc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;ansible-notes&#34;&gt;Ansible notes&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Modules are wrappers for administration commands (like ping, apt, yum, copy, etc).&lt;/li&gt;&#xA;&lt;li&gt;Always use these instead of shell exec since modules are idempotent:&#xA;you specify the state you want to be in, and the commands are run&#xA;appropriately.&lt;/li&gt;&#xA;&lt;li&gt;A task contains a module to be run, along with Facts or conditions or anything else.&lt;/li&gt;&#xA;&lt;li&gt;Handlers can do everything tasks can, and are triggered by tasks&#xA;when conditions are met. e.g. &amp;lsquo;start nginx&amp;rsquo; would be a handler&#xA;called in &amp;lsquo;install nginx&amp;rsquo;.&lt;/li&gt;&#xA;&lt;li&gt;Roles organize multiple tasks in one coherent whole (e.g. installing&#xA;nginx may require adding a repo, copying certs, installing the rpm&#xA;and starting the server).&lt;/li&gt;&#xA;&lt;li&gt;Roles are organized like this: files, handlers, meta, templates, tasks, vars.&lt;/li&gt;&#xA;&lt;li&gt;Except files and templates, a main.yml file present in all other&#xA;folders will be executed automatically.&lt;/li&gt;&#xA;&lt;li&gt;Files have static files, e.g. httpd.conf, certs etc.&lt;/li&gt;&#xA;&lt;li&gt;Handlers have triggers obviously&lt;/li&gt;&#xA;&lt;li&gt;Meta has dependencies and other metadata. e.g. run the ssl role&#xA;before starting the nginx role.&lt;/li&gt;&#xA;&lt;li&gt;Templates are based on jinja2.&lt;/li&gt;&#xA;&lt;li&gt;Variables have vars that are used to fill the templates.&lt;/li&gt;&#xA;&lt;li&gt;Tasks have the main logic.&lt;/li&gt;&#xA;&lt;li&gt;To run the whole role, just call the main yaml: &lt;code&gt;ansible-playbook -s main.yml&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Facts are metadata gathered by ansible on init: num&lt;sub&gt;processors&lt;/sub&gt;,&#xA;cores, interfaces, mounts etc. you can use these vars in your&#xA;templates.&lt;/li&gt;&#xA;&lt;li&gt;ansible-vault can be used to encrypt vars and files in a role.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;linux-ad-hoc-daemonization&#34;&gt;Linux ad-hoc daemonization&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If a script is running in a terminal and you want to daemonize it, do this:&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Ctrl-Z&lt;/code&gt; to suspend it&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;bg&lt;/code&gt; to make it a background job&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;disown -h %job-id&lt;/code&gt; where &lt;code&gt;job-id&lt;/code&gt; is what bg returned. This removes&#xA;the command from the shell&amp;rsquo;s job list, so it won&amp;rsquo;t get a SIGHUP when&#xA;the terminal closes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;linux-ctime-vs-mtime&#34;&gt;linux ctime vs mtime&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ctime is for inode, mtime is for contents&lt;/li&gt;&#xA;&lt;li&gt;e.g. chmod changes ctime. &lt;code&gt;echo &amp;quot;asd&amp;quot;&amp;gt;&amp;gt;file&lt;/code&gt; changes mtime.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;soft-vs-hard-links&#34;&gt;soft vs hard links&lt;/h2&gt;&#xA;&lt;h3 id=&#34;hard-links&#34;&gt;Hard links:&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Two filenames in a folder pointing to the exact same inode.&lt;/li&gt;&#xA;&lt;li&gt;There is no distinction between the link and the original.&lt;/li&gt;&#xA;&lt;li&gt;This means you can delete one file and the other will still exist!&lt;/li&gt;&#xA;&lt;li&gt;Cannot traverse filesystems. cannot hard link directories&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;soft-links&#34;&gt;Soft links:&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;A new kind of file that has its own inode entry. the OS knows how to&#xA;traverse from it to the parent.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Movies</title>
      <link>https://www.arunsr.in/other-interests/media/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/media/</guid>
      <description>&lt;h1 id=&#34;material-television-classic-anim-flip-movies&#34;&gt;:material-television-classic:{ .anim-flip }Movies&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;m a bit of a movie snob and prefer ones where the&#xA;director&amp;rsquo;s love shines through. Commercially-focused movies&#xA;are quite boring. I like to second-guess what happens next,&#xA;and thoroughly enjoy movies that &amp;lsquo;surprise&amp;rsquo; me.&lt;/p&gt;&#xA;&lt;h2 id=&#34;favourite-directors&#34;&gt;Favourite Directors&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Alex Garland - The Beach, Ex Machina, 28 Days Later&lt;/li&gt;&#xA;&lt;li&gt;Denis Villenueve - Arrival, Bladerunner 2049&lt;/li&gt;&#xA;&lt;li&gt;Joel and Ethan Coen - Fargo, No Country For Old Men, O Brother Where Art Thou&lt;/li&gt;&#xA;&lt;li&gt;Guillerma del Toro - Pan&amp;rsquo;s Labyrinth, Hellboy&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;the-best-of-the-best&#34;&gt;The best of the best&lt;/h2&gt;&#xA;&lt;p&gt;My all-time favourite movies are:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Networking</title>
      <link>https://www.arunsr.in/tech/networking/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/networking/</guid>
      <description>&lt;h1 id=&#34;material-lan-anim-heart--networking&#34;&gt;:material-lan:{ .anim-heart } Networking&lt;/h1&gt;&#xA;&lt;h2 id=&#34;iperf&#34;&gt;iperf&lt;/h2&gt;&#xA;&lt;p&gt;This link is quite nice: &lt;a href=&#34;https://www.golinuxcloud.com/linux-monitor-network-traffic/&#34;&gt;https://www.golinuxcloud.com/linux-monitor-network-traffic/&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;How to use iperf:&lt;/p&gt;&#xA;&lt;p&gt;Whitelist port 5201 on your security group and firewall.&lt;/p&gt;&#xA;&lt;p&gt;Then start the server first:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;iperf3 -i 5 -s&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Then the client:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;iperf3 -i 5 -t 60 -c &amp;lt;IP/hostname of the server&amp;gt;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;It gives a nice report but apparently isn’t good for latency checks, only&#xA;bandwidth.&lt;/p&gt;&#xA;&lt;h2 id=&#34;udp-client-python-3&#34;&gt;UDP Client (Python 3)&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#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;&lt;span style=&#34;color:#cf222e&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#24292e&#34;&gt;socket&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:#cf222e&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#24292e&#34;&gt;sys&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:#57606a&#34;&gt;# Create a UDP socket&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sock &lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt; socket&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;socket&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;socket&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;AF_INET&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; socket&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;SOCK_DGRAM&lt;span style=&#34;color:#1f2328&#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;server_address &lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;127.0.0.1&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;10000&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;message &lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;b&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;This is the message. It will be repeated.&amp;#39;&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:#cf222e&#34;&gt;try&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#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:#57606a&#34;&gt;# Send data&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:#6639ba&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;sending &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;{&lt;/span&gt;message&lt;span style=&#34;color:#0a3069&#34;&gt;!r}&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; file&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;sys&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;stderr&lt;span style=&#34;color:#1f2328&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    sent &lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt; sock&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;sendto&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;message&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; server_address&lt;span style=&#34;color:#1f2328&#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:#57606a&#34;&gt;# Receive response&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:#6639ba&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;waiting to receive&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; file&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;sys&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;stderr&lt;span style=&#34;color:#1f2328&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    data&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; server &lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt; sock&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;recvfrom&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;4096&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#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:#6639ba&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;received &amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;{&lt;/span&gt;data&lt;span style=&#34;color:#0a3069&#34;&gt;!r}&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; file&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;sys&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;stderr&lt;span style=&#34;color:#1f2328&#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:#cf222e&#34;&gt;finally&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#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:#6639ba&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;closing socket&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; file&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;sys&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;stderr&lt;span style=&#34;color:#1f2328&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    sock&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;close&lt;span style=&#34;color:#1f2328&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;udp-server-python-3&#34;&gt;UDP Server (Python 3)&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#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;&lt;span style=&#34;color:#cf222e&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#24292e&#34;&gt;socket&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:#cf222e&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#24292e&#34;&gt;sys&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:#57606a&#34;&gt;# Create a UDP socket&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sock &lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt; socket&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;socket&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;socket&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;AF_INET&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; socket&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;SOCK_DGRAM&lt;span style=&#34;color:#1f2328&#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:#57606a&#34;&gt;# Bind the socket to the port&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;server_address &lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;10000&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#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:#6639ba&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;starting up on &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;{&lt;/span&gt;server_address&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt; port &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;{&lt;/span&gt;server_address&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; file&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;sys&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;stderr&lt;span style=&#34;color:#1f2328&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sock&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;bind&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;server_address&lt;span style=&#34;color:#1f2328&#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:#cf222e&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#cf222e&#34;&gt;True&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#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:#6639ba&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;waiting to receive message&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; file&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;sys&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;stderr&lt;span style=&#34;color:#1f2328&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    data&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; address &lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt; sock&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;recvfrom&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;4096&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#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:#6639ba&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;received &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#6639ba&#34;&gt;len&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;data&lt;span style=&#34;color:#1f2328&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt; bytes from &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;{&lt;/span&gt;address&lt;span style=&#34;color:#0a3069&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; file&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;sys&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;stderr&lt;span style=&#34;color:#1f2328&#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:#6639ba&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;data&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; file&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;sys&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;stderr&lt;span style=&#34;color:#1f2328&#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:#cf222e&#34;&gt;if&lt;/span&gt; data&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        sent &lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt; sock&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;sendto&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;data&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; address&lt;span style=&#34;color:#1f2328&#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:#6639ba&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;f&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;sent &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;{&lt;/span&gt;sent&lt;span style=&#34;color:#0a3069&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt; bytes back to &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;{&lt;/span&gt;address&lt;span style=&#34;color:#0a3069&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt; file&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;sys&lt;span style=&#34;color:#0550ae&#34;&gt;.&lt;/span&gt;stderr&lt;span style=&#34;color:#1f2328&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Noam Chomsky</title>
      <link>https://www.arunsr.in/other-interests/people/chomsky/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/people/chomsky/</guid>
      <description>&lt;h1 id=&#34;material-thought-bubble-anim-bounce--noam-chomsky&#34;&gt;:material-thought-bubble:{ .anim-bounce } Noam Chomsky&lt;/h1&gt;&#xA;&lt;h2 id=&#34;why&#34;&gt;Why&lt;/h2&gt;&#xA;&lt;p&gt;I read Chomsky through &lt;a href=&#34;http://www.aaronsw.com/weblog/epiphany&#34;&gt;this article by Aaron&#xA;Swartz&lt;/a&gt;&#xA; on the book that&#xA;changed his life. So I did what Aaron did, and picked up&#xA;&lt;em&gt;Understanding Power&lt;/em&gt;. Everything about that book is as crushingly&#xA;world-changing as he describes.&lt;/p&gt;&#xA;&lt;p&gt;Considering his subject material and how challenging it must be to&#xA;communicate his world-view to others, he does a phenomenal job of&#xA;it. He never raises his voice, resorts to ad-hominems, or loses his&#xA;calm.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Online Privacy and the Internet</title>
      <link>https://www.arunsr.in/other-interests/research/privacy-internet/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/research/privacy-internet/</guid>
      <description>&lt;h1 id=&#34;material-lock-check-anim-bounce--online-privacy-and-the-internet&#34;&gt;:material-lock-check:{ .anim-bounce } Online Privacy and the Internet&lt;/h1&gt;&#xA;&lt;p&gt;On blocking ads, filter bubbles, fake news and the like.&lt;/p&gt;&#xA;&lt;h2 id=&#34;ads-and-ad-blocking&#34;&gt;Ads and Ad blocking&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://meltingasphalt.com/ads-dont-work-that-way/&#34;&gt;Ads don&amp;rsquo;t work that way&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;A slightly different and interesting perspective on how advertising works.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.devever.net/~hl/total-advertising-denial&#34;&gt;Total advertising denial&lt;/a&gt;&#xA; - This guy&#xA;blocks everything.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://jacek.zlydach.pl/blog/2019-07-31-ads-as-cancer.html&#34;&gt;Advertising is a cancer on society&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.vice.com/en_us/article/qjdkq7/avast-antivirus-sells-user-browsing-data-investigation&#34;&gt;Ad networks&lt;/a&gt;&#xA;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;fake-news&#34;&gt;Fake news&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.cjr.org/tow_center/india-whatsapp-analysis-election-security.php&#34;&gt;India had its first Whatsapp election&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Package management</title>
      <link>https://www.arunsr.in/tech/linux/package-management/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/linux/package-management/</guid>
      <description>&lt;h1 id=&#34;material-penguin-anim-heart--package-management&#34;&gt;:material-penguin:{ .anim-heart } Package management&lt;/h1&gt;&#xA;&lt;h2 id=&#34;sort-rpms-by-size&#34;&gt;Sort RPMs by size&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rpm -qa --queryformat &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;%{size} %{name}\n&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt; sort -rn &lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt; more&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;extract-rpm-into-current-folder-instead-of-installing&#34;&gt;Extract rpm into current folder instead of installing:&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rpm2cpio boost-system-1.53.0-23.el7.x86_64.rpm &lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt; cpio -idmv&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;trace-a-binary-or-file-to-the-rpm-that-installed-it&#34;&gt;Trace a binary or file to the RPM that installed it:&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;yum whatprovides /usr/lib64/libdbus-c++-1.so.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;or this:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rpm -qf /usr/lib64/libdbus-c++-1.so.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;yumdnf-revert&#34;&gt;Yum/dnf revert&lt;/h2&gt;&#xA;&lt;p&gt;If a yum remove wiped out several packages, do this:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;dnf history&lt;/code&gt; # note the id of the bad removal here&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;dnf history undo 96&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;yum/dnf will reinstall all the packages that were removed in that id.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pale Fire, by Vladimir Nabokov</title>
      <link>https://www.arunsr.in/books/fiction/literary/pale-fire/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/fiction/literary/pale-fire/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-heart--pale-fire-by-vladimir-nabokov&#34;&gt;:material-pencil:{ .anim-heart } Pale Fire, by Vladimir Nabokov&lt;/h1&gt;&#xA;&lt;p&gt;I bought this at a used book store a few weeks back. It is a worn down, old edition from the 1960’s. This is my third Nabokov book, and ever since my first, I seem to have lost interest in the ‘normal’ fiction books I used to read. There is a cadence to his choice of words that shines through in all his works.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Philosophy / Morality</title>
      <link>https://www.arunsr.in/other-interests/research/philosophy/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/research/philosophy/</guid>
      <description>&lt;h1 id=&#34;material-thought-bubble-anim-rotate--philosophy--morality&#34;&gt;:material-thought-bubble:{ .anim-rotate } Philosophy / Morality&lt;/h1&gt;&#xA;&lt;h2 id=&#34;personal-stance&#34;&gt;Personal stance&lt;/h2&gt;&#xA;&lt;p&gt;I find myself leaning towards Stoicism quite a bit. It&amp;rsquo;s core principles are&#xA;around &lt;a href=&#34;https://thestoicsage.com/dichotomy-of-control/&#34;&gt;the Dichotomy of&#xA;Control&lt;/a&gt;&#xA;, i.e. understand the&#xA;things that are outside your control and those that are within, and focus on&#xA;the latter.&lt;/p&gt;&#xA;&lt;p&gt;A virtuous life - according to Stoics - is one where we live in accordance with&#xA;nature and cultivate our mind and character - the only things that we really&#xA;have control over.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Powershell</title>
      <link>https://www.arunsr.in/tech/programming/powershell/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/programming/powershell/</guid>
      <description>&lt;h1 id=&#34;material-powershell-anim-bounce--powershell&#34;&gt;:material-powershell:{ .anim-bounce } Powershell&lt;/h1&gt;&#xA;&lt;p&gt;These notes are from &lt;strong&gt;Mastering PowerShell Scripting - Fourth Edition&lt;/strong&gt;, by&#xA;Chris Dent.&lt;/p&gt;&#xA;&lt;h2 id=&#34;discovery-basics&#34;&gt;Discovery, Basics&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;Update-Help&lt;/code&gt; to get the latest docs.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;Get-help Get-Process&lt;/code&gt; gets you help about the &lt;code&gt;Get-Process&lt;/code&gt; command.&lt;/p&gt;&#xA;&lt;p&gt;Very cool, you can also add a &lt;code&gt;-Examples&lt;/code&gt; to specifically see a bunch of&#xA;examples :)&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;Get-Command&lt;/code&gt; shows all available commands, and you can use a regex like this&#xA;to filter the output:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Get-Command Get-*ip*&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;Get-Alias&lt;/code&gt; prints all the aliases, as always use regexes to filter, e.g.&#xA;&lt;code&gt;Get-Alias s*&lt;/code&gt;. Some linux equivalents:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Productivity</title>
      <link>https://www.arunsr.in/other-interests/research/productivity/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/research/productivity/</guid>
      <description>&lt;h1 id=&#34;material-check-circle-anim-flip--productivity&#34;&gt;:material-check-circle:{ .anim-flip } Productivity&lt;/h1&gt;&#xA;&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve tried a crapload of tools for tasks, notes, bookmarking, scheduling and&#xA;what not. I realize I was more interested in trying new things than in really&#xA;&amp;lsquo;maximizing&amp;rsquo; my &amp;lsquo;productivity&amp;rsquo;.&lt;/p&gt;&#xA;&lt;p&gt;These days I&amp;rsquo;m in a high-stress job involving a lot of churn and&#xA;unpredictability, and I&amp;rsquo;ve found that checklists are /very/ useful and MS ToDo&#xA;is a decent enough app to settle down with.&lt;/p&gt;&#xA;&lt;p&gt;Bookmarks are overrated.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Prometheus</title>
      <link>https://www.arunsr.in/tech/prometheus/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/prometheus/</guid>
      <description>&lt;h1 id=&#34;material-fire-anim-fade-prometheus&#34;&gt;:material-fire:{ .anim-fade }Prometheus&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;m familiar with the architecture etc, and am currently interested in the&#xA;querying side of things. So here are my notes from reading &lt;em&gt;Prometheus: Up &amp;amp;&#xA;Running&lt;/em&gt; by Brian Brazil.&lt;/p&gt;&#xA;&lt;h2 id=&#34;basic-queries&#34;&gt;Basic queries&lt;/h2&gt;&#xA;&lt;p&gt;Use &lt;code&gt;rate&lt;/code&gt; for counters, e.g. &lt;code&gt;rate(prometheus_blah[1m])&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Curly braces for labels i.e. tags, e.g. &lt;code&gt;process_resident_memory_bytes{job=&amp;quot;node&amp;quot;}&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;basic-alerting&#34;&gt;Basic alerting&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;up == 0&lt;/code&gt; returns only results where the condition matches. You can set this as&#xA;an alert if it happens over a particular duration, e.g &lt;code&gt;1m&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python</title>
      <link>https://www.arunsr.in/tech/programming/python/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/programming/python/</guid>
      <description>&lt;h1 id=&#34;material-language-python-anim-heart--python&#34;&gt;:material-language-python:{ .anim-heart } Python&lt;/h1&gt;&#xA;&lt;h2 id=&#34;pip-upgrade-all-packages-in-a-virtual-env&#34;&gt;pip: upgrade all packages in a virtual env&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip list --outdated --format&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;freeze &lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt; grep -v &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;^\-e&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt; cut -d &lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt; -f &lt;span style=&#34;color:#0550ae&#34;&gt;1&lt;/span&gt;  &lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt; xargs -n1 pip install -U&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;modern-python-2026-edition&#34;&gt;Modern Python (2026 edition)&lt;/h2&gt;&#xA;&lt;p&gt;I use Python heavily and keep up with the evolving ecosystem. Here are the current standard tools and libraries.&lt;/p&gt;&#xA;&lt;h3 id=&#34;ruff&#34;&gt;ruff&lt;/h3&gt;&#xA;&lt;p&gt;The &amp;ldquo;new hotness&amp;rdquo; in the Python world. It&amp;rsquo;s an extremely fast linter and formatter written in Rust that replaces &lt;code&gt;flake8&lt;/code&gt;, &lt;code&gt;black&lt;/code&gt;, &lt;code&gt;isort&lt;/code&gt;, and more.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Richard Dawkins</title>
      <link>https://www.arunsr.in/other-interests/people/dawkins/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/people/dawkins/</guid>
      <description>&lt;h1 id=&#34;material-dna-anim-heart--richard-dawkins&#34;&gt;:material-dna:{ .anim-heart } Richard Dawkins&lt;/h1&gt;&#xA;&lt;h2 id=&#34;why&#34;&gt;Why&lt;/h2&gt;&#xA;&lt;p&gt;Dawkins is my role model because his books played a major role in&#xA;forming my understanding of the world. His writing is crisp and clear:&#xA;he knows his stuff and can defend it well, so he doesn&amp;rsquo;t need to&#xA;obfuscate or confuse. He has strong opinions on religion and is not&#xA;afraid to share them.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-blind-watchmaker&#34;&gt;The Blind Watchmaker&lt;/h2&gt;&#xA;&lt;p&gt;This was my first brush with a Dawkins box was probably the single&#xA;most influential, mind-changing experience I&amp;rsquo;ve ever had with a&#xA;book. Until I&amp;rsquo;d read him, I didn&amp;rsquo;t have well-formed mental models of&#xA;scepticism, religion, or evolutionary biology.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Richard Stallman</title>
      <link>https://www.arunsr.in/other-interests/people/stallman/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/people/stallman/</guid>
      <description>&lt;h1 id=&#34;material-penguin-anim-rotate--richard-stallman&#34;&gt;:material-penguin:{ .anim-rotate } Richard Stallman&lt;/h1&gt;&#xA;&lt;h2 id=&#34;why&#34;&gt;Why&lt;/h2&gt;&#xA;&lt;p&gt;Stallman is the heart of the Free Software Foundation and the reason&#xA;for the GNU in &lt;a href=&#34;https://www.arunsr.in/tech/linux/&#34;&gt;GNU/Linux&lt;/a&gt;&#xA;. He represents a certain&#xA;purity and conviction that is hard to get in our industry these days.&lt;/p&gt;&#xA;&lt;p&gt;I sit strongly on the GPL side of the GPL vs MIT license&#xA;debate. Software that use GPL licenses are like life forms that&#xA;contain genes, in the sense that the license carries the promise that&#xA;the software can evolve and take new forms, while continuing to be&#xA;open and accessible. MIT-based Licenses don&amp;rsquo;t ensure their own&#xA;survival in the same way.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scepticism</title>
      <link>https://www.arunsr.in/other-interests/research/scepticism/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/other-interests/research/scepticism/</guid>
      <description>&lt;h1 id=&#34;material-thought-bubble-anim-heart--scepticism&#34;&gt;:material-thought-bubble:{ .anim-heart } Scepticism&lt;/h1&gt;&#xA;&lt;p&gt;I feel lucky to have grown up as the internet was starting out. I honed my&#xA;debating skills in forums (talk.origins, James Randi&amp;rsquo;s forum, and so on) and&#xA;feel I have a pretty good bullshit detector thanks to that training.&lt;/p&gt;&#xA;&lt;p&gt;Sometimes I get into arguments with people about some fairly interesting&#xA;topics. Other times it&amp;rsquo;s on stupid things they read on social media and swallow&#xA;without a second thought. Here are some well written articles on interesting&#xA;topics.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Security</title>
      <link>https://www.arunsr.in/tech/security/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/security/</guid>
      <description>&lt;h1 id=&#34;material-lock-anim-flip--security&#34;&gt;:material-lock:{ .anim-flip } Security&lt;/h1&gt;&#xA;&lt;h2 id=&#34;query-list-of-ciphers-supported-by-a-server&#34;&gt;Query list of ciphers supported by a server&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nmap --script ssl-enum-ciphers -p &lt;span style=&#34;color:#0550ae&#34;&gt;443&lt;/span&gt; example.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;things-that-go-in-a-certificate&#34;&gt;Things that go in a certificate&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Subject: CN     the certificate owner&amp;#39;s common name&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Subject: E      the certificate owner&amp;#39;s email address&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Subject: T      the certificate owner&amp;#39;s locality&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Subject: ST     the certificate owner&amp;#39;s state of residence&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Subject: O      the organization to which the certificate owner belongs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Subject: OU     the name of the organizational unit to which the certificate owner belongs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Subject: C      the certificate owner&amp;#39;s country of residence&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Subject: STREET the certificate owner&amp;#39;s street address&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Subject: ALL    the certificate owner&amp;#39;s complete distinguished name&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Serial  the certificate&amp;#39;s serial number&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SignatureAlg    the algorithm used by the Certificate Authority to sign the certificate&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;BeginDate       the date at which the certificate becomes valid&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;EndDate the date at which the certificate becomes invalid&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PublicKey       the certificate&amp;#39;s public key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;FriendlyName    the certificate&amp;#39;s friendly name&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;selinux-example&#34;&gt;selinux example:&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ls -Z file1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-rwxrw-r-- user1 group1 unconfined_u:object_r:user_home_t:s0 file1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;SELinux contexts follow the SELinux user:role:type:level syntax.&lt;/li&gt;&#xA;&lt;li&gt;Use the &lt;code&gt;ps -eZ&lt;/code&gt; command to view the SELinux context for processes&lt;/li&gt;&#xA;&lt;li&gt;and &lt;code&gt;id -Z&lt;/code&gt; for users&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;seinfo -r&lt;/code&gt; (part of setools-console): shows all available user roles: such as guest, unconfined, webadm, sysadm, dbadm, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;also see &lt;code&gt;/etc/selinux/targeted/context/users&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Systemd</title>
      <link>https://www.arunsr.in/tech/linux/systemd/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/linux/systemd/</guid>
      <description>&lt;h1 id=&#34;material-penguin-anim-heart-systemd&#34;&gt;:material-penguin:{ .anim-heart }Systemd&lt;/h1&gt;&#xA;&lt;h2 id=&#34;socket-activation&#34;&gt;Socket activation&lt;/h2&gt;&#xA;&lt;p&gt;Systemd has a neat little feature where a daemon can turn on whenever a&#xA;connection is made to it. Works with Unix and network sockets. &lt;a href=&#34;http://0pointer.de/blog/projects/socket-activation.html&#34;&gt;More details&#xA;here&lt;/a&gt;&#xA;. Essentially you&#xA;create a socket file alongside your service file. The advantage is that you&#xA;don&amp;rsquo;t need to start your services in a specific order.&lt;/p&gt;&#xA;&lt;h2 id=&#34;flush-old-logs-in-journalctl&#34;&gt;Flush old logs in journalctl&lt;/h2&gt;&#xA;&lt;p&gt;By date or by size:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    sudo journalctl --vacuum-time&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;2d&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    sudo journalctl --vacuum-size&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;500M&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;tail-journalctl&#34;&gt;Tail journalctl&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;journalctl -f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For a specific service:&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Art of the Infinite</title>
      <link>https://www.arunsr.in/books/non-fiction/math/the-art-of-the-infinite/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/non-fiction/math/the-art-of-the-infinite/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-heart--the-art-of-the-infinite&#34;&gt;:material-pencil:{ .anim-heart } The Art of the Infinite&lt;/h1&gt;&#xA;&lt;p&gt;This is the kind of book I wish I’d read 20 years back.&lt;/p&gt;&#xA;&lt;p&gt;The Kaplans cover a lot of ground, so the book is densely packed with&#xA;remarkable insights. Although most of the topics (algebra, geometry)&#xA;were covered in my school syllabus in my younger days, the difference&#xA;is in how it bridges vast areas of mathematics together.&lt;/p&gt;&#xA;&lt;p&gt;A seemingly insurmountable problem is shown first. Then some&#xA;remarkable piece of magic happens. And the clouds clear and light&#xA;shines through.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Happiness Hypothesis</title>
      <link>https://www.arunsr.in/books/non-fiction/psychology/happiness/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/non-fiction/psychology/happiness/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-flip--the-happiness-hypothesis&#34;&gt;:material-pencil:{ .anim-flip } The Happiness Hypothesis&lt;/h1&gt;&#xA;&lt;p&gt;This book is written by Jonathan Haidt. I’d read his other book, The Righteous&#xA;Mind, and enjoyed it. I liked this one as well. What follows is not really a&#xA;review. These are just notes I took from the book that I found interesting.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Not a metaphor: there’s literally a  Gut brain , connected by vagus nerve with&#xA;main one. Runs independently to manage the intestine. Huge lining of neurons in&#xA;the lining. Triggers anxiety when infections are present.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Thinking Person&#39;s Guide to Climate Change</title>
      <link>https://www.arunsr.in/books/non-fiction/science/thinking-climate-change/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/non-fiction/science/thinking-climate-change/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-heart--the-thinking-persons-guide-to-climate-change&#34;&gt;:material-pencil:{ .anim-heart } The Thinking Person&amp;rsquo;s Guide to Climate Change&lt;/h1&gt;&#xA;&lt;p&gt;&lt;em&gt;Author:&lt;/em&gt; Robert Henson&lt;/p&gt;&#xA;&lt;h2 id=&#34;part-1---the-basics---global-warming-in-a-nutshell&#34;&gt;Part 1 - The Basics - Global Warming in a nutshell&lt;/h2&gt;&#xA;&lt;h3 id=&#34;chapter-1---climate-change-a-primer&#34;&gt;Chapter 1 - Climate Change: A Primer&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Check out the IPCC organization and it&amp;rsquo;s reports.&lt;/li&gt;&#xA;&lt;li&gt;Detection and attribution i.e. is the climate Changing, and is it changing because of humans.&lt;/li&gt;&#xA;&lt;li&gt;Eg temperature warming at poles is not expected from natural causes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The spectrum extends anywhere from 0.4° to 2.6°C (0.7°–4.7°F) by 2046–2065 and&#xA;from 0.3° to 4.8°C (0.5°–8.6°F) by 2081–2100. Importantly, this would be on&#xA;top of the warming of about 0.6°C (1.1°F) that occurred from the 1850–1900&#xA;period to the 1986–2005 comparison period.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Think Like A Stoic, by Massimo Pigliucci</title>
      <link>https://www.arunsr.in/books/non-fiction/philosophy/think-like-a-stoic/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/non-fiction/philosophy/think-like-a-stoic/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-bounce-think-like-a-stoic-by-massimo-pigliucci&#34;&gt;:material-pencil:{ .anim-bounce }Think Like A Stoic, by Massimo Pigliucci&lt;/h1&gt;&#xA;&lt;p&gt;These are just some random thoughts I jotted during my listen, so I&amp;rsquo;m not sure&#xA;that it will be very useful for someone else. Don&amp;rsquo;t take it to be a&#xA;comprehensive review or summary.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;basics&#34;&gt;Basics&lt;/h2&gt;&#xA;&lt;p&gt;Live according to nature&lt;/p&gt;&#xA;&lt;p&gt;i.e. we have the capacity for reason plus we are social animals.. that is our&#xA;nature so anything that stays true to it is virtuous.&lt;/p&gt;</description>
    </item>
    <item>
      <title>We Are Our Brains</title>
      <link>https://www.arunsr.in/books/non-fiction/psychology/we-are-our-brains/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/books/non-fiction/psychology/we-are-our-brains/</guid>
      <description>&lt;h1 id=&#34;material-pencil-anim-flip--we-are-our-brains&#34;&gt;:material-pencil:{ .anim-flip } We Are Our Brains&lt;/h1&gt;&#xA;&lt;p&gt;Notes taken while reading the excellent &lt;em&gt;We are our brains&lt;/em&gt; by Dick Shwaab.&lt;/p&gt;&#xA;&lt;h2 id=&#34;hormones&#34;&gt;Hormones&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Oxytocin - comfort , bonding&lt;/li&gt;&#xA;&lt;li&gt;Prolactin - in expectant fathers. Nesting behaviour in moms.&lt;/li&gt;&#xA;&lt;li&gt;Vasopressin - marital difficulties and aggression in men, but&#xA;trust of strangers in women. Hormone created and released by the&#xA;brain. Also inhibits excretion of water.&lt;/li&gt;&#xA;&lt;li&gt;Both vasopressin and oxytocin levels are unbalanced in autists&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;other&#34;&gt;Other&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Anencephaly linked to pesticide use&lt;/li&gt;&#xA;&lt;li&gt;Thalidomide taken during pregnancy led to birth defects (missing limbs)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;pain-in-a-fetus&#34;&gt;Pain in a fetus&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pain sensors on skin - 7th week onwards&lt;/li&gt;&#xA;&lt;li&gt;BUT wiring to cerebral cortex - 26 weeks onwards&lt;/li&gt;&#xA;&lt;li&gt;So the fetus can react locally after 7 weeks but it is doubtful that&#xA;pain is actually transmitted until about 25-29 weeks&lt;/li&gt;&#xA;&lt;li&gt;Finally it must be perceived by the brain. Only at 35-37 weeks is&#xA;there slight difference in reaction to a touch vs a pin prick&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;puberty&#34;&gt;Puberty&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Young people have a poor PFC i.e. pre frontal cortex , which limits&#xA;their planning and organisational skills&lt;/li&gt;&#xA;&lt;li&gt;Puberty kicks in annoying behaviour within the family to limit&#xA;incest, at the same time increasing risk taking and exploration.&lt;/li&gt;&#xA;&lt;li&gt;The kiss1 gene starts the whole process. Fat reserves are ensured by&#xA;monitoring leptin. Melatonin inhibits puberty.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;miscellaneous&#34;&gt;Miscellaneous&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Narcolepsy - sleep disorder. Tiredness in day, uneasy sleep at&#xA;night.&lt;/li&gt;&#xA;&lt;li&gt;Cataplexy - too much emotion leads to patient seemingly becoming&#xA;unconscious. They lose muscle tension and collapse but are fully&#xA;aware otherwise.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Windows</title>
      <link>https://www.arunsr.in/tech/windows/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/tech/windows/</guid>
      <description>&lt;h1 id=&#34;material-microsoft-windows-anim-bounce--windows&#34;&gt;:material-microsoft-windows:{ .anim-bounce } Windows&lt;/h1&gt;&#xA;&lt;h2 id=&#34;change-a-wireless-network-to-private&#34;&gt;Change a wireless network to Private&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#6639ba&#34;&gt;Get-NetConnectionProfile&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:#57606a&#34;&gt;# Note the InterfaceIndex here&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:#6639ba&#34;&gt;Set-NetConnectionProfile&lt;/span&gt; -InterfaceIndex &lt;span style=&#34;color:#1f2328&#34;&gt;&amp;lt;&lt;/span&gt;id&lt;span style=&#34;color:#1f2328&#34;&gt;&amp;gt;&lt;/span&gt;  -NetworkCategory Private&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Xbox Series X</title>
      <link>https://www.arunsr.in/games/xbox/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.arunsr.in/games/xbox/</guid>
      <description>&lt;h1 id=&#34;material-controller-classic-anim-heart--xbox-series-x&#34;&gt;:material-controller-classic:{ .anim-heart } Xbox Series X&lt;/h1&gt;&#xA;&lt;p&gt;I love my Xbox because this is the console where I have formed memories of:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;playing co-op games with my kids (like Rayman Legends),&lt;/li&gt;&#xA;&lt;li&gt;playing through an entire series (like Gears and Halo),&lt;/li&gt;&#xA;&lt;li&gt;discovering games through Game Pass that I&amp;rsquo;d&amp;rsquo;ve never otherwise tried (like Immortality)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;-game-history-by-category&#34;&gt;🕹️ Game History by Category&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.arunsr.in/games/action-adventure/&#34;&gt;🤺 Action &amp;amp; Adventure&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.arunsr.in/games/sci-fi-cyberpunk/&#34;&gt;🤖 Sci-Fi &amp;amp; Cyberpunk&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.arunsr.in/games/fantasy-myth/&#34;&gt;🪄 Fantasy &amp;amp; Myth&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.arunsr.in/games/fps/&#34;&gt;🔫 Shooters (FPS)&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.arunsr.in/games/story-interactive/&#34;&gt;🎭 Story-Driven &amp;amp; Interactive&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.arunsr.in/games/platform-puzzle/&#34;&gt;🧩 Platformers &amp;amp; Puzzles&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.arunsr.in/games/rpg-strategy/&#34;&gt;♟️ RPG &amp;amp; Strategy&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
