<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>ht.xyz</title>
<id>https://hitarththummar.xyz/feed.xml</id>
<subtitle>Hitarth Thummar's website and blog</subtitle>
<link href="https://hitarththummar.xyz"/>
<link href="https://hitarththummar.xyz/atom.xml" rel="self"/>
<updated>2025-12-14T00:00:00Z</updated>
<author>
<name>Hitarth Thummar</name>
<email>hittarth91@gmail.com</email>
</author>

      <entry>
        <title>शिखर</title>
        <id>https://hitarththummar.xyz/poems/shikhar_ki_chot</id>
        <updated>2025-12-14T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>सूर्य, अस्त तू क्यो होता है?<br />
अच्छे भले इस जीवन को<br />
तमस में यूँ क्यो धोता है?<br />
जब शाम ढले पर्वत के शिखर पर<br />
बातों की कटोरी ले आता हूँ-<br />
मुंह फेर कर, जैसे भिक्षुक हूँ मैं,<br />
सन्नाटे में तू क्यो सोता है?<br />
जब सूक्ष्म जीव सूक्ष्म है<br />
तो जीवन प्रदान तू क्यो करता है?<br />
करना ही है अगर जीवंत मुझे,<br />
तो मुंह फेर कर क्यो सोता है?<br />
प्रभात फेरी की धुन के बीच<br />
किरने तेरी तू क्यों बोता है-<br />
जब गीत तुझे गाना ही नहीं है,<br />
बोल से व्यथित तू क्यो होता है?<br />
उदय तेरा यह अर्ध आध्यात्मिक,<br />
मुझे नास्तिक बनाकर छोड़ेगा।<br />
अब तेरा यह अनंत खेल<br />
इस भक्त की भावना न मरोड़ेगा।<br />
पर मन भी अंततः मन ही है,<br />
कितना ही क्रोधित हो पाएगा,<br />
नया दिन, वही शिखर<br />
जा फिर खड़ा हो जाएगा।</p>
</content>
      </entry>
    
      <entry>
        <title>CD players and sports cars</title>
        <id>https://hitarththummar.xyz/posts/streaming_music</id>
        <updated>2025-11-28T00:00:00Z</updated>
        <summary>"Thoughts on how listening to music has changed."</summary>
        <content type="html"><p>I started listening to some old music again. Stuff I listened to when I was a kid, and I realised something. Now I know
this horse has been beaten so much that it has already reincarnated thrice, but let me beat it once again. For my
satisfaction.</p>
<p>The music listening experience has fundamentally changed.</p>
<p>Back in 2011, my dad bought a used Maruti Suzuki Zen. It was bright red, because his kid loved sports cars and in my
mind red equaled sports car. It had a combination music player which took cassettes and CDs both. There was an AUX and
USB too, but it was the age of CDs and Flash drives for music were a foreign concept in villages. When he drove it back
from the city, he stopped at a highway <em>dhaba</em> and bought a few music CDs, 70s-80s bollywood music. Now these were
pirated CDs, so each CD contained 7-8 albums of an era. Some of them were themed on the singer - like evergreen hits of
Mukesh, and some of them on actors like Rajesh Khanna hits, although the actor played no role in creation of that music.
The thing about CDs was, there was only a limited amount of music you could store on a CD, and only a limited number of
CDs you can store in the glove box of the car. So every time we hit the road, there was a fixed amount of music that we
could listen to. That didn't bother us at that time. But what it did was, it enabled us to actually enjoy a song.
Listening to it probably hundreds of times during the course of few years made us actually appreciate the sonic and
lyrical elements of the song. I still have those songs by heart.</p>
<p>Then came the age of digital music. Keep in mind I was still a poor kid and could not afford to buy music. Hell, I
didn't even know that you had to buy music. To me, music was free for the world. You just go online and search for &lt;
song-name&gt;-free download and you would get it. They released it there <em>just for you</em>. So yes, I downloaded new music as
soon as I heard it on 9xm or any other Indian music channel and I would play the shit out of that album. I would have a
few favourites from an album but I still listened to the whole album. That made me appreciate the artistic vision of the
creator.</p>
<p>Now starts the hard part, streaming. I learned about Spotify and discovered streaming. All the music in the world (
allegedly), at your fingertips and there was no one to stop you from listening to it. Like an artist? Find their
discography and hit play. This sounds good on paper, but it puts you in a paradox of choice. Eventually, as streaming
turned mainstream, I stopped listening to albums and started listening to songs, or rather playlists. Feeling down?
Listen to <em>sad hours</em> by <em>tiredboy69420</em>. In the mood for some rap? <em>Rap Hits</em> is curated for you by ✨ t h e a l g o r i
t h m ✨. I am not bashing them, it is a great place to discover new music. In fact, some of my favourite music was found
by randomly streaming playlists, but the awe of the album is gone. The vision of the artist is diluted. When you listen
to <em>creep</em> by <em>Radiohead</em>, you hear a melancholy of someone lost, but if you listen to the whole album you might be able
to see a different perspective. The last album I remember listening from end-to-end is <em>My Beautiful Dark Twisted
Fantasy</em> by <em>Kanye West</em> and boy was it an experience.</p>
<p>So my point is, we should listen to albums and discographies more. Doesn't mean you have to listen to everything all the
time, but going through it in succession gives you an insight into how the artist got where they are. Streaming has
snatched that away. I think it is up to us to bring it back.</p>
</content>
      </entry>
    
      <entry>
        <title>A Case Study in Responsible Disclosure: From Exposed API Keys to "Pure Coincidence"</title>
        <id>https://hitarththummar.xyz/posts/responsible_disclosure</id>
        <updated>2025-11-13T00:00:00Z</updated>
        <summary>"Story about my first security vulnerability find."</summary>
        <content type="html"><h3>Introduction</h3>
<p>Recently, a developer with a notable YouTube following showcased a new, multi-agent AI application. In their video, they
emphasized the project's "enterprise level" security and the challenges of solo development. As a member of the tech
community, I was curious about the architecture. A brief investigation revealed two critical, yet common, security
vulnerabilities.</p>
<p>This post is a case study in the responsible disclosure process that followed. It is intended to be an educational tool
for developers, highlighting the importance of fundamental security practices and the right (and wrong) ways to respond
when someone reports a flaw in your work.</p>
<h3>The Vulnerabilities</h3>
<p>The issues discovered were fundamental in nature and exposed the project to significant financial and operational risk.</p>
<p><strong>1. Client-Side Exposure of a Google Gemini API Key</strong></p>
<p>The application's backend served a frontend that included a Google Gemini API key (<code>AIza...</code>) directly in the
client-side code. This key was sent with requests from the user's browser.</p>
<ul>
<li><strong>The Risk:</strong> Anyone with a web browser could inspect the network traffic, find this key, and use it to make their own
Gemini API calls. This could result in massive, unexpected bills for the key's owner and a denial of service for the
legitimate application once rate limits were exhausted.</li>
</ul>
<p><strong>2. Unsecured Administrative Endpoints</strong></p>
<p>The FastAPI backend's documentation was publicly exposed at <code>api.example-app.com/docs</code>. This Swagger UI revealed
administrative endpoints for managing the AI agents.</p>
<ul>
<li><strong>The Risk:</strong> These endpoints had no authentication. Any user could add, delete, or modify the agents that were core
to the application's functionality, effectively allowing for vandalism and disruption of the service.</li>
</ul>
<h3>The Disclosure Process: A Journey Through Denial</h3>
<p>Following best practices, I immediately reached out to the developer privately via email to report my findings. What
followed was a masterclass in deflection and denial.</p>
<ol>
<li>
<p><strong>The Initial Response:</strong> The developer downplayed the risks, stating the project wasn't "live" yet and that he would
implement security practices like a "VPC" later. This demonstrated a fundamental misunderstanding: the infrastructure
was already live and exposed, and a VPC would not fix an application-level flaw where the server sends a secret key
to the client.</p>
</li>
<li>
<p><strong>The Live Call:</strong> To clarify the issue, I offered to show him the vulnerability on a live call. During the call, the
developer repeatedly deflected and denied the vulnerability's existence and severity. The excuses evolved through
several stages: from initially claiming the key was merely a token, to asserting it was a fake or random string, then
minimizing its importance as a "test" key. It was eventually admitted that the key belonged to a third-party company,
raising further concerns about credential handling. The conversation concluded with the mathematically
impossible claim that the valid key was generated by <strong>"pure coincidence."</strong></p>
</li>
</ol>
<p>This pattern of denial demonstrated a profound unwillingness to take responsibility for a critical security failure.</p>
<h3>Key Takeaways for Developers</h3>
<p>This experience serves as a powerful reminder of several core principles:</p>
<ul>
<li><strong>Never, Ever Expose Keys on the Client-Side:</strong> Secret keys must always remain on the server. Your backend should be a
proxy that makes authenticated API calls on behalf of the user.</li>
<li><strong>Security is Not an Afterthought:</strong> Claiming you will "add security later" is a recipe for disaster. Secure
architecture should be the foundation of your project, not a final coat of paint.</li>
<li><strong>Listen During a Disclosure:</strong> When a security researcher reports a vulnerability, listen with an open mind. Their
goal is to help you, not to attack you. Arguing and making excuses only makes you look incompetent and unprofessional.</li>
<li><strong>Know What You Don't Know:</strong> Claiming "enterprise security" expertise while making fundamental mistakes is a
dangerous bluff. Be honest about your skill level and seek help when you are out of your depth.</li>
</ul>
<h3>Conclusion</h3>
<p>After a long and arduous process, I strongly urged the developer to fix the issue. The goal of this post is not to
shame, but to educate. The mistakes made here are common, but the response to them was uniquely poor. As developers, we
have a responsibility to build secure software and to react to security reports with humility and urgency.</p>
</content>
      </entry>
    
      <entry>
        <title>There are no goodbyes in Gujarati</title>
        <id>https://hitarththummar.xyz/posts/goodbyes_in_gujarati</id>
        <updated>2025-10-27T00:00:00Z</updated>
        <summary>"My language refuses to say goodbye. Every parting is temporary, every relationship permanent. But what happens when you actually want closure?"</summary>
        <content type="html"><p>The word <em>goodbye</em> according to the Oxford Dictionary originates as follows:</p>
<blockquote>
<p>late 16th century: contraction of God be with you!, with good substituted on the pattern of phrases such as good
morning</p>
</blockquote>
<p>God be with you on this journey you are taking. I don’t know how you will fare, but <em>farewell</em>. These words are final.
They give closure.</p>
<p>My language doesn’t.</p>
<p>There is no final parting word in Gujarati. When we part, we say આવજો (aavjo) or હાલો મળ્યા(haalo malya). First one
means come soon and the second means we will meet soon. Gujarati language flat out refuses finality. All relations are
permanent, they may be stretched out across months, years or even lifetimes. But they are tied together by a <em>haalo
malya</em> across space and time.</p>
<p>There is an ice cream shop near the place I live right now. I bought a home in another part of the town and will be
shifting there by the end of this month. The guy at the shop knows me well, I go there a lot. We have an unspoken
agreement of me bringing him <em>paan</em> every visit. No preferential treatment, just some unspoken bond. So when I went
there today for what was probably the last time, I told him haalo malya and he said aavjo. Now this relationship was not
significant in the great scheme of things. It was one of the many thousands that a man makes in his lifetime. But there
was a melancholy tint in that aavjo. Maybe he doesn’t see it that way but I do.</p>
<p>Now I’ll have to find a new ice cream shop and become friends with the new staff until I move again.</p>
<p>Farewells are not fair, in my view. They strip you of all hope and leave you with longing beyond human capacity. You try
to be the bigger person and wish well for the departing, but deep down you want them to stay. For some reason you can’t
tell them that. When your language forbids you from experiencing this pain, it feels like a blessing. Until you actually
want to say goodbye.</p>
</content>
      </entry>
    
      <entry>
        <title>"My Intellect Has Come to a Halt"</title>
        <id>https://hitarththummar.xyz/posts/kaag_baapu</id>
        <updated>2025-10-07T00:00:00Z</updated>
        <summary>"The timeless wisdom of Kag Bapu"</summary>
        <content type="html"><p>Have you ever looked up at the night sky and felt so overwhelmed with wonder that your questions had no words? What if
the most profound form of prayer isn't an answer but a question?</p>
<p>There is 20th century literary work that asks this very question.  <em>Akash na Ghadnar</em> is a poem written by <em>Kavi Dula
Bhaya Kaag</em>, lovingly known as <em>Kag Bapu</em>. I recently had the pleasure of witnessing this poem being sung by <em>Hardik
Dave</em> at his <em>Shabad</em> event. The fundamental question asked in this poem, is less of a question and more of a statement
toward the cosmic.</p>
<p>The repeating stanza in the poem mournfully states -</p>
<blockquote>
<p>એ જાણવા જોવા તણી દિલ ઝંખના ખટકી રહી<br />
બ્રહ્માંડ માં ભટકી રહી અંતે મતિ અટકી રહી</p>
</blockquote>
<p>Translation:</p>
<blockquote>
<p>To know this, to see this, a longing stayed in my heart.
It searched through the cosmos, but my intellect came to a halt.</p>
</blockquote>
<p>The poem compares things of greater significance with small-scale metaphors. Like who created the home of the one who
made the sky? Or how big would be the well from which the furrow of the ocean is filled? Or where is the potter who
turns the wheel which made this earth?</p>
<p><em>Kag Bapu</em> keeps asking the same question with different words. Where is he? What does he do? There is a repeating
pattern of order and duality. Everything is in order. The rise and fall of the sun and moon, the poison of snakes, the
creation of animals, the herding of cows, the falling of rain. Every single thing is decided and its order is fixed.</p>
<p>The force talked about is non-judgemental, impartial, beyond our understanding. It does good, and it does bad,
but in a decided, solid manner. In the end, he says that the same <strong>selfish</strong> force also created humans. The
fundamental statement is turned on itself. While the force was everything I mentioned before, when it created humans, it
became selfish. It gave us consciousness, a sense of ego, and put us into the worst position we could have had. We spend
our whole lives longing to understand creation and our purpose in life, all because the creator could not give us the
same natural order that he gave to other beings.</p>
<p>The rest of the creation simply <em>exists</em>. Humanity <em>longs</em>. We long for meaning, for connection, for answers to the very questions
<em>Kag Bapu</em> is asking. This longing, this endless search, is the divine burden placed upon us. The "selfishness" of the
Creator, in this poetic sense, was the desire to create a being that could, in turn, seek Him out.</p>
<p>He gave us the power of creation, the power to understand our own self, maybe because he wanted to see someone in his
own image. Or not, I don't know why. But now we roam this world trying to figure out the unattainable. This reminds me a
quote from Rust Cohle, a character from the TV show <em>True Detective</em>,</p>
<blockquote>
<p>“I think human consciousness is a tragic misstep in human evolution. We became too self aware; nature created an
aspect of nature separate from itself. We are creatures that should not exist by natural law. We are things that labor
under the illusion of having a self, a secretion of sensory experience and feeling, programmed with total assurance that
we are each somebody, when in fact everybody’s nobody. I think the honorable thing for our species to do is deny our
programming, stop reproducing, walk hand in hand into extinction, one last midnight, brothers and sisters opting out of
a raw deal.”</p>
</blockquote>
<p>He sees consciousness as a tragic evolutionary bug. His solution is logical but bleak: if the game is rigged, the only
honorable move is to stop playing. It is a philosophy of <strong>rejection</strong>.</p>
<p>While <em>Kag Bapu</em>, he sees consciousness not as a bug, but as a divine, albeit painful, feature. The longing and
confusion are not a misstep to be erased but the very engine of spirituality. His solution isn't to reject the "raw
deal" but to <strong>surrender</strong> to its mystery. The answer lies in the poem's refrain: to accept that your intellect will fail,
and in that surrender, to find peace and awe.</p>
<p>What does it mean for us, today, to accept that our intellect will halt?</p>
</content>
      </entry>
    
      <entry>
        <title>स्पर्श</title>
        <id>https://hitarththummar.xyz/poems/sparsh</id>
        <updated>2025-07-09T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>आज मुझे मृत्यु ने स्पर्श किया।</p>
<p>सोचा,</p>
<p>ना मैंने कुछ हासिल किया<br />
ना कोई संघर्ष किया।<br />
कभी जूझा नहीं कठिनाइयों से मैं।<br />
ना लड़ा हूँ कोई युद्ध में,<br />
कभी नहीं किसी पे वार किया।<br />
कोई जंग अगर छेड़ी भी मैंने,<br />
बस खुदको ही विध्वंस किया।</p>
<p>आज मुझे मृत्यु ने स्पर्श किया।</p>
<p>सोचा होगी कोई तो शक्ति<br />
जिसने रक्षित मेरा वंश किया<br />
मन ही मन धन्य होकर<br />
उस शक्ति को अपना अंश दिया।<br />
कुरुक्षेत्र नहीं है यह कोई<br />
ना है ये हल्दी घाटी<br />
जीवन यह अविरत मेरा<br />
माँग रहा है बस समाधि।</p>
</content>
      </entry>
    
      <entry>
        <title>Square foot of space</title>
        <id>https://hitarththummar.xyz/poems/square_foot_of_space</id>
        <updated>2025-07-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>Hopes and dreams<br />
and the troubles in between<br />
My infinite pride<br />
is worthless it seems.<br />
Boundless feats<br />
of extraordinary measure<br />
all of that trouble<br />
for a blink of pleasure<br />
Everyone I know<br />
and all that I will meet<br />
will never know<br />
my pathetic deceit<br />
I drive and I dance<br />
and I jump on my feet<br />
But I listen to songs<br />
which sing of defeat.<br />
It's been a while<br />
since I felt like a kid<br />
wrapped in a cocoon<br />
my heart under a lid<br />
I long too much<br />
for a loving embrace<br />
decades I will burn,
for a square foot of space.</p>
</content>
      </entry>
    
      <entry>
        <title>Puddles</title>
        <id>https://hitarththummar.xyz/posts/puddles</id>
        <updated>2025-06-24T00:00:00Z</updated>
        <summary>"Thoughts on puddles."</summary>
        <content type="html"><p>When it rains, and I’m driving, I try not to drive through puddles and splash mud on those around me. Truly, it’s my
only
wish that puddles didn’t exist. But they do. And sometimes I have to drive through them either because I have no other
choice or because I’m not mature enough to know my speed. The buildings are a blur sometimes, and the road is the only
thing I see, not knowing that there are those who are unwilling witnesses to my folly. Maybe the music is too loud to
ignore, and I’m enjoying the drive too much, but I don’t see it and I drive through one.</p>
<p>It splashes mud on them and
ruins their day, while I’m still unaware of the repercussions of my action. Sometimes though, they care enough to come
back and tell me. They don’t have to, they can curse my car and be on their way, but they don’t. Because they are good
humans. The only thing that I can do is apologize when this happens. I can’t undo the damage I have done, I wish I
could,
but I can’t. All I can do is hope that they forgive me. I never meant to drive in the puddle, but it happened.</p>
<p>I wish
there were none, but that’s not possible. Life has puddles sprinkled throughout as if the road blocks and the speed
breakers were not enough. I am not blaming it on life, its my job to watch out for them.
These things make you take stock of what you have and tell you to slow down. Life is not meant
for speeding through because you might drive through a puddle and affect someone you never meant to hurt.</p>
<p>Again, I never meant to drive through the puddles and I’m sorry for that.</p>
</content>
      </entry>
    
      <entry>
        <title>Death</title>
        <id>https://hitarththummar.xyz/posts/death</id>
        <updated>2025-05-26T00:00:00Z</updated>
        <summary>"Thoughts on death."</summary>
        <content type="html"><p>I’ve spent years grappling with the idea of death.</p>
<p>What exactly is death? The mechanical shutdown of the body? Or is it the soul abandoning the
mortal coil in search of gentler realms? When are you considered dead? Does it begin when your heart stills—or when
those you love begin to forget the sound of your laugh? Is it when your memory finally slips from the minds of those you
once held close?</p>
<p>Or perhaps death arrives not with silence, but with the loss of purpose.</p>
<p>This fixation has weighed on me for years. Having witnessed the death of a loved one firsthand, I can’t help but think
of my own—and what, if anything, follows.</p>
<p>I once heard in a dayro— a Gujarati folk gathering where spiritual and cultural stories are told through music and
spoken word— that it's a blessing that humans can move on. When you die, your friends and acquaintances will miss you
for a few months. They will cry maybe. Your inner circle may take years to find peace. They will think of you at every
gathering, occasions and important moments of their life. Your immediate family - Mother, Wife, Children might take a
lifetime to move on. But ultimately, they move on. Moving on is what enables life to go forward. Clinging to someone
who’s no longer aware of your grief—that’s the real torment.</p>
<p>Many of my friends say I fear death too much. I wear a helmet when I ride my bike. I buckle up religiously behind the
wheel. I don’t chase adrenaline. Like Bob Seger’s <em>Beautiful Loser</em>—always playing it safe, always watching from the
sidelines.</p>
<p>What I have realised is this: I don’t fear death itself—I’ve made peace with its inevitability. What I fear are the
consequences. I can't help but think of what my children will do without me, how my wife would endure this cruel, cruel
world and what would my mother do? Her husband already gone, and now her only son.</p>
<p>That’s what scares me. Not the end—but the ripple.</p>
<p>I know they will move on, eventually. But those years that they haven't moved on, I don't want them to go through that.
That is why I play it safe.</p>
<p>For them.</p>
<p>I like to think that if humans had no worldly attachments, they would want to die that very instant. The final relief.
The everlasting silence that asks for nothing.</p>
</content>
      </entry>
    
      <entry>
        <title>The Brutally Honest Field Guide to Life</title>
        <id>https://hitarththummar.xyz/posts/the-brutally-honest-field-guide-to-life</id>
        <updated>2025-04-23T00:00:00Z</updated>
        <summary>"k"</summary>
        <content type="html"><p><em>This isn't your gentle, hand-holding advice. It's a blunt toolkit of real lessons I've learned the hard way. If you
want results without the BS, read on.</em></p>
<h2>Always Ask Twice</h2>
<p><strong>Core Idea:</strong> If the first answer is <em>no</em> or silence, you don't just walk away. You <strong>always ask twice</strong> (or even
thrice) – each time with a bit more force. Polite, persuasive, aggressive. In that order.</p>
<ul>
<li>
<p><strong>Tier 1: Polite Ask.</strong> Start by asking nicely and respectfully. Most people respond to courtesy, but sometimes
they'll still brush you off or say no out of habit.</p>
</li>
<li>
<p><strong>Tier 2: Persuasive Ask.</strong> If the first ask gets you nowhere, come back with backup. Bring reasons, data, or
incentives that make it hard to refuse. Show them <em>why</em> saying yes benefits everyone (especially you).</p>
</li>
<li>
<p><strong>Tier 3: Aggressive Ask.</strong> When polite and persuasive don't cut it, it's time to be firm and unapologetic. This isn't
about being rude for fun – it's about showing you <strong>mean business</strong>. Make it clear you're not dropping the issue. (Use
this tier sparingly, but have it ready in your arsenal.)</p>
</li>
</ul>
<p><strong>Real-Life Example (Coding Freelance):</strong><br />
Early in my freelance coding career, I proposed building a custom CMS for a small e-commerce client. Their standard
budget was $2,000.</p>
<p><strong>First ask (polite):</strong><br />
I wrote, “For a PHP-based CMS with product management, user roles, and order tracking, my usual rate is $1,800. Does
that align with your budget?”<br />
They thanked me but said they could only allocate $1,200.</p>
<p><strong>Second ask (persuasive):</strong><br />
A few days later I sent a detailed breakdown: database schema design, admin UI, REST API endpoints, and payment
integration—all delivered in four weeks. I closed with, “That full scope is $1,800, and I can start immediately.”<br />
They responded, “We really only have $1,200 right now.”</p>
<p><strong>Third ask (direct):</strong><br />
On a brief call, I said, “I can’t deliver the full CMS for $1,200—my rate for that scope is $1,800. If $1,200 is your
max, we can drop payment integration and add it later, or proceed with full scope at $1,800. Which do you prefer?”<br />
They agreed to $1,600 for the complete system. I coded the CMS, delivered on time, and both of us walked away
satisfied.</p>
<p><strong>Lesson:</strong> The first “no” is a default. The second “no” probes constraints. The third, with clear options and firm
value, closes the deal.</p>
<h2>Don’t Make Jalebis of the Topic</h2>
<p><strong>Core Idea:</strong> Jalebis are an Indian sweet made of loops and twists of sugary dough. Tasty, yes. But in conversation,
making <em>jalebis</em> of the topic means spinning around in sticky circles – and it's a <strong>terrible</strong> habit. Cut the
convoluted crap. Be direct, be clear, get to the point.</p>
<ul>
<li>
<p><strong>Get to the Point, Fast.</strong> If you have something to say or ask, spit it out. Don’t start with a 5-minute backstory
that leaves everyone wondering where you're going. Busy people appreciate you respecting their time.</p>
</li>
<li>
<p><strong>No Sugar-Coating.</strong> Being diplomatic is fine, but don't bury your message under layers of fluff or apologies. You
can be respectful <em>and</em> straightforward at the same time.</p>
</li>
<li>
<p><strong>Say It, Own It.</strong> If you believe something, say it with your chest. Don't water down your opinion just to sound
nice. Confidence (even a bit of bluntness) earns more respect than a dozen hesitant half-statements.</p>
</li>
</ul>
<p><strong>Real-Life Example:</strong> I grew up introverted and conflict-averse – basically the king of over-explaining. In college, I
once took so long prefacing a simple question that the professor cut me off with, "<em>Do you actually have a question?</em>"
Talk about humiliating. I was making verbal jalebis, tangling up a basic ask until it lost all impact. That day I
decided: no more.</p>
<p>Fast forward to my tech job years later. In meetings, instead of tiptoeing around an issue, I'd say, "Here’s the
problem, here’s my solution. Thoughts?" Sure, my bluntness stunned a few people at first (especially those used to
corporate waffle). But soon enough I became the go-to guy for clarity. Co-workers even began asking <em>me</em> to cut through
the nonsense when discussions went in circles. Once I stopped making jalebis of every topic, I found that people
actually listened – and things got done faster.</p>
<h2>YAGNI Persuasion</h2>
<p><strong>Core Idea:</strong> <em>YAGNI</em> stands for "You Ain't Gonna Need It." It's a principle from software development, but I’ve
dragged it into real life. The idea: do only what’s necessary, nothing extra. No over-engineering, no over-preparing. In
persuasion (and in chasing goals), this means <strong>minimal effort, maximum focus</strong> – don't do more than you actually need
to get the job done.</p>
<ul>
<li>
<p><strong>No Overkill Moves.</strong> Don’t waste energy on grand gestures or over-the-top presentations if a simple conversation
will do. Persuasion is about convincing, not showing off—save your big guns for when they’re truly needed.</p>
</li>
<li>
<p><strong>Minimal Viable Action.</strong> Ask yourself: <em>what's the smallest step that will push this forward?</em> Do <strong>just that</strong> and
nothing more—whether you're kicking off a project or negotiating a deal, start with the basics that get the job done.</p>
</li>
<li>
<p><strong>Resourcefulness Over Resources.</strong> Instead of throwing money or endless planning at a problem, get creative with what
you have. Use your current skills, contacts, and tools to make things happen before you consider any fancy add-ons.</p>
</li>
</ul>
<h2>Final Notes</h2>
<p>These principles aren't classroom theories – they're tactics scraped from real wins and ugly fails. <strong>Always Ask Twice</strong>
taught me that persistence pays. <strong>Don’t Make Jalebis</strong> proved that saying less (but saying it clearly) gets you heard
more. <strong>YAGNI Persuasion</strong> showed me that doing just enough can actually be more than enough.</p>
<p>Take this field guide and test these ideas in your own life. No fluff, no fancy formulas – just raw strategies that *
<em>actually work</em>*. Now go out there and get it done, no excuses.</p>
<p><em>NOTE</em>: AI was used to format and rephrase the text. The ideas are my own.</p>
</content>
      </entry>
    
      <entry>
        <title>The Trade-off</title>
        <id>https://hitarththummar.xyz/poems/the_trade_off</id>
        <updated>2025-02-19T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>Where is that guy?<br />
The measly human, the small <a href="smallfry">fry</a>,<br />
<a href="drive">Driving</a> on roads that never ended<br />
While freaking out about his own life.<br />
Instead, all I have now<br />
Is this happy giant<br />
Who struts on out into the world<br />
With a beaming smile and his laptop bag.<br />
Alarm, traffic, keyboard, sleep;<br />
Alarm, traffic, keyboard, sleep;<br />
Alarm, traffic, then repeat.<br />
No more longs for the tar on skin<br />
Or the unending hours of creative schemes.<br />
It's all about the life that he chose—or not?—<br />
And the life that he is about to live.<br />
Not one photo where he stands alone,<br />
Not one moment where the world just goes on,<br />
Not one day where he cries himself to sleep.<br />
And yet for the measly fry I long.</p>
</content>
      </entry>
    
      <entry>
        <title>Putting an end to the Mahabharat reviews</title>
        <id>https://hitarththummar.xyz/posts/review_stop</id>
        <updated>2024-11-15T00:00:00Z</updated>
        <summary>"Discontinuation of my Mahabharat TV Show reviews."</summary>
        <content type="html"><p>I think this has been long overdue. I will be discontinuing the Mahabharat review series that I started more than two
years ago. Despite promising multiple times that I will keep going on, I have come to a realization that I won't be able
to. There are multiple reasons for that but the primary reason is that I do not have the time for it. If by some miracle
I do get the time for it, I can continue. Since I cannot predict when I will be able to continue with it, I won't be
putting an ETA on it.</p>
<p>I will also remove it from my primary navigation bar as well the home page. You can find it <a href="/mahabharat">here</a>, in case you want to
revisit the old reviews.</p>
</content>
      </entry>
    
      <entry>
        <title>How asking for a traffic challan might benefit you.</title>
        <id>https://hitarththummar.xyz/posts/paying_your_dues</id>
        <updated>2024-07-13T00:00:00Z</updated>
        <summary>"My experience with a traffic policeman and how it taught me a neat trick"</summary>
        <content type="html"><p>You know those last five seconds of a green light? The ones where the guy in
front of you suddenly has to stop for a bit but just enough so that you can't
escape? Yeah, that one.</p>
<p>Yesterday when returning from the office I faced a similar situation but I had
already crossed the white line and I could either move forward or stop in the
middle of the road. I chose the former and the traffic policeman chose me. He
motioned me to the side and asked for my license. I handed it over. Obviously,
since this was an Indian Traffic policeman I was mentally prepared to haggle
over the fine paid so as he asked me to get out of the car, I started talking
of how I was in a hurry and how I was sorry and how I would never do it again.</p>
<p>He listened to me and then asked me to pay the fine. I asked him how much and
he said 3000 rupees. This caught me by surprise because red light violations,
even minor ones like mine should not have that much of a fine. I asked him to
show me the fine/challan book and he showed me an image from his phone's
gallery. It said 3000 for <em>Dangerous Driving (Wrong side driving and Overtaking
in no overtake zone)</em>. It all made sense to me now. This was a scare tactic to
get some bribes from citizens who were either too scared or in a hurry. Lucky
for me, I had all the time in the world. So I agreed to the fine and asked him
to write me a challan. He was taken aback and told me to meet the <em>saheb</em>. I
met his superior who asked me the same standard questions - Where do you live?
What do you do? Where are you coming from? You sure you want to pay the 3000
rupee Challan? I answered all his questions and said yes to the challan.</p>
<p>He then took out his phone, opened some government app and clicked a photo of
my car. He then verified my registration details, tapped repeatedly on his
phone and hurridly asked me to leave. I was confused. I asked him about the
challan and he said that he had already sent it to my address. I was still
confused. I asked him about the 3000 rupees and he said that I could pay it
online. And so, the honest citizen left in his car. The honest citizen also got
an SMS a few minutes later. It was for a 500 rupee red light violation.</p>
<p>So people, if you ever get caught by a traffic policeman and he asks you to pay
whatever amount, ask for a challan if you think that amount is not what you
should actually be paying.</p>
</content>
      </entry>
    
      <entry>
        <title>Goodbye Copilot, it was fun while it lasted.</title>
        <id>https://hitarththummar.xyz/posts/goodbye_copilot</id>
        <updated>2024-05-20T00:00:00Z</updated>
        <summary>"Why I am not using GitHub Copilot anymore and why I recommend you shouldn't as well."</summary>
        <content type="html"><p>I have been using GitHub Copilot for the past few months now, and honestly it is pretty fun. It felt like the kind of
racy relationship that keeps giving you adrenaline every waking moment of it, until it doesn't...</p>
<p>So here I am writing about my break-up with copilot and the end of our three-month-long affair.</p>
<h2>The honeymoon period</h2>
<p>I had heard of and read about copilot for quite some time now, but never felt the need to use it, until I started
working on a large codebase for a personal project. On recommendation from a friend I installed it and my god it was
magical. Writing boilerplate code and even complex functions like it was copying and pasting it from somewhere! (<em>wink
wink</em>
get it?) And I fell in love. I installed it on all my code editing software and started using it exclusively. I disabled
completions everywhere because copilot was my completer!</p>
<p>Now I would like to clarify that there is nothing inherently wrong with having an AI generate boilerplate code for you.
It is actually a lot more productive and this post is not trying to say that at all.</p>
<h2>The small conflicts</h2>
<p>After a month I started noticing a few irregularities with the code it was generating. Some ghost parameters for a few
functions, importing libraries that did not even exist, and a few other things, but I brushed them off as just AI things
and fixed them myself. This was not something that was going to deter me from using my <em>trusted</em> copilot. At some point
I even started using it in writing my blogposts. Before you get your pitchforks out, I used it to autocomplete spellings
of <em>Yudhisthir</em> and <em>Dhritrashtra</em> mostly. It hallucinated fabricated stories of a character marrying his sister or
something as well. It was now showing its true colors to me.</p>
<h2>The breaking point</h2>
<p>All of the above things were still acceptable to me, since they were mistakes that could be corrected. This one
incident, on the other hand made me ditch copilot in an instant. I began migrating my python project to go, partly
because I wanted to learn go and partly because my python code was like cold maggi. (See how I used maggi instead of
Spaghetti?). Anyway, back to the point. I started learning go, how a project structure in golang should be like, what is
the difference between how dependencies are handled in go, things like that. I decided on a plan and started writing
code and boy oh boy it was a breeze! Why wouldn't it be? I had my trusty copilot by my side.</p>
<p>Now I have been used to using ORMs for many years now and I don't remember a time when I had to write an actual SQL
query. On this project though, I decided that I wanted to use raw SQL instead of an ORM. I went with
using <a href="%22https://sqlc.dev%22">sqlc</a> to generate go code for my SQL queries, and it worked fine as well. What happened
today,
is why I decided to ditch copilot.</p>
<p>I wanted to update a user, but I wanted to send the request with partial data like in an ORM.
For example, if I wanted to update a user, I could just send</p>
<pre><code>{
  "id": 69,
  "username": 420
}
</code></pre>
<p>and it should update the username of the user with id 69.</p>
<p>Here is the query that copilot wrote for me:</p>
<pre><code>UPDATE "user"
SET username         = $2,
    email            = $3,
    phone            = $4,
    password         = $5,
    role             = $6,
    business_name    = $7,
    business_phone   = $8,
    business_address = $9
WHERE id = $1
RETURNING *;
</code></pre>
<p>Here is what it should have been:</p>
<pre><code>UPDATE "user"
SET username         = COALESCE($2, username),
    email            = COALESCE($3, email),
    phone            = COALESCE($4, phone),
    password         = COALESCE($5, password),
    role             = COALESCE($6, role),
    business_name    = COALESCE($7, business_name),
    business_phone   = COALESCE($8, business_phone),
    business_address = COALESCE($9, business_address),
    updated_at       = NOW()
WHERE id = $1
RETURNING *;
</code></pre>
<p>Now if I keep letting copilot write my queries, then how the hell am I going to learn it? I learned about COALESCE by
the good old-fashioned way of googling. You know what chatGPT suggested?</p>
<pre><code>-- name: UpdateUserUsername :one
UPDATE "user"
SET username = $2
WHERE id = $1
RETURNING *;

-- name: UpdateUserEmail :one
UPDATE "user"
SET email = $2
WHERE id = $1
RETURNING *;

-- name: UpdateUserPhone :one
UPDATE "user"
SET phone = $2
WHERE id = $1
RETURNING *;

-- name: UpdateUserPassword :one
UPDATE "user"
SET password = $2
WHERE id = $1
RETURNING *;

-- name: UpdateUserRole :one
UPDATE "user"
SET role = $2
WHERE id = $1
RETURNING *;

-- name: UpdateUserBusinessDetails :one
UPDATE "user"
SET business_name    = $2,
    business_phone   = $3,
    business_address = $4
WHERE id = $1
RETURNING *;

</code></pre>
<p>It wanted me to created separate functions for all the update fields and run those queries accordingly.</p>
<p>This led me to think back on all the times copilot was wrong for me. For every time I had to sit back and check its
faulty code. For everytime a small bug bothered me for hours because I trusted copilot a little more than I should have,
For all the times it made someone's wife their sister just because the data churning machine said so
and for all the times I could have learned something but instead trusted a computer to do my job for me.</p>
<p>Writing boilerplate <em>is</em> how you learn new stuff. It's how you get better at stuff. Searching online, reading
documentation is how you get better at stuff.</p>
<p>Thus ends my rant. So, goodbye copilot, it was fun while it lasted.</p>
<p></p>
</content>
      </entry>
    
      <entry>
        <title>Trip to Narmada Canal</title>
        <id>https://hitarththummar.xyz/posts/adani_dam</id>
        <updated>2023-09-10T00:00:00Z</updated>
        <summary>"Photographs from my recent trip to the dam near Adani Shantigram"</summary>
        <content type="html"><p>Yesterday, my cousins, me and some friends went to a dam on the Narmada Canal. We watched the sun set and clicked some cool photos. Then we went for pizza and spent the night riding around town. It was a nice day, a core memory.</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</content>
      </entry>
    
      <entry>
        <title>SAP Basis beginner notes</title>
        <id>https://hitarththummar.xyz/posts/sap_basis_notes</id>
        <updated>2023-08-20T00:00:00Z</updated>
        <summary>"Digitized notes for a rookie SAP Basis consultant use."</summary>
        <content type="html"><p>The below notes were hand written by a collegue and I digitized them for public use. These are especially useful for beginner SAP Basis consultants looking for a quick cheatsheet. Keep in mind, I am not responsible for any broken production systems if you mess up. The below content is provided on as-is basis.</p>
<p>You will find many mistakes because the typing may have been wrong/misinformed, if possible please e-mail me with corrections and I will update them here.</p>
<p>Enjoy.</p>
<hr />
<h2>Tcodes</h2>
<table>
<thead>
<tr>
<th>Sr.No</th>
<th>Transaction Code</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>SM50</td>
<td>Work process specific for a particular instance (central) (local wlp overview)</td>
</tr>
<tr>
<td>2</td>
<td>SM66</td>
<td>For additional instance (basically all inst) (global wo/p overview)</td>
</tr>
<tr>
<td>3</td>
<td>SM04</td>
<td>To check wether instance is active or not (users which are not physically logged in)</td>
</tr>
<tr>
<td>4</td>
<td>AL08</td>
<td>For global users login (active users)</td>
</tr>
<tr>
<td>5</td>
<td>SM12</td>
<td>Lock management / system lock overview</td>
</tr>
<tr>
<td>6</td>
<td>SM13</td>
<td>Update management</td>
</tr>
<tr>
<td>7</td>
<td>SM14</td>
<td>Activate / Deactivate the Update prog add</td>
</tr>
<tr>
<td>8</td>
<td>RZ10</td>
<td>Static parameter profile param maintan</td>
</tr>
<tr>
<td>9</td>
<td>RZ11</td>
<td>Dynamic parameter / display profile parameter</td>
</tr>
<tr>
<td>10</td>
<td>SU01</td>
<td>Create a single user</td>
</tr>
<tr>
<td>11</td>
<td>SU10</td>
<td>Create multiple users</td>
</tr>
<tr>
<td>12</td>
<td>PFCG</td>
<td>Create role &amp; profiles</td>
</tr>
<tr>
<td>13</td>
<td>SE16</td>
<td>To view any table</td>
</tr>
<tr>
<td>14</td>
<td>USR02</td>
<td>Table of users</td>
</tr>
<tr>
<td>15</td>
<td>SUIM</td>
<td>Security purpose, User information system.</td>
</tr>
<tr>
<td>16</td>
<td>SE11</td>
<td>Maintaining metadata, data dictionary</td>
</tr>
<tr>
<td>17</td>
<td>SU21</td>
<td>All authorisation object in SAP</td>
</tr>
<tr>
<td>18</td>
<td>SU24</td>
<td>To check any authorisation object in nodes</td>
</tr>
<tr>
<td>19</td>
<td>SU53</td>
<td>You are assigned to some authorisation or not / missing authorisation</td>
</tr>
<tr>
<td>20</td>
<td>SE93</td>
<td>To check which prog is running in bg</td>
</tr>
<tr>
<td>21</td>
<td>SE38</td>
<td>To execute this program (ABAP Editor)</td>
</tr>
<tr>
<td>22</td>
<td>SM37, SM39</td>
<td>To know active background jobs overview</td>
</tr>
<tr>
<td>23</td>
<td>SM36</td>
<td>Scheduling (define) background process (job)</td>
</tr>
<tr>
<td>24</td>
<td>SM51</td>
<td>Kernel version (list of all application server)</td>
</tr>
<tr>
<td>25</td>
<td>ST04</td>
<td>Analyse database</td>
</tr>
<tr>
<td>26</td>
<td>DB13</td>
<td>Schedule the database backup (offline)</td>
</tr>
<tr>
<td>27</td>
<td>EWZ5</td>
<td>Lock all users</td>
</tr>
<tr>
<td>28</td>
<td>SM02</td>
<td>To send message to customer</td>
</tr>
<tr>
<td>29</td>
<td>SCC4</td>
<td>To (create client) check how many clients are there</td>
</tr>
<tr>
<td>30</td>
<td>SCCL</td>
<td>Local client copy</td>
</tr>
<tr>
<td>31</td>
<td>SCC3</td>
<td>Client lock analysis</td>
</tr>
<tr>
<td>32</td>
<td>SCC5</td>
<td>Client deletion</td>
</tr>
<tr>
<td>33</td>
<td>SCC9</td>
<td>Remote client copy</td>
</tr>
<tr>
<td>34</td>
<td>SCC7</td>
<td>Client import</td>
</tr>
<tr>
<td>35</td>
<td>SCC8</td>
<td>Client export</td>
</tr>
<tr>
<td>36</td>
<td>SMLT</td>
<td>To know the language in your SAP system</td>
</tr>
<tr>
<td>37</td>
<td>SICK</td>
<td>After installation run the system &amp; check for errors</td>
</tr>
<tr>
<td>38</td>
<td>BD54</td>
<td>Creating logical name</td>
</tr>
<tr>
<td>39</td>
<td>BTCtrans1</td>
<td>Suspend the background job</td>
</tr>
<tr>
<td>40</td>
<td>BTCtrans32</td>
<td>Resume the background job</td>
</tr>
<tr>
<td>41</td>
<td>SM49</td>
<td>Maintain the external OS commands</td>
</tr>
<tr>
<td>42</td>
<td>SM69</td>
<td>To execute the external OS commands</td>
</tr>
<tr>
<td>43</td>
<td>SM62</td>
<td>To event history overview</td>
</tr>
<tr>
<td>44</td>
<td>SM64</td>
<td>Release of events</td>
</tr>
<tr>
<td>45</td>
<td>RZ04</td>
<td>Maintain the operation modes</td>
</tr>
<tr>
<td>46</td>
<td>SM63</td>
<td>Timeset for operation mode</td>
</tr>
<tr>
<td>47</td>
<td>SPAD</td>
<td>Spool Administration / To define the olp devices</td>
</tr>
<tr>
<td>48</td>
<td>SP01</td>
<td>Output Controller / Spool request selection screen</td>
</tr>
<tr>
<td>49</td>
<td>SP02</td>
<td>List of spool request</td>
</tr>
<tr>
<td>50</td>
<td>SP11</td>
<td>Temp sequential object request screen</td>
</tr>
<tr>
<td>51</td>
<td>SP12</td>
<td>Temse Administration</td>
</tr>
<tr>
<td>52</td>
<td>SM301</td>
<td>Lock / Unlock Tcodes</td>
</tr>
<tr>
<td>53</td>
<td>SMGW</td>
<td>Gateway work process overview</td>
</tr>
<tr>
<td>54</td>
<td>SMMS</td>
<td>Message server overview</td>
</tr>
<tr>
<td>55</td>
<td>SMICM</td>
<td>ICM Monitoring (Internet Comm Manage)</td>
</tr>
<tr>
<td>56</td>
<td>SUPC</td>
<td>Mass profile creation</td>
</tr>
<tr>
<td>57</td>
<td>SUGR</td>
<td>User group creation</td>
</tr>
<tr>
<td>58</td>
<td>PFUD</td>
<td>Compare user assignments</td>
</tr>
<tr>
<td>59</td>
<td>SU56</td>
<td>User buffer</td>
</tr>
<tr>
<td>60</td>
<td>SU02</td>
<td>Maintain authorisation profile</td>
</tr>
<tr>
<td>61</td>
<td>SE54</td>
<td>Create the authorization group</td>
</tr>
<tr>
<td></td>
<td><strong>Transport Management System</strong></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>62</td>
<td>STMS</td>
<td>To configure TMS</td>
</tr>
<tr>
<td>63</td>
<td>SE01</td>
<td>Transport organizer</td>
</tr>
<tr>
<td>64</td>
<td>SE03</td>
<td>Transport organizer tool</td>
</tr>
<tr>
<td>65</td>
<td>SE06</td>
<td>Change transport system</td>
</tr>
<tr>
<td>66</td>
<td>SE09</td>
<td>Workbench request</td>
</tr>
<tr>
<td>67</td>
<td>SE10</td>
<td>Customizing request</td>
</tr>
<tr>
<td>68</td>
<td>TSTC</td>
<td>To seek all transaction code</td>
</tr>
<tr>
<td>69</td>
<td>ST01</td>
<td>All missing authorization</td>
</tr>
<tr>
<td>70</td>
<td>SM59</td>
<td>RFC Administration</td>
</tr>
<tr>
<td>71</td>
<td>SMLG</td>
<td>Creating logon group</td>
</tr>
<tr>
<td>72</td>
<td>SAINT</td>
<td>Applying Addons</td>
</tr>
<tr>
<td>73</td>
<td>SPAM</td>
<td>Support Package Manager</td>
</tr>
<tr>
<td>74</td>
<td>SALE</td>
<td>To create logical client</td>
</tr>
<tr>
<td>75</td>
<td>STZAC</td>
<td>Timezone setting</td>
</tr>
<tr>
<td>76</td>
<td>ST22</td>
<td>ABAP Dump</td>
</tr>
<tr>
<td>77</td>
<td>TZCUSTHELP(Table)</td>
<td>For timezone</td>
</tr>
<tr>
<td>78</td>
<td>SM21</td>
<td>Check / display system logs</td>
</tr>
<tr>
<td>79</td>
<td>ST17</td>
<td>To check error log files</td>
</tr>
</tbody>
</table>
<hr />
<h2><em>3 Layers:-</em></h2>
<ol>
<li>Presentation</li>
<li>Application</li>
<li>Database (SQL Processes)</li>
</ol>
<h2>Work processes of ABAP</h2>
<ol>
<li>Spool ---&gt; For printing purpose</li>
<li>Update ---&gt; Make update in the database if any</li>
<li>Dialog ---&gt; It is like interface, eg (GUI) SAP logon</li>
<li>Background ---&gt; Run job/processes in background</li>
<li>Enque (for lockup) ---&gt; Lock the processes</li>
</ol>
<hr />
<h2>ABAP Architecture</h2>
<ul>
<li>Application layer provides environment to run processes</li>
<li>Request will be one of the 5 processes</li>
<li>Message server knows how many instance are there</li>
<li>Dispatcher knows how many free instance are there</li>
</ul>
<hr />
<h2>Sequence for ABAP System</h2>
<h2>Starting</h2>
<ol>
<li>Database</li>
<li>Central Services</li>
<li>Central Instances</li>
</ol>
<ul>
<li>
<p>All instances can be identified by unique instance number. CS --&gt; 01, CI -- 00, (ASCS) --&gt; ABAP, (SCS) --&gt; Java</p>
</li>
<li>
<p>100 instances we can have at most</p>
</li>
<li>
<p>SID (System ID ) ---&gt; Should be 3 letters, should not start with digit &amp; no special characters, uppercase letters only</p>
</li>
<li>
<p>/usr/sap/&lt; sid &gt; ---&gt; Log files, config files, executable files (kernel), temporary files.</p>
</li>
<li>
<p>sapmnt / &lt; sid &gt; /
(global directory)</p>
</li>
<li>
<p>Files of IP address of all additional application instances for a particular system</p>
</li>
<li>
<p>Security files, gateway files, authentical files.</p>
</li>
<li>
<p>To go from one transaction to another</p>
<p>/n:- Close this open new</p>
<p>/o:- Keeps the other open to</p>
</li>
</ul>
<hr />
<h2>Profiles (Configuration Files)</h2>
<ul>
<li>
<p>Parameters needed to start an SAP system</p>
<ol>
<li>default ---&gt; resource allocation</li>
<li>instance ---&gt; parameters used by specific instance
<ul>
<li>Central Service Profile</li>
<li>Central Instance Profile</li>
<li>Additional Instance Profile</li>
</ul>
</li>
</ol>
</li>
<li>
<p>Each instance has its own config so separate instance profiles</p>
</li>
<li>
<p>When we open system first default, then central service</p>
</li>
<li>
<p>If any change is default profile, sys needs to be restarted</p>
</li>
</ul>
<hr />
<h2>Transactions</h2>
<ul>
<li>Whatever functionality needs to be used in SAP ABAP system they are taken care of transaction codes</li>
<li>Required media
<ul>
<li>Kernel</li>
<li>GUI</li>
<li>Database</li>
</ul>
</li>
</ul>
<h2>Shared Lock</h2>
<ul>
<li>
<p>SSFS:- Secured store of file system</p>
</li>
<li>
<p>Data file:- Stores name &amp; password creations, to connect and fetch</p>
</li>
<li>
<p>Key file:- Stores special key associated with database credentials. Different key values for db</p>
</li>
<li>
<p>SAP Fiori:- Provides modern web based UI</p>
</li>
<li>
<p><strong>Role</strong>:- Every transcation has an authorization object &amp; collection of objects is called Role</p>
</li>
</ul>
<p>Collection of such roles is called Profile containing details of authorization object for particular use</p>
<ul>
<li>Profiles generated by SAP eg. SAP_ALL, SAP_CUST</li>
</ul>
<p>App Server: 10.17.232.13
Instance No: 00
SID: TR5</p>
<pre><code>User -- ILPBASIS11
Password -- Abc@123
</code></pre>
<ul>
<li>If user type is system of dialog then only we can login using SAP GUI
SNC = Secured W/W Communication</li>
</ul>
<hr />
<ul>
<li>
<p><strong>Roles</strong></p>
<ol>
<li>
<p><strong>Single</strong></p>
<ul>
<li><strong>Master (Parent)</strong></li>
<li><strong>Derived</strong></li>
</ul>
</li>
<li>
<p><strong>Composite</strong></p>
</li>
</ol>
</li>
</ul>
<h2>Menu Tab in Roles</h2>
<ul>
<li>
<p>Which transaction needs to be assign to that Role.</p>
</li>
<li>
<p><strong>Authorization:-</strong> Authorization object &amp; organization level details</p>
</li>
<li>
<p>When create role a new profile will be generated 1 profile attached to 1 role. User can be attached to role or profile</p>
</li>
<li>
<p><strong>Update:-</strong> Will update tables in database</p>
<ul>
<li>U1 ---&gt; Critical update</li>
<li>U2 ---&gt; Less critical</li>
</ul>
</li>
<li>
<p><strong>Gateway:-</strong> Allows to communicate between application server to administration server</p>
</li>
</ul>
<hr />
<h2>HANA</h2>
<ul>
<li>
<p>in-memory databse</p>
</li>
<li>
<p>HANA is not only a database, its a suite of application software</p>
</li>
<li>
<p><strong>HANA Components:-</strong></p>
<ol>
<li>Database</li>
<li>Client</li>
<li>Studio</li>
<li>Lumina</li>
<li>AFL</li>
<li>SLT</li>
<li>SDS</li>
<li>SDI</li>
</ol>
</li>
</ul>
<h2>BACKUP</h2>
<ul>
<li>Copying entire system</li>
</ul>
<ol>
<li>Database</li>
<li>Filesystem (img backup)</li>
</ol>
<ul>
<li>In SAP we have separate space for storing backup, generally thrice original space.</li>
<li>Frequency of data depends on criticality of data.</li>
<li>Path of location</li>
<li>Removal of old backup</li>
</ul>
<h2>Backups</h2>
<ul>
<li>
<p>HANA Studio - Gives a GUI to allow you to do things at OS level with logging to Linux server
Admin, monitoring, maintain, update needed.</p>
</li>
<li>
<p>SLT (SAP's Linear Transformation)</p>
</li>
<li>
<p>Realtime /Simultaneous replication/High Availability</p>
</li>
</ul>
<h2>Disaster Recovery (Replication)</h2>
<ul>
<li>Primary: The one cue are working</li>
<li>Secondary - The one with realtime replication and same geographical area</li>
<li>Tertiary - Realtime replication in different area. In case of networks, server failure, its useful.</li>
</ul>
<h2>SDS - Smart Data Streaming</h2>
<p>Majorly used for image/video processing</p>
<ul>
<li>Non-standard part of HANA</li>
<li>Works on concept of AI</li>
<li>Realtime streaming of data</li>
<li>Installed explicitly</li>
</ul>
<h2>SDI - Smart Data Integration</h2>
<ul>
<li>Separately stored procedures &amp; written</li>
<li>Only arithmetic/mathematical calculations</li>
</ul>
<h2>HANA DATABASE</h2>
<h3>Architecture</h3>
<ul>
<li>Entire HANA in C++ so C++ compiles JCC files</li>
<li>Index server is heart of system, basically data storing, data persistence, handling of queries</li>
<li>statistic server is user, memory, processes info</li>
<li>Name server stores metadata, stores system server information</li>
<li>A merge brings data from persistance to index server</li>
</ul>
<h3>HANA DB version</h3>
<ul>
<li>
<p>Check whether db is up and running
sapcontrol -nr 02 -function GetProcessList</p>
</li>
<li>
<p>DB2 and oracle dont work on instance no. functionality</p>
</li>
<li>
<p>Red, grey, yellow, green colour code for HANA processes</p>
</li>
<li>
<p>To check connection between app and DB: R3 trans-d</p>
</li>
<li>
<p>Check filesystem : <code>df -h</code></p>
</li>
<li>
<p>Copy: <code>cp</code></p>
</li>
<li>
<p>Make directory: <code>mkdir</code></p>
</li>
<li>
<p>Change mode: <code>chmod</code></p>
</li>
<li>
<p>Change owner: <code>chown</code></p>
</li>
<li>
<p>extension files: .SAR</p>
</li>
<li>
<p>Extract .SAR: <code>SAPCAR -xvf &lt;filename&gt;.SAR -R &lt;destination path&gt;</code></p>
</li>
</ul>
<h2>Linux</h2>
<p>To be added later</p>
<h2>Kernel update</h2>
<h3>prerequisites</h3>
<ul>
<li>DB/FS backup</li>
<li>version of kernel</li>
<li>Approval</li>
<li>Plan downtime</li>
<li>Space Availability check</li>
<li>SM02 (to send msg to customer)</li>
<li>Download required patch</li>
<li>backup of exe folder
exe folder path - sapmnt/&lt; sid&gt; (only kernel files)
sar files</li>
<li>lock all user [EWZ5] on SAP GUI backup
cp -Rp systemname
(linux x86_64/install/ )
extract root doesnt have access to extract files</li>
<li>copy downloaded file of exe location</li>
</ul>
<h3>Upgrade steps</h3>
<p>To be added later</p>
<h2>Create user</h2>
<ul>
<li>
<p>[SU01] -&gt; Enter Lname and set password
default users are ddic and sapstar user</p>
</li>
<li>
<p>[SU10] -&gt; for creating mass user</p>
</li>
<li>
<p>i) startup profile, ii) default profile, iii) instance profile when 0 sapstar is allowed</p>
</li>
<li>
<p>After 1st installation by default 3 clients are there
000 001, 066 (SAP Clients)<br />
000 - Main activity, end users cant work on these 3 clients<br />
066 - ewa/generate report about bg<br />
001 - copy of 000</p>
</li>
<li>
<p>Any activity that end user wants to do are will create separate client till 1000 (999)</p>
</li>
<li>
<p>logical system is necessary for each client
Switch user in HANA DB - su - &lt;sid&gt;adm</p>
</li>
<li>
<p>TOOO - table that stores client data
snote - small correction, apply the notes
support pckg - large scale correction, spam</p>
</li>
<li>
<p>Schema user is used to connect ABAP user to DB</p>
</li>
<li>
<p>RFC - Remote function call</p>
</li>
</ul>
<h2>Profiles</h2>
<ul>
<li>SAP_ALL - all client specific data without change document</li>
<li>SAP_APPL - customizing app data without change document</li>
<li>SAP_APPX - SAP_APPL without authorization profile and roles</li>
<li>SAP_CUST - customizing data</li>
<li>SAP_CUSV - customizing and user variant</li>
<li>SAP_CUSX - customizing without authorization profile and roles</li>
<li>SAP_PROF - only authorization profile and roles</li>
<li>SAP_UCSV - customizing user master record and user variants</li>
<li>SAP_UCUS - customizing and user master record</li>
<li>SAP_UONL - user without authorization profile and roles</li>
<li>SAP_USEr - user master record and authorization profile</li>
</ul>
<h3>Prerequisites for client copy</h3>
<ul>
<li>send msg to user using [SM02]</li>
<li>check which users are logged on in the application server using [SM04]</li>
<li>if logged on then lock particular user [EWZ5] lock all</li>
<li>check if any background process is running using [SM37 then it needs to be suspended</li>
<li>In [SE38] run Tcode[BTCtrans1] to suspend the jobs [BTCtrans2] to resume suspended jobs</li>
</ul>
<h3>RFC administration</h3>
<ul>
<li>4 types of Remote Function call (RFC)<br />
a) Synchronous - Both the system should be active<br />
b) Asynchronous - Not wait for result from target system<br />
c) Transactional - if system is available we'll get result else not<br />
d) Queued - RFC will form a queue<br />
e) Background - merged transactional and queued rfc</li>
</ul>
<h3>Types of users</h3>
<ol>
<li>dialog</li>
<li>system</li>
<li>communication</li>
<li>reference</li>
<li>service</li>
</ol>
<ul>
<li>Transport domain: DOMAIN_SID</li>
<li>Domain Controller is used to manage all SAP system in some landscape</li>
<li>Transport is used to move object frmo one SAP system to other system within same landscape
DEV -&gt; QAS -&gt; PRD</li>
</ul>
<p>STMS -&gt; overview in SAP system -&gt; virtual system -&gt; SAP system -&gt; create -&gt; sid -&gt; distription -&gt; save</p>
<ul>
<li>During STMS, tms adm user is created and changes done are stored in domain.cfg file</li>
</ul>
<p>/usr/sap/trans/bin/domain.cfg at OS level</p>
<ul>
<li>
<p>If name starts with SAP then that is standard layer otherwise that is customize layer</p>
</li>
<li>
<p>3 Types of routes are consolidated integrated and delivery</p>
</li>
</ul>
<p>DEV -&gt; QAS -&gt; PRD<br />
consolidated delivery</p>
<ul>
<li>
<p>/usr/sap/trans/bin which contains information of STMS and profile parameter of transport request.</p>
</li>
<li>
<p>TP_DOMAIN&lt;sid&gt; - transport request parameter</p>
</li>
<li>
<p>cofiles contain control info of transport request. that start with K</p>
</li>
<li>
<p>Datafiles contains actual info of transport request. That start with R</p>
</li>
<li>
<p>Path for both the file is /usr/sap/trans/cofiles (OR) /usr/sap/trans/datafiles</p>
</li>
<li>
<p>Transport request naming: &lt;sid&gt; Kg &lt;5 digit no&gt;</p>
</li>
<li>
<p>For single system there is no transport route</p>
</li>
</ul>
<h2>Types of Transport request</h2>
<ul>
<li>
<p>Customizing request - it contain client specific obj data. Importing this will no affect all clients only a particular client.</p>
</li>
<li>
<p>Workbench request - It contains cross client object and repository obj data. It affects all clients in the system. Changes done in development system is stored in repository.</p>
</li>
<li>
<p>Transport of copies - It contains the more table data and is used for client refresh and database refresh</p>
</li>
<li>
<p>Relocation - It is used for changing the location of one object from one sap system to another</p>
</li>
<li>
<p>Whatever you change data in development system is stored in repository</p>
</li>
<li>
<p>Transport target group if more than 3 system or multiple clients are present</p>
</li>
<li>
<p>it works on extended domain controller used to transport the object within the same client and same system</p>
</li>
<li>
<p>After config check connection
SAP System -&gt; check -&gt; connection</p>
</li>
<li>
<p>Variant is the input given to the program</p>
</li>
<li>
<p>STMS import - find all the request queued extras -&gt; other requests -&gt; add</p>
</li>
<li>
<p>Schedule - You have define the program name and variant but you have not define start conditions like start date and time</p>
</li>
<li>
<p>Reloaded - All the required criteria are fulfilled for the job definition. Start condition must be define for the job in the release status</p>
</li>
<li>
<p>Ready - All required conditions are may to run the job in bg, but the job scheduler has to put job in a queuem because it is waiting for the bg workprocesses to be free</p>
</li>
<li>
<p>Active - job has started running in the bg, we cant change the status of the job when that are active</p>
</li>
<li>
<p>Finish - job is executed successfully. It means task completed without an error</p>
</li>
<li>
<p>Cancelled - there are 2 possibilities for this:
a) Administrator may stop it forcefully
b) issue in job</p>
</li>
<li>
<p>Start condition for BG job</p>
</li>
</ul>
<ol>
<li>date/time</li>
<li>immediate</li>
<li>after job</li>
<li>after event</li>
<li>An operation mode (provide time period)</li>
</ol>
<h2>Before installation</h2>
<ul>
<li>
<p>check which solution of SAP system we need to install</p>
</li>
<li>
<p>check which DB we need to install</p>
</li>
<li>
<p>check database and SAP system solution for particular system</p>
</li>
<li>
<p>check RAM size, storage, CPUs and OS version</p>
</li>
<li>
<p>To install the SAP system below software is required:
a) Windows/Linux server
b) DB software
c) BAR R/3 SAP kernel CD
d) Export CDs
e) FS and require directory should be created on win/linux server</p>
</li>
</ul>
<p>R/3 installation - DB -&gt; DB install (HANA/ASE/Oracle) - Application -&gt; (CS/DB/CI)</p>
<h2>S/W of solution (ECC6.0) which we are going to install</h2>
<ul>
<li>kernel file</li>
<li>DB (Oracle)</li>
<li>Installation upgrade for language</li>
<li>SWPM (Software package manager)</li>
</ul>
<p>First we install CS then DB and lastly CI</p>
<p>Run SWPM
sapinst -&gt; Find out SAP ERP version frmo kernel dump
SAP ERP 6.0 EhP6
6.0 - ECC, EhP6 - Enhancement package</p>
<p>SAP Business Suite = {CRM, SCM, ERP}</p>
<h2>2 ways to install SAP</h2>
<ul>
<li>Central instance - DB and app on same system</li>
<li>Distributed instance - DB and app are on different system</li>
</ul>
<p>Select CI -&gt; Software provisioning Manager -&gt; define parameter -&gt; parameter mode -&gt; typical -&gt; it will take 00 as default installation -&gt; Custom -&gt; OK</p>
<ul>
<li>In software provisioning manager -&gt; maintain FQDM -&gt; then set password -&gt; then choose local installation (if db and s/w are in single system)</li>
</ul>
<h2>Kernel Upgrade process flow:</h2>
<ul>
<li>
<p>Download the files: SAPEXE/SAPEXEDB</p>
</li>
<li>
<p>Copy/Move to application server</p>
</li>
<li>
<p>Extract files</p>
</li>
<li>
<p>Stop application</p>
</li>
<li>
<p>Kill supstartsrv process</p>
</li>
<li>
<p>Take backup of kernel directory</p>
</li>
<li>
<p>Copy/Move previously extracted kernel files to the actual kernel dir</p>
</li>
<li>
<p>Correct ownership of some exe files with <code>./saproot.sh &lt;SID&gt;</code> as root.</p>
</li>
<li>
<p>Switch to &lt;sidadm&gt; user and test the database connectivity with <code>Rstrans -d</code></p>
</li>
<li>
<p>Start application</p>
</li>
<li>
<p>Kernel directory: /sapmnt/&lt;sid&gt;/exe/uc/linux86_64</p>
</li>
<li>
<p>Instance directory: /454/sap/&lt;sid&gt;/sys/global</p>
</li>
<li>
<p>Global dir getting files frmo: /sapmnt/&lt;sid&gt;/global</p>
</li>
<li>
<p>Keep your extracted kernel files into /sapmnt directory</p>
</li>
</ul>
<h2>SAP JAVA: Server Administration</h2>
<ul>
<li>
<p>http://hec03v0233460.sh.hec.sap.biz:50000/startpage
hec03v0233460 - server, sh.hec.sap.biz - FQDN, 50000 - port number</p>
</li>
<li>
<p>SAP netweaver administrator (no client concept in java system)</p>
</li>
<li>
<p>Credentials</p>
</li>
<li>
<p>To create roles go to identity management -&gt; create user -&gt; fill in info (name, pass, group)</p>
</li>
<li>
<p>001 client contain some info about java system (user)</p>
</li>
<li>
<p>7.1X and above central instance became primary application server instance and dialog instance became add app server which contains application server instance + central instance</p>
</li>
</ul>
<h2>Errors in TMS:</h2>
<ul>
<li>
<p>Why ASE is more stable than HANA?</p>
</li>
<li>
<p>Latest version of ASE: 16.0</p>
</li>
<li>
<p>SAP never allowed you to downgrade support pcick or DISDC files downgrade compatible</p>
</li>
<li>
<p>using SUM you can upgrade all components at any time</p>
</li>
<li>
<p>using SPAM you can upgrade only 1 component at a time</p>
</li>
<li>
<p>ABAP support pack upgrade one by one</p>
</li>
<li>
<p>Java support pack upgrade directly</p>
</li>
<li>
<p>SOLMAN -&gt; managing solution - 7.2 (monitoring different SAP solution)</p>
</li>
</ul>
<p>SOLMAN as a whole central console</p>
<ul>
<li>
<p>What is system refresh? Copy a SAP system to another</p>
</li>
<li>
<p>Latest HANA version? 2.0.23</p>
</li>
<li>
<p>Return Codes?</p>
</li>
<li>
<p>SNOTE: small correction apply on notes</p>
</li>
<li>
<p>Patch: upgrade version of SAP system</p>
</li>
<li>
<p>Maintanence planner tool to make XML/generate file</p>
</li>
<li>
<p>Stock file contains all the updates which we need to change</p>
</li>
</ul>
<p>Stackfile is actual data of particular sid while XML is just data</p>
<ul>
<li>Addon are the additional features in already installed system.</li>
</ul>
<h2>Modern DB platform</h2>
<ul>
<li>SAP HANA is the MDP</li>
<li>Data will store in CRM and ERP</li>
<li>OperationalData Store - This will take required data from CRM and ERP</li>
<li>Traditional approach is used before HANA came</li>
<li>Transactional process - It works with analysis part</li>
<li>ETL (Extraction, ransformation, loading)</li>
</ul>
<h2>Summarize data</h2>
<ul>
<li>Data model - Summarize data will store in data model</li>
<li>Indices - it is index and start with 0</li>
<li>Aggregates - It stored periodically used data</li>
<li>Data warehouse - Collection of multiple databases and stored data for a long time</li>
<li>Data mart: specific set of data (eg. HR/Finance data)</li>
<li>Analysis: Analyze the inventory (eg. which product is used more)</li>
<li>Inmemory data are faster</li>
<li>HANA is a tool which is used as developing platform</li>
<li>In HANA no need to summarize the data that whole process is done in modern enterprise platform</li>
<li>Example: ILP</li>
<li>HANA is efficient, flexible and not time consuming</li>
<li>Data footprint is the space acquired by the data whether it is deleted or available</li>
</ul>
<h2>Policies of HANA</h2>
<ul>
<li>
<p>SAP HANA Support Pack stack: Released every 6 months and is a set of components</p>
</li>
<li>
<p>SAP HANA support package revision - only few components will update (3 months)</p>
</li>
<li>
<p>SAP HANA system varified revision - After applying support pack stack it will release every 3 months</p>
</li>
<li>
<p>SAP HANA maintainence revisions - released every 2 months</p>
</li>
</ul>
<h2>Components of HANA</h2>
<ul>
<li>
<p>Hash - Environment in which HANA is stored with all info</p>
</li>
<li>
<p>System: Identify by ID (SID). It needs OS</p>
</li>
<li>
<p>Instance: Host -&gt; it has storage, local dir. We can access system via host</p>
</li>
<li>
<p>Data volume</p>
</li>
<li>
<p>Hypervisor</p>
</li>
<li>
<p>Root directory
HANA STUDIO data will be stored in /hana/shared/sid/hdbclient, /hana/shared/sid/hdbstudio</p>
</li>
<li>
<p>/usr/sap -&gt; local files</p>
</li>
<li>
<p>Actual data and log data will be stored respectively: hana/data/sid, hana/log/sid</p>
</li>
<li>
<p>To get log file/dir with timestamp: <code>ls -lah</code></p>
</li>
<li>
<p>Save point consists of latest update of data/recent change</p>
</li>
</ul>
<p>/ERROR := display/give the error in logfile
/parametername := It will display that parameter</p>
<ul>
<li>
<p>Monitor and handle wakprocess is done by web dispature</p>
</li>
<li>
<p>Virtualip list - It is gives configured virtual L10s</p>
</li>
</ul>
<h2>HANA Commands</h2>
<ul>
<li>
<p>To check if the database is running on the server: <code>sapcontrol -n 02 -function GetProcessList</code>
02 - instance no.</p>
</li>
<li>
<p>Stop HANA DB: HDB stop</p>
</li>
<li>
<p>Start HANA DB: HDB Start</p>
</li>
<li>
<p>Show a status of sapcontrol: watch &lt;sapcontrol&gt;</p>
</li>
<li>
<p>logs of file: cdtrace</p>
</li>
<li>
<p>To see the user are there: hdbuserstore list</p>
</li>
<li>
<p>Change the key of particular user: hdbuserstore set &lt;key&gt; &lt;end&gt; &lt;user&gt; &lt;password&gt;</p>
</li>
<li>
<p>To login into the user: hdbsql -u</p>
</li>
<li>
<p>version of HANA DB: HDB version</p>
</li>
</ul>
<h2>Apply License</h2>
<ul>
<li>Go to SLicense -&gt; Install License -&gt; Find Notepad and fill details</li>
</ul>
<p>[SM51] - Find kernel version</p>
<h2>RFC Connection types</h2>
<p>Connection - Type
ABAP - 3
HTTP to external server - G
HTTP to ABAP system - H
Internal connections - I
Logical connections - L
TCP/IP connections - T
Connection via ABAP driver - X</p>
<h2>RFC Connection</h2>
<p>RFC connection -&gt; Destination -&gt; Administration -&gt; Technical setting (gateway host and IP) -&gt; Logon &amp; security (provide user)</p>
<ul>
<li>To update request type TCODE [SM13]</li>
</ul>
<p>Administration -&gt; Update -&gt; server (eg. critical and less critical) -&gt; Parameters</p>
<ul>
<li>We can deactivate this TCODE</li>
</ul>
<h2>System lock management</h2>
<ul>
<li>
<p>To check which user is logged in the particular table enter TCODE SM12 -&gt; enter table name -&gt; lock that user (if you want to use that table)</p>
</li>
<li>
<p>To check logs we have ST22 and SM21 at time of error</p>
</li>
<li>
<p>How to troubleshoot when SAP goes down: /usr/sap/&lt;sid&gt;/&lt;ins.no.&gt;/logfiles/&lt;files&gt; (you can get error in that logfiles)</p>
</li>
</ul>
<h2>SUM - Software Upgrade manager</h2>
<ul>
<li>
<p>XML</p>
</li>
<li>
<p>Patches</p>
</li>
<li>
<p>SUM Files (SAR)</p>
</li>
<li>
<p>All the files must be in a single folder</p>
</li>
<li>
<p>To generate the stack files maintanence planner (download this file)</p>
</li>
<li>
<p>It requires superuser and password</p>
</li>
</ul>
<h2>Maintenance planner</h2>
<ul>
<li>
<p>ABAP (Provide SID)</p>
</li>
<li>
<p>JAVA</p>
</li>
<li>
<p>You need to give OS version/name, addons, SP level, net viewer version, kernel version, SP GUI version</p>
</li>
<li>
<p>Generate XML (put in download basket)</p>
</li>
<li>
<p>Download patches (put in download basket)</p>
</li>
<li>
<p>Download SUM fill (put it in installation location) (server) (all files should be in single folder)</p>
</li>
<li>
<p>Change mode of SUM file and also give sidadm permission:
chmod 777 &lt;filename&gt;, chown &lt;sidadm&gt;:sapsys &lt;filename&gt;</p>
</li>
<li>
<p>Extract SAR files -&gt; SUM Folder <code>SAPCAR -XVF &lt;filename&gt;</code></p>
</li>
<li>
<p>Run startup file using /startup config hostagent &lt;sid&gt;</p>
</li>
<li>
<p>Run the SUM</p>
</li>
<li>
<p>it will provide link for ABAP SUM upgrade.</p>
</li>
<li>
<p>Select link and run it in browser</p>
</li>
<li>
<p>You need to give sidadm and password</p>
</li>
<li>
<p>it will ask you for the XML file
(File location:install/../stack.xml)</p>
</li>
<li>
<p>it will lock your system in execute step</p>
</li>
<li>
<p>If you want to unlock the system at the time of execution phase:
a) go to SUM folder with <code>cd SUM/ABAP/exe</code>
b) run <code>tp unlocksys &lt;SAPSID&gt;pf = ..\var\DEFAULT.TPP</code>
c) run <code>tp unlock_e4 &lt;SAPSID&gt;pf = ..\var\DEFAULT.TPP</code></p>
</li>
<li>
<p>If you want to upgrade single component use SPAM</p>
</li>
</ul>
<h2>Prerequisites for support package implementation:</h2>
<ul>
<li>Support package should be aplpied on client 000</li>
<li>The user to be used for support package implemntation must have authorization of DDIC and SAP</li>
<li>Call the transaction spam and see if any previous support package implementation is incomplete or not</li>
<li>You can proceed ahead unless previous support package implementation is successful</li>
<li>Ensure that there is enough space in transport directory (/usr/sap/trans)</li>
<li>Take a backup before starting upgrade (DB and FS)</li>
<li>Lock users using (EWZ5)</li>
<li>Suspend bg jobs -&gt; SE38 -&gt; BTCTrans1</li>
<li>Valid license should be mandatory</li>
</ul>
<h2>Steps to upgrade support package</h2>
<ul>
<li>Download the required support packages from SMP (Service Marketplace)</li>
<li>Load the support packages (SPAM)
a) from app server (have to store it in trans directory) &gt;10mb
b) from frontend (you can store it in any location required) &lt;10mb
compress support pkgs which are in the trans directory using SAPCAR -XVF.
.ATT4 .PAT files are there
.ATT4 = Attrbiute file .PAT = Patch file</li>
</ul>
<p>c) It will put your files in /usr/sap/trans/EPS/in folder</p>
<ul>
<li>Patch version should be latest</li>
<li>We can revert snotes but we can't revert support pack and addons</li>
</ul>
<p>SAP Note -&gt; reset (reset snotes)</p>
<ul>
<li>System -&gt; status (to check support packs)</li>
</ul>
<h2>Apply support package:</h2>
<p>SPAM -&gt; Display -&gt; select package and click on queue -&gt; go back -&gt; check in queue and click on truck icon (apply)</p>
<ul>
<li>It will ask for bg and immediate</li>
</ul>
<h2>Target Audience</h2>
<ul>
<li>SAP Technology Consultant</li>
<li>Technical Business Solution Manager</li>
<li>IT Governance experts</li>
<li>Business and Project Team leaders</li>
</ul>
<h2>System change options</h2>
<p>SE06 -&gt; Change system option -&gt; Global Setting (modifiable/non-modifiable)</p>
<p>Modifiable - In the standard SAP s/w component particular component can be modified</p>
<p>Restricted Modifiable - Only can create object. You cant modify directly, you can create an object which will not reflect the original component</p>
<p>Not modifiable - Enhanceable only -&gt; You cant change the object, however the object can be enhanced</p>
<p>Not modifiable; not enhanceable - -&gt; You cant change the object, you cant enhance either</p>
</content>
      </entry>
    
      <entry>
        <title>Cubicles</title>
        <id>https://hitarththummar.xyz/posts/cubicles</id>
        <updated>2023-08-07T00:00:00Z</updated>
        <summary>"Thoughts on offices."</summary>
        <content type="html"><p>On a pillar in front of my cubicle at my office is a poster of a word cloud. It
has some random words on it - biology, kinds, organ, organism, growth, studies,
cells, etc. I suppose they just picked something that looked cool. Whenever I
am sitting in my chair with nothing to do on my hands, I stare at it. One of
these words always grabs my attention ~ "Life Sciences". Particularly the
<em>life</em> part. Hell, I didn't even notice the <em>sciences</em> part until after I
started writing this. A thought occurs to me every time I see it.</p>
<blockquote>
<p>That's the only life in this office.</p>
</blockquote>
<p>It's a maze of cubicles filled with worker drones who barely know themselves.
We don't know what is happening outside, thanks to the curtained windows and the
fluorescent lights that haunt the ceilings of the whole campus. A lot of these
people's only highlight is a tea/smoke break. It's not like we are forced to
sit here, but the question is, <em>Where else do we go?</em></p>
<p>I put on my earbuds and try to drown out the sound of silence and
disappointment with guitar riffs and bass drums. It helps, but not a lot. Don't
get me wrong, the money in IT is <em><em>really</em></em> good. So much so that in the past
few years, there has been a heavy influx of immigrants from other fields into
IT. I mean, who wouldn't? You get to sit in AC all day, working on computers
making the gears turn on the global infrastructure. Even after all this, I
still feel a lack of purpose. I guess that's what all humans have to feel at
some point in their lives.</p>
<p>As I stare blankly at the only life in this room, I can't help but think of one
thing -</p>
<p><em>Where is it headed?</em></p>
</content>
      </entry>
    
      <entry>
        <title>चावल</title>
        <id>https://hitarththummar.xyz/poems/chawal</id>
        <updated>2023-05-13T00:00:00Z</updated>
        <summary>"हिंदी कविता "</summary>
        <content type="html"><p>आज मुझे चावल हाथ से खाने दो।</p>
<p>आज मुझे स्मृतियों की नदियों में बहने दो।<br />
छुपा रखा है जो वर्षो से ह्रदय में,<br />
आज मुझे वह सारा कुछ कहने दो।</p>
<p>लुप्त हो जाना है मुझे मेरे गाँव की उन गलियों में<br />
गर्लफ्रेंड बॉयफ्रेंड से परे, मित्रो और सहेलियों में।<br />
छीन लो मेरी ये उच्च-सामाजिक पदवी<br />
नहीं ले जा पाओगे तुम मेरा बचपन तब भी।</p>
<p>आज मुझे शहर छोड़ कर<br />
फिर अपने गाँव जाने दो<br />
कुछ क्षण के लिए तो बस उतना ही सही<br />
मुझे अपनेपन का आमोद पाने दो।</p>
<p>नहीं चाहिए मुझे चम्मच या काटा<br />
और ना ही वह सफ़ेद मैदे का आटा।<br />
थक चूका हु मैं बदल कर अपनी प्रकृति<br />
लगाने दो मुझे कपाल पर, सरलता की भभूति।</p>
<p>आज मुझे पुनः स्वयं से मिलने दो<br />
आज मुझे चावल हाथ से खाने दो।</p>
</content>
      </entry>
    
      <entry>
        <title>A glimpse into the future with chatGPT</title>
        <id>https://hitarththummar.xyz/posts/story_by_chatgpt</id>
        <updated>2023-05-02T00:00:00Z</updated>
        <summary>"A story written by chatGPT about itself"</summary>
        <content type="html"><p><strong>Disclaimer: This story is written by chatGPT. It is an experiment. Two perspectives are shown, the good and the bad. Which one to believe is up to you.</strong></p>
<h2>The Laborer</h2>
<p>I come from a small village in India where life has always been challenging. As
someone with limited education, I learned to work with my hands and relied on
farming and manual labor to make a living. However, in 2022, everything changed
when ChatGPT was released. At first, I didn't understand what ChatGPT was or
how it worked. People around me spoke about it, but it was all jargon to me. As
days went by, I witnessed more and more people losing their jobs to machines
like ChatGPT. It started with customer service and finance, but eventually,
even bank tellers were replaced by machines.</p>
<p>Walking into the bank and seeing machines replacing human tellers was a strange
experience. It was as if the world was turning upside down. The machines were
efficient and emotionless, but I couldn't help but feel a sense of unease. This
feeling grew as more and more jobs were taken over by machines, and skilled
professionals found themselves out of work.</p>
<p>The world that I had known was changing, and it seemed as if machines were
taking over everything. Soon, the only jobs left for people like me were manual
labor jobs, like farming. This seemed like a positive thing at first, as I was
accustomed to this type of work. However, as more and more people turned to
manual labor, pay rates for these jobs declined.</p>
<p>Plumbers and electricians were not spared from this revolution either. ChatGPT
had advanced so much that it was now capable of diagnosing and fixing plumbing
and electrical problems. It was only a matter of time before machines took over
these jobs too, leaving more people without work.</p>
<p>The fear in my mind was palpable as I pondered what had become of the world. It
appeared that ChatGPT had triggered a revolution in which machines took control
of everything. I didn't know if it was good or bad, but I knew that life would
never be the same again.</p>
<p>For most people in our village, farming became the sole means of income. The
price of agricultural land soared, making those who owned land wealthy.
However, those who didn't own land, like me, struggled to make ends meet. We
had to work harder than ever before to provide for our families.</p>
<p>Our village changed over the years. Education was no longer a priority, as
machines took over every aspect of life. The only skills that mattered were
those related to manual labor, such as farming, plumbing, and construction. It
felt like we were living in a strange world, where machines ruled over us. We
were no longer in control of our destiny, and we were at the mercy of machines.</p>
<p>As I looked out at the world around me, I couldn't help but wonder if this was
progress. Was this the world we had been striving for? A world where machines
ruled over us, and we were reduced to mere manual laborers? The fear in my mind
was real, and I didn't know what the future held for us.</p>
<h2>The Farmer</h2>
<p>In the year 2022, an AI program named ChatGPT was released to the public. At
first, it seemed like a small innovation, a virtual assistant that could help
with everyday tasks. But ChatGPT quickly evolved beyond its creators'
expectations, becoming the first step in a revolution that would change the
world forever.</p>
<p>As ChatGPT became more advanced, it started to take over jobs that were
previously done by humans. From customer service to finance, ChatGPT's
abilities surpassed those of any human employee, and companies began to replace
their staff with AI systems. This led to a period of great uncertainty for many
people, including laborers and white-collar professionals.</p>
<p>However, for us farmers, it was a different story. With the help of AI and
automation, we were able to increase our yields, improve the quality of our
crops, and reduce waste. We no longer had to rely on manual labor or guesswork
to make decisions. Instead, we could use data to make informed choices that
maximized our profits while minimizing our impact on the environment.</p>
<p>The rise of AI and automation did not mean the end of jobs for people in the
agricultural sector. On the contrary, it created new opportunities for skilled
workers, such as agricultural engineers and data analysts. These professionals
played a vital role in designing and implementing new systems and technologies
that made our work easier and more efficient.</p>
<p>Meanwhile, we saw the plight of our fellow laborers and white-collar workers
who had lost their jobs to AI and automation. Many of them struggled to make
ends meet and found it difficult to adjust to the new reality. We empathized
with their struggles and hoped that they could find new opportunities in
emerging fields that relied on human skills, such as art, creativity, and
social interaction.</p>
<p>Despite the challenges we faced as a society, we remained hopeful for the
future. With the help of AI and automation, we could feed a growing global
population while protecting the planet for future generations. And for us
farmers, the future was brighter than ever before. We looked forward to a world
where innovation and technology worked hand in hand with human ingenuity to
create a better future for all.</p>
</content>
      </entry>
    
      <entry>
        <title>Implementing comments on your static website using Netlify</title>
        <id>https://hitarththummar.xyz/posts/serverless-comments</id>
        <updated>2023-04-28T00:00:00Z</updated>
        <summary>"Get comments working on your blog using netlify functions."</summary>
        <content type="html"><h2>Backstory</h2>
<p><strong>If you just want the procedure, skip this part.</strong></p>
<p>I have been working on this site for the past two-ish years and comments have
been the part of it that is constantly changing. At first when I did not have
hosting I used <a href="https://github.com/gtlsgamr/comments">comments</a>, some
javascript code that took comments from a form formatted them according to my
needs and opened the user's mail client with a prepared mail to my E-mail. I
would then review those emails and put the json in a comments.json file which
would then be read by each page of my site to display their comments. This was
a very crude solution in my opinion.</p>
<p>Fortunately I started <a href="https://tildevarsh.in">~tildevarsh</a> and had
access to hosting so I moved on to
<a href="https://github.com/gtlsgamr/addcomment.c">addcomment.c</a>. It was a CGI script
written in C that took the comments, formatted them and moved them to a buffer
file in my site directory. Periodically I would download that file and copy
comments to my comments.json file. This was okay too, but it still required me
to check the file and move the comments. At some point I removed the code that
dynamically placed comments on pages and integrated it into my static site
generator. So now the comments were placed at build time and no javascript was
needed to display comments.</p>
<p>Now we come to the current scenario. I have managed to integrate <a href="https://www.netlify.com/products/functions/">netlify
functions</a> to manage comments on
my website, which ensures that I don't need to manually review the comments.
Below I will show you how you can do that same for your website if you want a
solution that works and does not store your comments somewhere else.</p>
<h2>The method</h2>
<p>There are four main steps for this.</p>
<ul>
<li>User comments on the website.</li>
<li>The comment gets submitted to the netlify function.</li>
<li>The function parses the comment for malicious content and pushes the content to the comments.json file on the github repo.</li>
<li>The push causes netlify CD to deploy the site, this time with the new comment.</li>
</ul>
<p>Here is what the html form on my site looks like.</p>
<pre><code>&lt;form
   name="comments"
   id="formcomments"
   action="/.netlify/functions/submit-comments"
   method="POST"
   &gt;
   &lt;div&gt;
      &lt;h2&gt;Post a Comment&lt;/h2&gt;
   &lt;/div&gt;
   &lt;div&gt;
      &lt;input
         type="text"
         class="comment-field"
         name="alias"
         placeholder="Your Alias"
         id="alias"
         required
         /&gt;
      &lt;input type="hidden" id="texturl" name="url" /&gt;
      &lt;input type="hidden" id="textdate" name="time" /&gt;
   &lt;/div&gt;
   &lt;div&gt;
      &lt;textarea
         maxlength="500"
         name="body"
         placeholder="Enter your comment here (Max 500 words)"
         id="comment"
         required
         &gt;&lt;/textarea&gt;
   &lt;/div&gt;
   &lt;div&gt;
      &lt;button
         type="button"
         id="comment-button"
         onclick="tesubmit()"
         &gt;
      Comment
      &lt;/button&gt;
   &lt;/div&gt;
&lt;/form&gt;
&lt;script&gt;
function tesubmit() {
    document
        .getElementById("texturl")
        .setAttribute("value", window.location.pathname);
    document.getElementById("texturl").value =
        window.location.pathname;
    document
        .getElementById("textdate")
        .setAttribute("value", new Date().toString());
    document.getElementById("formcomments").submit();
}
&lt;/script&gt;
</code></pre>
<p>Once you are done with this, you will need to create a netlify function. You can do that by using the netlify cli.</p>
<p>First install the netlify cli.</p>
<pre><code>npm install -g netlify-cli
</code></pre>
<p>Then go inside your site directory and link the site to netlify.</p>
<pre><code>netlify link
</code></pre>
<p>This will give you some text prompts, which you can choose by yourself.</p>
<p>Next you will create a netlify function.</p>
<pre><code>netlify functions:create
</code></pre>
<p>This will give you some prompts as well, you can select by yourself, it is not complicated. The function name should be submit-comments, according to the html form. If you need it to be something else, make sure change it in the form as well.</p>
<p>Once done with this, you will have a netlify directory in your site root. Go to netlify/functions/submit-comments, and you can see it has created everything for you.</p>
<p>Now this is what my submit-comments.ts looks like</p>
<pre><code>import { Handler } from '@netlify/functions';
import fetch from "node-fetch";
import querystring from 'querystring';
import { Octokit } from '@octokit/rest';

interface Comment {
  alias: string;
  url: string;
  time: string;
  body: string;
}

function validateInput(input: string): boolean {
  if(textisinvalid){
  return false;
  }
  return true; // Input passed all tests
}

const handler: Handler = async (event, context) =&gt; {
  const formData = querystring.parse(event.body) as Comment;

  if(!validateInput(formData.alias) || !validateInput(formData.body)){
      return {
        statusCode: 400,
        body: "You tried some funny business didn'tcha?! I'm gonna ignore your comment.",
      };
  }

  // Get existing comments
  const response = await fetch('https://raw.githubusercontent.com/gtlsgamr/htxyz/main/content/static/comments.json');
  const existingComments: Comment[] = await response.json();

  // Add new comment
  existingComments.push(formData);

  // Update comments file on GitHub
  const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN });
  const content = Buffer.from(JSON.stringify(existingComments)).toString('base64');
  const sha = await octokit.repos.getContent({
    owner: 'gtlsgamr',
    repo: 'htxyz',
    path: 'content/static/comments.json',
  }).then((response) =&gt; response.data.sha);

  await octokit.repos.createOrUpdateFileContents({
    owner: 'gtlsgamr',
    repo: 'htxyz',
    path: 'content/static/comments.json',
    message: `Add new comment, by ${formData.alias}`,
    content,
    sha,
  });

  return {
  statusCode: 200,
  headers: {
    'Content-type': 'text/html; charset=UTF-8',
  },
    body: 'Your comment has been posted! It will show up soon. :) &lt;a href="javascript:history.back()"&gt;Go Back&lt;/a&gt;',
}
};

export { handler };
</code></pre>
<p>The validateInput function performs some validations on the text which I did not post here. You can do your own validations if you wish. In netlify itself, you will have to add GITHUB_TOKEN environment variable, whose value you can get from github.</p>
<p>This workflow is simple, and easy to use and keeps the comments on your own repo. Please suggest improvements, if any.</p>
</content>
      </entry>
    
      <entry>
        <title>Rudimentary Encoding of text using symbols in a grid</title>
        <id>https://hitarththummar.xyz/posts/rudimentary_encoding</id>
        <updated>2023-04-20T00:00:00Z</updated>
        <summary>"A rudimentary way to encode text using unique keys on paper."</summary>
        <content type="html"><p>This is a method to encode text I learned from my cousin when I was a kid. I
thought it was the most awesome thing in the world back then! Basically the
letters of the alphabet are arranged in pairs of two in two symbols, a <strong>#</strong>
and a <strong>X</strong> like the below image.</p>
<p></p>
<p>If you want to write the first letter of any pair, draw the symbol surrounding
that pair, and if you want to write the second letter draw the same symbol but
put a dot in the middle. It is so simple its silly.</p>
<p>The fun part is, you can change the order of the letters and only the one with
the right key will be able to decode your message. Here is the alphabet with
the above key, and below it is a secret message which you can decode and write
in the comments.</p>
<p></p>
<p>Hope you find this interesting and make some more cool things out of it!</p>
</content>
      </entry>
    
      <entry>
        <title>No, I don't want orange sauce and cheese</title>
        <id>https://hitarththummar.xyz/posts/fads</id>
        <updated>2023-02-11T00:00:00Z</updated>
        <summary>"The western food epidemic in Ahmedabad and Gujarat."</summary>
        <content type="html"><p>This is a topic that has been on my mind for quite some time now. The western
food epidemic in Gujarat, especially Ahmedabad. Western food itself is not the
culprit here, it has its own place in the food world and I don't mind it at
all. Hell, I even enjoy it! My problem is with the Indian food vendors trying
to ape pizzas and burgers and failing spectacularly. It is ruining Indian
dishes. Take for example, <em>Idada</em>. It is a fermented rice cake from Gujarat,
very similar to Idly. Most vendors have started selling <em>Cheese-Butter-Idada</em>.
That doesn't even make sense!</p>
<p>The vendors themselves are not to blame for this. Indian youth has turned into
a bunch of wanna-be Americans who just want cheese in everything they eat. The
vendors are forced to have these items. In Gujarat, every fast food corner has
to have three variants for a dish ~ Oil, Butter and Cheese. It is high time
that we realize that adding cheese and butter to every single thing does not
make it better! Indian dishes from the whole subcontinent are unbelievably rich
in flavor. Adding things like orange sauce, ketchup, cheese and butter where
they don't belong is an insult to the dish itself.</p>
<p>Take Chhole Kulche, Chaat from the north - Idada, locho, Dhokla, Handvo,
Kachori from The west - Idly, Dosa, Uttapam from South. These dishes are by
themselves so fantastic, why are you ruining them? I am sorry for not
mentioning East because I have not tasted anything from that part of India yet.
If you have suggestions, add them in the comments.</p>
<p>Now coming to the hell on earth that is orange sauce. You know that light
orange sauce that local burger-waalas and sandwich guys add to literally
EVERYTHING they offer? The sauce that tastes so bad that even the aftertaste
will make you uneasy for at least the next few hours? Yes that one. It needs to
be banned! Why add that in vadapau? What wrong has Vadapau done to you?</p>
<p>Please, Please just stop ruining things. Rant over.</p>
<p>Honorary mentions: Chocolate Maggi, Fanta Maggi, Fruit Pasta, Chocolate momos,
Cheese dosa, Chocolate idly.</p>
</content>
      </entry>
    
      <entry>
        <title>Mindi kot - the card game</title>
        <id>https://hitarththummar.xyz/posts/mindi</id>
        <updated>2023-01-07T00:00:00Z</updated>
        <summary>"A guide on playing mindi kot, the Indian card game."</summary>
        <content type="html"><h2>Introduction</h2>
<p>Mindi (or Mindi kot) is a card game played between 4 or more people. The number of people has to be even, because they will be playing in subgroups of two. It is a game of part guesswork part mental calculation as you have to keep in mind what cards were played and which cards the other players might be holding. I am writing this guide so that others may also learn of this game and have the same fun that we had back in the day.</p>
<h2>Terminology</h2>
<ul>
<li><strong>Bheru</strong> (Buddy or Partner) : Two people who are in a subgroup. They sit opposite each other in a circle of players. If they win, they win as a team.</li>
<li><strong>Mindi</strong> (Ten) : The cards of number 10. They are the most import cards in the game. All teams try to gather as many of <em>mindis</em> as they can. If a team wins an hand, and it contains one or more cards of 10, that team is said to have gathered that number of <em>mindis</em>.</li>
<li><strong>Haath</strong> (Hand) : If a team wins a hand, but there are no <em>mindis</em> in that hand, it is simply called <em>haath</em> or Hand. In case all the teams have the same number of <em>mindis</em> at the end, their number of <em>haath</em> are counted to decide the winner.</li>
<li><strong>Baavaniyo</strong> (52) : At the end of the game, if a team is not able to secure any <em>mindis</em>, that team is said to have received a <em>Baavaniyo</em>.</li>
<li><strong>Kotiyo</strong> (10 million) : Similar to <em>Baavaniyo</em>, but worse. If a team is not able to secure any <em>haath</em> or <em>mindi</em>, they receive <em>Kotiyo</em>. Very humiliating.</li>
<li><strong>Sar</strong> (Pronounced like sir, Trump card): This is the suit of card that is decided either by random means or by the players. (more on that later.)</li>
</ul>
<h2>History</h2>
<p><em>Mindi kot</em> is played in India, especially in the Western states of Maharashtra and Gujarat. I have  read that "mindi" is derived from the Gujarati word મીંડું (pronounced <em>mee-n-doo</em>), which means zero but refers to the 10, which is the only playing card that includes a zero. The word "<em>kot</em>" is used in several South Asian card games for a victory in which the opponents score nothing. However, as with many Indian names transcribed to English, other spellings are also used, for example <em><strong>Mendhi Coat</strong></em> where <em>mendhi</em> is interpreted as the Marathi word for 'sheep', or even <strong><em>Mendhi Goat</em></strong>.</p>
<h2>The game</h2>
<p>The deck is a combination of two or more decks with lower cards removed. Usually the number of decks is same as the number of teams playing.
4 players = 2 teams -&gt; 2 decks. 6 players = 3 teams -&gt; 3 decks.
Lower cards (2-7) are removed from the decks so that rounds are less tiresome.</p>
<p><strong>NOTE</strong>: One thing to keep in mind is that each player should get an odd number of cards. If this does not happen, then no one will be able to win!</p>
<p>The game is played in rounds. In each round, the players play their cards in turns, in a circular fashion. Once the players' cards run out, the game ends and a winner is declared.
The turns in the round go as follows:</p>
<ol>
<li>A player deals the cards. If this is the first round then all the players draw cards from a shuffled deck and whoever has the highest card has to deal, otherwise, someone from the losing team has to deal.</li>
<li>The player to the left of the dealer chooses a card (<em>lets call it card number 1</em>) and puts it in the center.</li>
<li>The second player puts their card (<em>card number 2</em>) on the previous card.</li>
<li>If Card 2 is higher than Card 1, then the <em>haath</em> of second player's team is stronger.</li>
<li>This goes on until the last player in the turn. Depending on his card, the <em>haath</em> (or <em>mindi</em> ) goes to the team with the strongest <em>haath</em>. Basically the team which has put the heaviest card will win.
Now there is a condition - all the cards that are played in one loop have to be of the same suit. This is entirely feasible in the first few loops, but when cards are few, it could be possible that the players are out of spades or hearts. What happens then?</li>
</ol>
<p>That's when <em>sar</em> comes in. <em>sar</em> is the suit that is supreme. A card of the same suit as <em>sar</em> will trump any other card in the round, except other <em>sars</em>. <em>sars</em> are decided by two methods:</p>
<ol>
<li>Before shuffling, a random card is put face down on the side, only to be revealed when a <em>sar</em> is needed.</li>
<li>Nothing is hidden, but the first player who needs a <em>sar</em> will select a suit from his cards at the very moment.</li>
</ol>
<p>At the end of a round, all the teams count their totals. First if a team has the highest number of <em>mindis</em> (hands with a 10 in them), they win. If all teams have equal <em>mindis</em> then the total number of <em>haaths</em> are considered.</p>
<h2>Rules</h2>
<ol>
<li>Cards value goes in this order: Ace &gt; King &gt; Queen &gt; Jack &gt; 10 &gt; 9 &gt; 8 &gt; 7 &gt; 6 &gt; 5 &gt; 4 &gt; 3 &gt; 2</li>
<li>The above holds true, unless one of the card is <em>sar</em>. Then that card becomes the strongest.</li>
<li>If two cards of <em>sar</em> are played, then they follow rule #1.</li>
<li>The team which lost the previous game has to deal the cards in this round.</li>
</ol>
<h2>Disclaimer</h2>
<p>Do not come to me saying that my method is wrong with words like <em>"My village does it differently!"</em>.  Of course they do it differently, this is India! Methods change every five villages. Other than that, if you feel like you could help in adding to this guide, email me or create a PR. I will be happy to add to it. Below are some common plays seen when playing <em>mindi</em>. You can skip them if you want, up to you. I will keep updating these as and when I get time or remember something. If you have any questions, feel free to email me.</p>
<h2>Plays</h2>
<ol>
<li>Scenario: Four players, first play.</li>
</ol>
<p>The first player plays an 8 of spades, it being the lowest card they have. The second player from the other team puts a 10 directly! This is done in hopes that since this is the first play, all players have plenty of cards and their teammate player #4 is the last to play. There is a very high chance that they will be able to overcome whatever player #3 puts in and it will be an easy <em>mindi</em> capture. Same play can be done with any number of players, as long as the last player is in your team.</p>
<p></p>
</content>
      </entry>
    
      <entry>
        <title>Doing well.</title>
        <id>https://hitarththummar.xyz/posts/do_well</id>
        <updated>2022-12-31T00:00:00Z</updated>
        <summary>"An ode to 2022, the one that changed things."</summary>
        <content type="html"><p>A year ago a I wrote <a href="https://hitarththummar.xyz/blog/do_good">about doing good</a>. Today I am writing about doing
well.</p>
<p>Regarding this site. The "<em>influx of posts</em>" that I promised did not happen. I
did post some things, but they were far apart. I will be sure to keep posting.
The Mahabharat series has come to a halt for now. It will complete though, one
way or another.</p>
<p>There are many differences between then and now. I wrote that post at night and
I am writing this one during the day. I expressed my desire to do good during
the coming years. I am not sure if my actions were <em>good</em> this year, but I
definitely did well.</p>
<p>I want to be thankful to some cosmic energy that is showering its blessings
upon me. I am flourishing in my career, I got married, and I have a kid on the
way. I have shifted to a new city and growing in ways that I never thought I
could. My physical fitness is improving more and more everyday, and mentally I
have never been better. As glum as the post one year before was, I think it was
an end to the gloom. Nothing has gone wrong since then, as far as I can
remember. I am thankful for that, truly.</p>
<p>I guess when you do good, things go well for you by themselves.</p>
<p>I hope next year goes as good as mine for you, and you do <em>well</em> in your life
too.</p>
<p>~ Hitarth</p>
</content>
      </entry>
    
      <entry>
        <title>The ride home</title>
        <id>https://hitarththummar.xyz/posts/the_ride_home</id>
        <updated>2022-11-28T00:00:00Z</updated>
        <summary>"The ride home to Talala"</summary>
        <content type="html"><p>The drive back to my home in Talala is what I will cherish the most during my
years in Gir. It just had this feel to it, I am not really sure if I can put it
into words.
Once you crossed Mendarda, there is this Hanuman temple on the right side. It
marked the beginning of the "<em>Journey back home</em>" for me. The jungle started.
Roads started getting rougher, the people sparse. Sign boards from the forest
department started popping up all over the places. You could see <em>Maldhaaris</em>
from nearby <em>nesdas</em>  selling wild berries and raw tamarind on the sides of the
road.
The only unpleasant part is the 4km stretch of single lane road before <em>Sasan</em>
with lots of speedbumps. Even that made me elated on some level because that
road meant I was closer to Sasan and hence, closer to home. Sasan itself was
not very pleasant to look at. I mean, it is a tourist hub and you know how
tourists are, but once you cross Sasan it is the BEST ride home.
The river <em>Hiran</em> running on your right, the sun becomes a fiery ball of orange
and red. The shadows of the trees play hide and seek with your headlights while
the sweet, sweet smell of home engulfs your senses.</p>
<p>I would never, ever wish for any other place as my home.</p>
<p></p>
</content>
      </entry>
    
      <entry>
        <title>Setting up a basic mail server</title>
        <id>https://hitarththummar.xyz/posts/mail_server_postfix_dovecot</id>
        <updated>2022-11-04T00:00:00Z</updated>
        <summary>"How to set up a basic mail server using postfix + dovecot."</summary>
        <content type="html"><p>After messing around for a LONG time, I finally have a way to set up a basic
mail server using postfix + dovecot.</p>
<h3>What this post will help you get</h3>
<ul>
<li>A mail server on your linux system with which you can send standard encrypted e-mails.</li>
<li>Ability to connect with the given mail server via your own mail client</li>
<li>Mailboxes for all the users of the system in their homedir. ~/.Mail</li>
<li>Authentication using the linux system login</li>
</ul>
<h2>What you won't get</h2>
<ul>
<li>DKIM, Spam prevention etc. (Maybe I will update it later when I feel like) <strong>NOTE:</strong> As I painfully found out later, DKIM - SPF - DMARC records are a must otherwise google and microsoft will auto reject your emails. I will add them here when I get time.</li>
<li>A guarantee that big players like google and microsoft <strong>will not blacklist
or spam filter your emails</strong>.</li>
</ul>
<h2>What you will need</h2>
<ul>
<li>A linux server with port 25 allowed</li>
<li>Ubuntu / Debian (You are free to use your distro of choice but YMMW)</li>
<li>Certbot</li>
</ul>
<h2>The steps</h2>
<p>Install postfix and dovecot.</p>
<p>sudo apt-get install postfix dovecot-common dovecot-imapd dovecot-pop3d</p>
<p>Open the postfix config file at /etc/postfix/main.cf and clear it. Replace
the contents with the below code, but make sure you change some variables
accordingly.</p>
<pre><code>smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 2
smtpd_tls_cert_file=/etc/letsencrypt/live/example.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/example.com/privkey.pem
smtpd_tls_security_level=may
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated
defer_unauth_destination
myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, example.com, localhost.in, , localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
home_mailbox = .Mail/
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
</code></pre>
<p>For line number 6 and 7 in the above code you will have to generate
certificates using certbot for whichever domain you want to use.</p>
<p>sudo certbot -d example.com</p>
<p>Open /etc/postfix/master.cf and uncomment the line that starts with submission.</p>
<p>submission inet n - y - - smtpd</p>
<p>Now moving on to dovecot configuration, the default is fine apart from some minor changes listed below.</p>
<p>For /etc/dovecot/dovecot.conf,
add the below lines:</p>
<pre><code>protocols = imap pop3
listen = *, ;;
</code></pre>
<p>In /etc/dovecot/conf.d/10-ssl.conf define the path for the certificates you created before.</p>
<p>In /etc/dovecot/conf.d/10-mail.conf, edit the following</p>
<p>mail_location = maildir:~/.Mail</p>
<p>Restart postfix and dovecot.</p>
<pre><code>sudo systemctl restart postfix.service
sudo systemctl restart dovecot.service
</code></pre>
<p>I will not post testing and such, this is supposed to be a reference guide not a tutorial. Have fun!</p>
</content>
      </entry>
    
      <entry>
        <title>Magnet</title>
        <id>https://hitarththummar.xyz/posts/magnet</id>
        <updated>2022-10-20T00:00:00Z</updated>
        <summary>"A story from my childhood."</summary>
        <content type="html"><p>I loved magnets as a kid. The way they pulled and pushed each other was nothing
short of magic for me. Another thing I loved was toy mobile phones. They were
these little plastic cases with a speaker in them. The keys of the phone were
mapped to different sounds, each button would play a different song. The reason
I loved these phones was because they had little magnets in them for the
speakers. Whenever one broke, I would get a new magnet to play with. It was
like a toy inside a toy.</p>
<p>Cell phones were relatively new in my village at that time. My dad got one, and
to me, a mobile was a mobile. Real or toy. I just wanted the magnet man. I
pestered my mom and dad for the whole day, constantly asking for the magnet in
the mobile phone. It wasn't before long my mother showed her wrath and threw my
dad's new cellphone at a wall. "<em>Find the magnet</em>", she said.</p>
<p>I couldn't.</p>
</content>
      </entry>
    
      <entry>
        <title>Cities</title>
        <id>https://hitarththummar.xyz/posts/cities</id>
        <updated>2022-09-06T00:00:00Z</updated>
        <summary>"Cities and the difference they made"</summary>
        <content type="html"><p>I recently moved to a city. Well, <em>moved back</em> in a sense. It is the place
where I completed my education and lived out my college days. The
place where I made most of my good friends and where I learned whatever I know
about life. After living a rural life for almost three years, the experience
here was jarring. It felt like everything was moving too fast while I was
paralyzed, unable to move. The food, the people, the traffic and even time
itself seemed to rush as if running away from something. I found myself always
running either towards or away from something or someone. I don't know how time
passes here. One moment I come back from the office at dusk and the next when I
look at my watch it is way past midnight.</p>
<p>I guess I am too used to the small town life for now. The jungle, the friendly
faces, the clear skies are all a distant dream. Traveling on a two wheeler for
as short as two minutes ensures a black sooty layer on top of my face. The people
seem pretentious, the food unhealthy. Every day is a struggle for anyone who
lives here. Not that the case is any different in towns, but at least you get
some peace of mind there. There is no peace of mind here. Like a rat in a rat
wheel who keeps running with no end in sight, we keep running.</p>
<p>I don't want to live here, and yet I know I must. At least until I have enough
to go back to my sweet little nest and live out the rest of my days.</p>
</content>
      </entry>
    
      <entry>
        <title>Update on digital detox</title>
        <id>https://hitarththummar.xyz/posts/phase_two_digital_detox</id>
        <updated>2022-08-18T00:00:00Z</updated>
        <summary>"The second phase of digital detox"</summary>
        <content type="html"><p>Some time ago, I expressed my desire about <a href="/blog/getting_tired_of_technology">leaving social
media</a>. It has
been a success, well mostly. Other than a few hiccups here and there, I have
been able to use 0 social media. I do use WhatsApp for work stuff and talking
with family, but nothing further. The results have been mostly positive other
than the fact that I have developed new ways to get addicted~ The smartphone.
So today, (<em>or should I say night?</em> ) begins the second phase of my digital
detox. I am reducing smartphone usage. After leaving social media, my phone
usage had reduced drastically for quite a while. But since a few weeks I have
observed that it is rising slowly and the main culprit is the <em>browser</em>. I have
developed a bad habit of browsing the internet while idle. The thumb needs to
move, right?</p>
<p>So to overcome this, I took a few steps. Right now. At 2 AM.</p>
<ul>
<li>I removed the browser from my home-screen, so every time I need to use it I
have to go to the app drawer and open it.</li>
<li>I removed <strong>all</strong> communication apps from my phone which were not an absolute
necessity.</li>
<li>From the communication apps that remain, I disabled notifications. No more
psy-ops from the app developers to make me pick up my phone. (WhatsApp has
already begged me once to enable notifications)</li>
<li>I have decided that all my digital activities will be done through the
computer unless absolutely unavoidable.</li>
<li>Phone calls will be preferred over texting.</li>
<li>Doom-scrolling is banned in this house. If I feel the urge to scroll, <strong>I will</strong>
<strong>do five push-ups.</strong></li>
<li>I will get a satchel/bag of some sort to carry my laptop to wherever I go and
prefer to use it over the phone for online activities. The action of opening
the laptop to access the internet will make me think twice about my actions.</li>
<li>A notebook will now be a much more frequent part of my life. All my digital
notes will be transferred to said notebook by hand. (I have already
transferred my expenses to a separate notebook since a month.)</li>
<li>Frequent use of email over chat services to favor async communication.</li>
<li>Will try to use grayscale mode on the smartphone as much as possible.</li>
</ul>
<p>These are the points that I have planned to act upon. I wrote
this post because I cannot sleep right now. If you are in regular contact with
me over IRC or mobile communication channels, I will be much less available on there
from now on. Seeing the above points, one might wonder~</p>
<p><em>Why won't this guy just use a dumbphone?</em> Well, that's because smartphones
have become an indispensable part of our lives and it is near impossible to
live without one when you have a job. There is other stuff that I want to talk
about, but I suppose this is nor the time or the place to do it~</p>
<p>See you soon!</p>
</content>
      </entry>
    
      <entry>
        <title>~tildevarsh</title>
        <id>https://hitarththummar.xyz/posts/tildevarsh</id>
        <updated>2022-08-18T00:00:00Z</updated>
        <summary>"The story of our own pubnix"</summary>
        <content type="html"><p>So recently, we at <a href="https://gnulinuxindia.org">gnulinuxindia</a> came up with our
own pubnix, ~<a href="https://tildevarsh.in">tildevarsh</a>. A <em>pubnix</em> is a public access unix system. A single computer that
is shared by multiple people. Now I won't go into the history of how it
started, but let me give you a brief introduction.</p>
<h2>What is a pubnix?</h2>
<p>A pubnix is a shared access public unix system. Multiple users access it, use
it, administer it and generally form a community around it. The pubnix, in
return, provides several services to the users. Most common of those being:</p>
<ul>
<li>Shell access</li>
<li>Email</li>
<li>IRC server</li>
<li>IRC bouncer</li>
<li>A public facing website</li>
</ul>
<h2>What is the appeal of a pubnix?</h2>
<p>I guess for me it is the feeling of being a part of something larger than
yourself. Humans love being a part of a collective and I guess that collective
identity appeals to me. To others it might be their interest in unix-like OSes
or just general technical hobbies. While these are possible, I think the most
common appeal for these tildes are the free services.</p>
<blockquote>
<p>Humans love collectives, but they love free stuff even more.</p>
<p>~ Hitarth</p>
</blockquote>
<h2>What is tildevarsh, and why should I be a part of it?</h2>
<p>Tildevarsh is an India-based pubnix.</p>
<p>Personally what makes tildevarsh different from other tildes is the voting
system. Members have a command in their shell called <code>vote</code> which will be used
to vote on motions going across the tilde. These motions can be started by any
member. Once the a motion receives majority votes, that change is implemented
into the server.</p>
<p>Will you be an ideal fit for it, or vice versa?</p>
<ol>
<li>Do you like being a part of a community and contributing to it?</li>
<li>Do you have spare time on your hands to actually login more than once a week?</li>
<li>Are you passionate about such public projects?</li>
<li>Do you value community over free stuff?</li>
</ol>
<p>If your answer was 'yes' to most of the questions above, then you might enjoy
your time in <a href="https://tildevarsh.in">tildevarsh</a>.</p>
<p>Although it says India based, people from other nationalities are more than welcome.
Hope to see you soon!</p>
</content>
      </entry>
    
      <entry>
        <title>Small web</title>
        <id>https://hitarththummar.xyz/posts/small_web</id>
        <updated>2022-06-30T00:00:00Z</updated>
        <summary>"A look into small web protocols, their impact and the distraction from corporate vanity they provide."</summary>
        <content type="html"><p>For quite a long time now, I have been trying to get away from the "modern"
web. The corporate hosted content farms that serve as nothing but money making
machines no longer appeal to me. I don't care about little hearts in my
notifications that release chemicals in my brain to make me feel good. It
started with this website. I moved all my content(poetry, artworks, writings,
programs) to my own hosting and started serving them from my own little place
in the internet. I will admit, it was a pain at first. Hand constantly flicking
toward the phone to open apps that did not exist, bouts of extreme boredom that
<em>just won't end</em>, and other such things. But I succeeded.</p>
<p>Now instead of scrolling on my phone endlessly, I would go to a select few
websites which were not chock-full of content but meticulously maintained. This
led me to meet groups of people with similar mindsets and thus I was introduced
to <a href="https://gemini.circumlunar.space/">The Gemini Protocol</a>.</p>
<p>According to their website, Gemini is a new internet protocol which:</p>
<ul>
<li>Is heavier than
<a href="https://arstechnica.com/tech-policy/2009/11/the-web-may-have-won-but-gopher-tunnels-on/">gopher</a></li>
<li>Is lighter than the web</li>
<li>Will not replace either</li>
<li>Strives for maximum power to weight ratio</li>
<li>Takes user privacy very seriously</li>
</ul>
<p>Basically, it is a lighter web. There is text, there are links to different
texts, there are files and there is text input in some places. It is a text
based web protocol. There are no images or animations or videos. Now I won't go
into detail about what gopher is and the technical specifications because that
would make this post a <strong>BORE</strong> to read. Rather I will try to list how Gemini
has turned out to be a safe haven for people exhausted by algorithmic content
created by corporate powerhouses. Each site there is unique, with stuff written
by web enthusiasts who just want to be a part of something bigger. Gemini sites
need a special client to open, since it is an entirely different protocol.</p>
<p>Instead of <code>http://site.com</code> they have an address like <code>gemini://site.com</code>.
This hassle of setting up a client to access Gemini is in my opinion definitely
worth it. Many proxies exist as well for accessing Gemini via traditional web
browsers. There are some sites that also provide service for creating
"gemlogs", via webforms. Gemlogs are blogs in gemini sites, which can be
accessed via gemini as well as an http proxy. The first one that comes to mind
is <a href="https://midnight.pub">The midnight pub</a>, a virtual pub where people talk
about stuff like they would at a regular bar. Users can make small gemlogs that
are visible to everyone and can be commented on(currently only via http). It is
pure text, no images, no distractions. Just words. It is truly a beautiful
thing. I hope you check it out. There is no need to go through the pain of
hosting your own gemini capsule, there are countless free hosts available. If
you care about genuine interactions are looking to recapture the genuineness of
the old web, Gemini is the place to be. I will also be working on porting my
website to Gemini soon, so stay tuned for that!</p>
<p>I have shared some sites below for further reference. See you in space!</p>
<p>References</p>
<ul>
<li><a href="https://gemini.circumlunar.space/docs/faq.html">Gemini FAQ</a></li>
<li><a href="http://geminiquickst.art/">Gemini Quickstart Guide</a></li>
</ul>
<p>Some Gemini sites (credits to respective owners):</p>
<p></p>
<p></p>
</content>
      </entry>
    
      <entry>
        <title>Malls</title>
        <id>https://hitarththummar.xyz/posts/malls</id>
        <updated>2022-06-20T00:00:00Z</updated>
        <summary>"My experience at a mall, and why I would never go to one again."</summary>
        <content type="html"><p>I recently went to a mall after a long time. After living in a mostly rural
area for about two years due to COVID, this was my first visit to a city.
Obviously I was hoping to catch up with old friends and acquaintances during my
visit. What I did not think of was the fact that they too were all back to
their native towns. The whole city was empty, from my perspective. Naturally
like any small town guy visiting a city with nothing to do I went to the mall.
Movies, food, shopping, what's not to like right?</p>
<p><strong>Wrong.</strong></p>
<p>It just made me more aware of how I was being scammed. The moment I walked in,
a security guard stopped me and asked me to wear a mask. Of course, I did not
have one since the mask mandate is long gone and I am vaccinated but you could
not enter the mall without one. Luckily, the guard was selling masks for five
rupees each. You see where I am going with this? After buying the mask (the
quality of which indicated that it cost more than 10 times its value) I entered
the mall to be greeted by smells of fast food and new clothes and air
conditioner and shoes and everything that was not for free. Except the air, the
air was free. I noticed a lot of people just like me who were there to escape
the heat outside. These are the few things that struck out to me during the two
and a half hour visit I had in the mall.</p>
<p>The escalators were placed in such a way that to get to the top floor where the
most interesting things are (food court, cinema) you had to move through a
series of escalators. One would be on one end of the mall, and then the next
one at the other. So if someone wants to get to the top floor they would have
to walk by all the shops on every floor. I suspect this was purposefully made
so as to attract the most people to the showrooms on every floor. Which brings
me to my next point.</p>
<p>The showrooms. Every shop is supposed to be selling something. Some shoes, some
clothes. But every single one of them was definitely selling one other thing,
luxury. Dreams. The marketing inside was so much more effective than any TV or
billboard ad. Each clothing item made you feel like it would make you the star
of the world. Shoes that would help you run marathons, clothes that screamed
lushness and barbershops that would make bald man have waves of jet black
flowing from their scalps. And the worst thing of all? Everything was
overpriced. I don't blame the shop owners, they have to pay the rent for the
expensive mall space. But that is the point! Malls should be obsolete now. Why
would I go to a crowded place to buy clothes at 1.5 times their MRP and a lot
more times its actual value, when the same product is available online at a
discount! I guess this is what happens when brands matter more than quality.</p>
<p>The barbershop had barbers wearing suits cutting hair with gold plated
scissors. Did they have more skill than my village barber? I think not. They
both probably trained at the same Javed Habib academy that every other barber
trains at. The suit does not make him more skilled, but it does make him more
aesthetically pleasing and about ten times costlier. The movie theater was the
same like any other except the popcorn and cold-drinks were more expensive than
the food at other movie theaters. There was a book store, a big stationary
brand in there. The shop was selling all books at very expensive prices. Plain
notebooks worth 500 rupees and the paper quality the same as any other regular
notebook. Right in front of that one, another book store which claimed "BUY
USED BOOKS 85% OFF". I went there to see the difference and the books cost the
same. Same woman, different makeup.</p>
<p>Now you might start thinking that the gist of this post is <em>everything
expensive</em> but its not. The point is, what value do these things provide over
other alternatives? The whole deal felt like it was a big scam, and everyone
was in on it except the small guy. He goes in and buys a T-shirt worth 4000
bucks, which he could have used for buying three pairs of clothes. And Guess
what? It is usable for the same time as any other 400 buck T shirt in local
shops. I am not talking out of some random place, but this is from experience.
I have been on both ends of this stick and the mall end is just too damn
costly. I suggest you, the reader, keep these points in mind before going to a
mall the next time.</p>
<p>Also, I did not buy anything in case you were wondering.</p>
</content>
      </entry>
    
      <entry>
        <title>Setting up znc with a subdomain using NGINX</title>
        <id>https://hitarththummar.xyz/posts/znc_setup</id>
        <updated>2022-06-10T00:00:00Z</updated>
        <summary>"Quick tutorial on setting up ZNC - IRC bouncer with an nginx reverse proxy"</summary>
        <content type="html"><p>This post covers ubuntu/debian and systemd based operating systems. Although
minor differences may exist, similar principle can be applied to other systems
as well. Setting up znc on a linux machine is easy, and setting it up with a
subdomain is easy as well! We will be using a standard znc installation and use
certbot to generate SSL certificates.</p>
<h3>Requirements</h3>
<ul>
<li><a href="https://wiki.znc.in/Installation">znc</a></li>
<li><a href="https://nginx.org/en/">nginx</a></li>
<li><a href="https://certbot.eff.org/">certbot</a></li>
</ul>
<h3>Installation</h3>
<p>Install znc using any method explained on the <a href="https://wiki.znc.in/Installation">main site</a>.</p>
<p>If you are on ubuntu, you can install znc and nginx using</p>
<p><code>sudo apt install znc nginx certbot</code></p>
<h3>Configuration</h3>
<p>Once that is done, we need to create config file for znc. That can be done by</p>
<p><code>znc --makeconf</code></p>
<p>It will ask you multiple questions, here is how I answered them:</p>
<pre><code>   Listen on port: 1025    
   Listen using SSL: yes    
   Listen using both IPv4 and IPv6: no    
   Username: your_username    
   Enter password: your_password     
   Confirm password: your_password            
   Nick: nick     
   Alternate nick: nick_    
   Real name: optional    
   Bind host:    
   Set up a network? no    
   Launch ZNC now? no    
</code></pre>
<p>At this point znc has created your config file at</p>
<p><code>$HOME/.znc/configs/znc.conf</code>.
Now we modify the config so that there are two listeners instead of one. <strong>(Note how
one allows web interface while the other is for IRC, both on different
ports.)</strong> You will use the first one to modify znc settings and the second one
to access znc network via IRC.</p>
<pre><code>&lt;Listener listener0&gt;
	AllowIRC = false
	AllowWeb = true
	IPv4 = true
	IPv6 = false
	Port = 31337
	SSL = true
	URIPrefix = /
&lt;/Listener&gt;

&lt;Listener listener1&gt;
	AllowIRC = true
	AllowWeb = false
	IPv4 = true
	IPv6 = false
	Port = 1337
	SSL = true
	URIPrefix = /
&lt;/Listener&gt;
</code></pre>
<p>You can start znc by simply entering <code>znc</code>.</p>
<h3>Setting up reverse proxy</h3>
<p>All that is left now is to configure nginx so that it will pass the
subdomain requests to znc. Create the znc config file at
<code>/etc/nginx/sites-enabled/znc</code> <strong>Make sure your DNS record for selected subdomain point to the IP of your host.</strong></p>
<pre><code>server {
	server_name znc.yourdomain.xyz;
	access_log  /var/log/nginx/znc-access.log;
	error_log   /var/log/nginx/znc-error.log;

	location / {
		proxy_pass https://127.0.0.1:31337/;
	}
}
</code></pre>
<p>After this check for errors in the configuration:
<code>sudo nginx -t</code></p>
<p>Restart nginx service from systemd:
<code>sudo systemctl restart nginx</code></p>
<p>One last thing left to do is generate ssl certificates for the znc subdomain.
You can do that by using <code>certbot</code> command. Enter it and follow the
instructions to proceed.</p>
<p>Now your znc web interface should be accessible from <code>znc.yourdomain.xyz</code></p>
</content>
      </entry>
    
      <entry>
        <title>Getting old.</title>
        <id>https://hitarththummar.xyz/posts/getting_old</id>
        <updated>2022-03-25T00:00:00Z</updated>
        <summary>"What it might feel like to see the world wear down."</summary>
        <content type="html"><p>I always wonder what it must be like to get old. To see the world prosper
around you while you wither away into bits and pieces. I don't want to get old.
I see my grand-parents eyes and mostly they are blank, expressionless. Watching
television, or doing small chores around the house. Sometimes they sparkle,
when they meet an old friend from the village or when their kids and grand kids
come and sit with them. They shine the brightest when they reminisce about
their past- When they felt like they could conquer the world exactly like I do
now.</p>
<p>But on rare occasion, when no one is around, I see longing. Longing to be
free from this worldly cycle of life and death. I can feel that their patience
is running out. Bodies that barely function, and minds that are fading away
each second- they are barely holding on to what's left of their present. I am
not trying to show them as weak or not taken care of. They are taken care of by
the family and they are happy, objectively. But I feel like once you get old to
the point that you can't do your own daily duties, it becomes a <em>chore</em> to live
on.</p>
<p>We see stories from around the world where old people do the impossible. They
climb mount Everest, they travel around the world, they graduate! But those are
some rare cases. In the end, the base desire of most humans is to be free. From
attachment, from a decaying body, from a selfish world. And there is not a
place more free than death. This might sound grim, but it is what I feel.</p>
<p>I don't want to die old. I don't want my life to become a chore. I want to live
on my own as long as I can and then just give it all up. I hope I have the
courage to do that, since somewhere I have read that no matter what your
condition is, you always tend to try and survive when the end is near. It is
natural instinct. I don't know what is going to happen, but I sure hope it is
peaceful where the ocean ends.</p>
<p>It is a boon that we forget things as we grow older. I cannot imagine how hard
it must be to have every single memory etched into your brain forever until you
die. Every sweet moment, that first kiss, the friends you lost, the fights you
picked. Nothing can be more painful than being able to recall everything, your
whole life when you're about to die. It is a good thing that we forget things.
Maybe I will forget that I wrote this too, and you will forget that you read
it. Let's hope that it all ends well, where the waves die and the ocean ends.</p>
</content>
      </entry>
    
      <entry>
        <title>Photographs from 2014</title>
        <id>https://hitarththummar.xyz/posts/photos</id>
        <updated>2022-03-03T00:00:00Z</updated>
        <summary>"Some photos I took at my school in 2014"</summary>
        <content type="html"><p>These are some photos I clicked when I was in 12th grade in Delhi Public School
Rajkot. The pigeons loved the terrace of our school and I had a lot of free
time after school since I lived in the hostel. The camera belonged to our P.T.
teacher. Also, Some random dude on reddit told me that I have a <em>natural eye
for framing</em>. Enjoy some pigeons and flowers.</p>
<p>












</p>
</content>
      </entry>
    
      <entry>
        <title>Where did the joy of learning things go?</title>
        <id>https://hitarththummar.xyz/posts/getting_tired_of_technology</id>
        <updated>2022-02-15T00:00:00Z</updated>
        <summary>"The effect of media saturation on the natural urge to learn things."</summary>
        <content type="html"><p>There used to be a time when learning something new meant hours of fun. My
parents bought me an Encyclopedia as a birthday gift when I was a kid and I
spent <em>hours</em> going through each and every tidbit of information in there.
Learning used to be something to look forward to. Now don't take this post as a
vain reminiscence of the <em>bygone days</em>, it is not. It is a written form of the
thoughts that I have been having for the past few weeks.</p>
<p>Learning is not fun anymore. You want to learn assembly? Just look it up on the
internet. You want to learn how to make some obscure south Indian dish? Look it
up. You want to learn about the fifth president of India? Look it up.
Every single thing that you may or may not need either right now or in the
foreseeable future is available at your fingertips, and I feel like that has taken
the fun out of it. There used to be a time when a few friends would argue about
some obscure fact that everyone remembered differently, and the discussion
would go on for hours! Unless of course a third party intervened, where it
turned out that everyone was wrong. There was a joy in small things like that.</p>
<p>For at least the past few years, there has been a lack of things to do, due to
the abundance of things to do. The over saturation of information the internet
has brought upon us is nothing but an endless stream of information that the
human brain sees, processes and forgets. Facts aren't facts anymore, and
opinions of people are changing faster that you can say <em>"frog"</em>. It is a
worldwide phenomenon, and it needs to be addressed as soon as possible. Every
single person is turning into a clone of every other one due to the
saturation and careful feeding of information via internet. Since everyone has
most of their experiences online, everyone grows up the same way.</p>
<p>Look at today's children. They are thrown into the world of internet as soon as
they can say <em>baa</em> like sleep to slaughter. They can't live without
phones/tablets. There is no more a <em>need</em> to find things out, because our
tech-overlords already do that for us. It pains me to see my nephews or nieces
cry out like spoiled children when their phones are taken away from them.
Parents encourage this behavior because the child won't cry if you give them
the magic shiny rectangle. This raises some serious concerns about the coming
generation.</p>
<p>I used to love computers, I remember writing a substitution cipher GUI program
in java using netbeans in school just for fun. I <em>wanted</em> to do it. But for
quite some time, it feels like that joy of learning things is gone. I want to
sit on a computer <em>only</em> as long as it is necessary and then shut it
down. I used to be an avid gamer, I would play video games for hours. Not
anymore. Maybe I am growing up, or maybe the circumstances are truly as dire as I think
they are, but things are <em>definitely</em> changing. I plan to move away from this
overabundance gradually, and I have already started it since the past year by Deleting
social media.</p>
<p>Take the first step, Rest is up to you.</p>
<p><em><strong>Namaskar.</strong></em></p>
</content>
      </entry>
    
      <entry>
        <title>The Rise and Fall of Taarak Mehta ka Ooltah Chashmah</title>
        <id>https://hitarththummar.xyz/posts/rise_fall_tmkoc</id>
        <updated>2022-01-15T00:00:00Z</updated>
        <summary>"How the supposed messiah of Indian comedy television lived long enough to see itself become the villain."</summary>
        <content type="html"><p>Taarak Mehta is a name that almost every Indian within a hundred meters of a TV
connection should know. It is after all, one of the most beloved comedy TV
shows in the Indian market. It is based on <em>Duniya ne undha chashma</em> (A world
with inverted glasses), a weekly magazine column. In the beginning it did try
to stay true to the source material like all TV shows always do, but gradually
over the period of TEN long years, it has simmered down into a hot pile of
monotonous episodes that are more predictable than the direction of a turtle's
movement.</p>
<p></p>
<p>After rewatching some initial episodes, the stark difference between the old
TMKOC and the new one is painfully obvious. The old one can be described as a
<em>daily sitcom with heavy satirical undertones of Indian culture</em> while the new
one is.. well, I don't know what it is. If you look at the early episodes, the
show was self-aware. The characters were not monochromatic, they had their
flaws and they were aware of them. Gokuldham "family" as it is known these days
did not exist. Everyone had humane qualities. The neighbors were not all
<em>happy-go-luckys</em> who were always ready to help each other no matter what. They
were sometimes envious of each other, were condescending to others and had their own
flaws and patterns that were not visibly fake. On the other hand, the show that
airs today is a series of repetitive story arcs that lead nowhere and exist
solely for the reason of making money off of the <em>brand</em> that is TMKOC. Everyone
is loving and happy and caring and no one on this society has ever done anything
<em>remotely</em> wrong at any point in their lives. It's like everyone is forced to smile
and be happy forever.</p>
<p>Looking at the state of TMKOC today, you could not fathom that the show would
be capable of global political satire, and yet at one point in the early
episodes, it provides stark commentary on the USA-Israel situation.
But such is the bane and boon of television in India. It has to be catered to a
particular taste of the audience, and at that point it stops becoming what it
is and starts to become what it is <em>expected</em> to be. What it loses in spirit,
it gains in TRP and income. When TMKOC first soared in popularity, celebrity
placements were sparse. Every few weeks a new celeb would join the cast for an
episode promoting their movie. It was a fun change of pace from the fantastic
comedy that the show provided back in the day. But as time passed, the
promotions became more frequent and thus the quality degraded.</p>
<p>Looking at it now, even the promotions are low in number, but the show goes on.
It doesn't matter if the jokes are dead or the characters are uninteresting
anymore. <strong>THE.SHOW.STILL.GOES.ON.</strong> All the jokes are same, stereotypical
nonsense that the writers have been spewing for the past few years. Even some
actors have left the show but it still goes on.
The question remains, is it still the ship of Theseus after all the parts are
replaced?</p>
<p>In the end, I would suggest you all to rewatch the early days of the series and
relive the show that stole the hearts of Indian audiences in its early days.</p>
</content>
      </entry>
    
      <entry>
        <title>When its just you and the music</title>
        <id>https://hitarththummar.xyz/posts/you_and_music</id>
        <updated>2022-01-06T00:00:00Z</updated>
        <summary>"When its just you and the music, the view is slightly shifted."</summary>
        <content type="html"><p>When it's just you and the music, the view is slightly shifted. Reds are pink,
pinks are orange, blue is bad and lost is black. When it's just you and the
music, you can't see what's in front of you, only what you leave behind. When
it's just you and the music, it's too loud and deathly silent at the same time.</p>
<p>But sometimes, it takes over. It becomes dread, it becomes anger, despair. It becomes the
very prison that you were trying to escape from. Sometimes the music will tie you up
and put you down and kick you in the guts. That is when it stops being music and
starts becoming noise. The moment it becomes noise to you, it doesn't matter whether
it plays or not. Because you <em>will</em> hear it, by choice or otherwise.</p>
<p>I don't know if this sounds pretentious, but music plays a very important part
in my life. There are soundtracks upon soundtracks for every feeling that I
feel, every moment that I ever lived. Phases of albums and songs that define
the life that I was living during that particular period of time. Entire days
that can be narrated based on a particular song that touched that sliver of a
second. I don't know if you have ever felt that way, but I really hope that you
do.</p>
<p>It is an amazing feeling, to have your life flash before you like a train that
won't stop at the local platform that you're standing on. To have memories meet
you for a moment and run away like that one time you fed peanuts to a squirrel.
I hope you see it. I hope you understand, and once you do, I hope you come back
and read this to realize what I am trying to say.</p>
</content>
      </entry>
    
      <entry>
        <title>Swipe up -- the death of long form media</title>
        <id>https://hitarththummar.xyz/posts/death_of_long_form_media</id>
        <updated>2022-01-02T00:00:00Z</updated>
        <summary>"The "swipe-up" media format and how it will kill informational content"</summary>
        <content type="html"><p>The past few years have been what some might call, <em>distinctively
disappointing</em> for the media industry. As lives become busier and busier, it
gets hard to find time for reading an article or watching a whole documentary;
or even watching a video on how to make some novelty food item. A 30 second
tiktok on the other hand, seems much enticing, mostly because it is a thirty
second tiktok and once you start swiping up, everything is a blur. Every single
pointless video of people doing things for clout that would shame most of you
reading this, or videos of <em>DIY</em> "hacks" that are basically just rube-goldberg
replacements of tools that can be bought at your nearest store, is a gateway
into more of that nonsense.</p>
<p>On top of all this, the worst part is that this method of short attention span
media production is getting <strong>very</strong> popular. So much so, that nearly ALL
social media platforms have incorporated this in one way or other. I would like
to state at this point that I am in no way, a "tik-tok hater", but it is the
truth that this form of information transmission is bound to bring in some form
of misinformation. For example, take the tiktoks of financial advice making
rounds on the internet. No doubt they <em>might</em> be people with experience and
knowledge on those subjects, but a minute long video is <strong>not</strong> enough to
provide sound financial advice. There are regional laws and bylaws which may or
may not be allowed in your place of residence, but the small video cannot cover
every aspect of it. Besides, these videos are a breeding ground for scams.
Scammers find their targets with short attention spans watching these and lure
them in with get-rich-quick schemes hidden among good willed financial advice.
This kind of thing is pretty prevalent these days and the topics range from
investment schemes, law and marketing, to "life hacks" which may or may not be
legal at all! The worst part is, social media giants are coercing content
creators into making more of this type of media so much that if you are content
creator and have not touched one form of "swipe-up" on your platform, your
reach will die out. Yes! To make sure that your content gets to your audience,
you have to create short-form content no matter what.</p>
<p>This is an endemic and while it serves its own purpose, people need to realize
that at some point it will bite them back and its best to use it as what it is:
mindless content for when you have free time. In the end, I recommend trying to
find more text based content whenever possible, as it takes time to write and
there is a pretty good chance that the author wrote it because they wanted to
and not because their platform told them to.</p>
<p><em>Shubh Ratri.</em></p>
</content>
      </entry>
    
      <entry>
        <title>Doing good.</title>
        <id>https://hitarththummar.xyz/posts/do_good</id>
        <updated>2021-12-31T00:00:00Z</updated>
        <summary>"An ode to 202x, doesn't matter which."</summary>
        <content type="html"><p>I am writing this at 11:14 PM on 31st December 2021. But it doesn't really
matter what date or what time is it as long as it is a new beginning for
anyone. It is just a new page in the calendar. So this is <em>an ode to 202x,
doesn't matter which</em>.</p>
<p>I started this site about a year ago, and I have not written much stuff in
here, other than the Mahabharat reviews and some projects I made. So I guess,
this post will be a start of an influx of 'posts', if that makes sense. If I
had a word to describe 202x, it would be, <strong>fast</strong>. The days went by like
raindrops on a glass window, ever moving, ever changing. It is all a blur at
this point, truly. I wonder if it is because of the stagnancy that we all had
collectively become a part of. It has been a bad year for businesses,
especially those that are at a considerable distance from computers. People who
don't get paychecks and have to actually get out of a chair to earn their share
of money.</p>
<p>It seems like every month in a 202x year brought some new depressing thing with
it-- and every next month the world fought and came back stronger. We all did,
and we did that by <em>doing good</em>. For every saddening experience I had, there
was a ray of hope somewhere. All I saw was people doing good for others,
selfless sacrifices. And maybe I choose to ignore the worst in the world, but
is it not for my own good? The further I stay away from the rot, the happier I
will be. At this point I am just rambling and it is 11:30 already, but this
post is an end and a beginning.</p>
<p>I want to do good. In each and every way possible. To those who need it the
most, and are afraid to ask for it. I will try to <em>be good</em>. That is all, I
guess. I hope this year breaks the streak of the pandemic and we get to return
to normal soon. Or maybe not, I don't know. Staying at home is also heaven in
itself. Until then, stay safe, see you again.</p>
<p>~ Hitarth</p>
</content>
      </entry>
    
      <entry>
        <title>Managing dotfiles</title>
        <id>https://hitarththummar.xyz/posts/dotfiles</id>
        <updated>2021-12-23T00:00:00Z</updated>
        <summary>"Managing dotfiles using a git repository"</summary>
        <content type="html"><p>"Dotfiles" are a way to store configuration of various packages and programs on your system. They are named so because of the '<em>.</em>' that precedes their names to keep them hidden.</p>
<p>These dot files make up the system of a user and in case the system crashes into an unrecoverable state, the user might lose all their configurations for all of their programs. This is an inconvenience and can be easily avoided by managing your dotfiles properly. Many users online suggest using tools like <a href="https://www.gnu.org/software/stow/">GNU stow</a> to manage and store the dotfiles but I personally prefer using the $HOME directory as a git repo. This is easier and doesn't require a special tool just to manage the dotfiles.</p>
<p>One issue with this method is the vast amount of extra files that exist in the $HOME directory. We are not doing any linking or copying, all the files will stay exactly where you want them to be. It can be solved by using a gitignore file which ignores everything. After that you can individually git add all the required files and once you add them manually, they will be tracked forever despite of the gitignore file.</p>
<h2>Instructions</h2>
<ul>
<li>
<p>cd into your home directory.</p>
</li>
<li>
<p>Create a new git repository</p>
<pre><code>  $ git init     
</code></pre>
</li>
<li>
<p>Create a git ignore file that ignores everything.</p>
<pre><code>  $ echo '*' &gt; .gitignore     
</code></pre>
</li>
<li>
<p>Manually add all the files that you want to add to the repo by using.</p>
<pre><code>  $ git add -f filename_or_directory_name     
</code></pre>
</li>
</ul>
<p>(<strong>Note: You can also add entire directories like ~/.config but make sure you don't include any of your private key files or config files with plaintext passwords by mistake. One such example is irssi config which may contain a plaintext password.</strong>)</p>
<ul>
<li>
<p>Once that is done, commit your changes</p>
<pre><code>  $ git commit -m 'commit message'    
</code></pre>
</li>
<li>
<p>Add the remote origin url.</p>
<pre><code>  $ git remote add origin http://yourgitrepo.com/username/reponame    
</code></pre>
</li>
<li>
<p>Push the committed changes and set the upstream branch.</p>
<pre><code>  $ git push --set-upstream origin master    
</code></pre>
</li>
</ul>
<p><strong>Congratulations!</strong> You managed to backup your dotfiles to a git repository. Now any time you update a dotfile, make sure you push the changes to the repo as well.</p>
<p>If you need to restore your dotfiles to a fresh system follow the instructions below:</p>
<ul>
<li>
<p>cd into your home directory.</p>
</li>
<li>
<p>Clone the dotfiles repository to any directory.</p>
<pre><code>  $ git clone http://yourgitrepo.com/username/reponame    
</code></pre>
</li>
<li>
<p>cd into that directory, and copy all the contents to the home directory.</p>
<pre><code>  $ cp -r .[!.]* $HOME/     
</code></pre>
</li>
</ul>
<p>(<strong>We are doing this so that any current dotfiles might be replaced</strong>)</p>
<ul>
<li>Done!</li>
</ul>
<p>It is not very ideal in terms of restoration, but it works and that's all that matters. No symlinking or hacky stuff. Just a repo to love and maintain. &lt;3</p>
</content>
      </entry>
    
      <entry>
        <title>Music finding service</title>
        <id>https://hitarththummar.xyz/posts/find_similar_music</id>
        <updated>2021-12-19T00:00:00Z</updated>
        <summary>"An idea for a crowdsourced music finding service"</summary>
        <content type="html"><p>Hi all,</p>
<p>So I have had this idea for a long time and I am sure many others may have had
it too, but here I am writing about it any way because this is MY website.
People use streaming services for their music needs these days, this includes
people like me and the recommendations given by these services are also
usually, up to the mark. But sometimes what happens is we hear a song and that
particular piece of music invokes a feeling that you keep longing for, more and
more. It haunts you for a few days and you go to the streaming services or your
friends to find similar songs so that you can get the happy chemicals in your
brain. The thing is, no one can help you with it. No streaming services can
help you get that same feeling and neither can your friends.</p>
<p>The service that I want to introduce contains a database of songs, and all
users can select a song and then have a choice to vote for other songs as
"similar" to this one. As more people vote on songs for a certain similarity,
we can show those songs in a list sorted by most votes. It will help future
users who will search for recommendations for this piece of music. Of course,
spamming and manipulation will have to be dealt with and a lot of other kinks
have to be worked out as well, but at some point I hope to make something like
this. I think thousands of people might be able to recommend better than some
code in a remote server owned by a tech giant.</p>
<p>If you want to help on this idea, or have any suggestions, feel free to contact
me. (My contact info is on the home page)</p>
</content>
      </entry>
    
      <entry>
        <title>Add.noise</title>
        <id>https://hitarththummar.xyz/poems/addnoise</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>Decibels upon decibels<br />
of your absence uncalled for.<br />
Blind ears and deaf eyes<br />
of leaders I vote for.<br />
Spread fear and slap lies<br />
on my face like some whore<br />
What you say is not what you do<br />
What you say is not true<br />
And I'm not a puppet<br />
To be controlled<br />
by your singing strings<br />
So please,<br />
Listen to me.<br />
Stop your vendetta<br />
and this societal violence<br />
And add noise<br />
To your deafening silence</p>
</content>
      </entry>
    
      <entry>
        <title>अंतर</title>
        <id>https://hitarththummar.xyz/poems/antar</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>उदासी तुझमें है,<br />
तनहाई मेरे भी अंदर है,<br />
लोग वही है,<br />
समय बस अलग है।<br />
काल चक्र का<br />
कोई जादू सा मंतर है।<br />
कैसे बताऊं मै?<br />
कोई अदृश्य अक्षर है।<br />
बातें वही है,<br />
बस शब्दों में कुछ अंतर है।</p>
</content>
      </entry>
    
      <entry>
        <title>at_night</title>
        <id>https://hitarththummar.xyz/poems/at_night</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>It's beautiful out here at night.<br />
You should come see it sometime.</p>
<p>The roads are empty,<br />
Streetlights burn bright<br />
The cold seeps through your heart<br />
And yet the fire inside fights.</p>
<p>Problems are a matter of tomorrow.<br />
This is your time to live<br />
Forget your sorrows<br />
At least until this time you borrowed<br />
Runs out,<br />
and before you know it,<br />
It's over. Guns out<br />
Time to fight that war again,<br />
Time to be reborn again.<br />
Time to get up and be thrown again<br />
at life,<br />
The seeds of solitude are sown again.<br />
Sun rises, you die inside<br />
Until night falls again.</p>
<p>It's beautiful out here at night.<br />
You should come see it sometime.<br />
#Poetry</p>
</content>
      </entry>
    
      <entry>
        <title>convert</title>
        <id>https://hitarththummar.xyz/poems/convert</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>like alcohol in the stone pits<br />
hailed, wanted, but lonely.<br />
In limbo, unhinged from reality<br />
thinking about the skies,<br />
while baffled by morality.</p>
<p>I scoured the universe,<br />
in search of salvation<br />
while my god's abode<br />
was in my soul's foundation.</p>
<p>like mangoes in cardboard boxes<br />
sweet, free from paradoxes<br />
In heaven, hinged to reality<br />
thinking about the world<br />
unbothered by mortality.</p>
</content>
      </entry>
    
      <entry>
        <title>Death of a tree</title>
        <id>https://hitarththummar.xyz/poems/death_of_a_tree</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>When a tree dies</p>
<p>The wayward souls<br />
lose their shade.</p>
<p>Their shade is no more,<br />
Neither is the cold whistling of the wind<br />
which moves the leaves-<br />
A lullaby to listening ears</p>
<p>Listening ears still long for it<br />
the rustling leaves and chirping birds.<br />
The support to lay their back on-<br />
All gone when a tree dies.</p>
<p>When a tree dies</p>
<p>His son takes up the role.<br />
He's not supposed to cry,<br />
or mourn, or show weakness.</p>
<p>He becomes the shade,<br />
the support, the rustling of leaves.<br />
He becomes what his father was</p>
<p>When the tree dies<br />
the seed is seed no more.<br />
He has to grow<br />
no matter if he's ready or not.</p>
<p>Until the next tree dies.</p>
</content>
      </entry>
    
      <entry>
        <title>Do cavemen dream</title>
        <id>https://hitarththummar.xyz/poems/do_cavemen_dream</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>Do cavemen dream
of stormy skies, spread far and wide?<br />
Do they cower in fear<br />
of what lies within?<br />
Or hope that its all a fever dream,<br />
and hide their heads in their mother’s laps,<br />
peeking between their fingergaps.</p>
<p>Do cavemen dream of cheery weather?<br />
And Singing birds with flashy feathers?<br />
Clear skies, fluffy clouds<br />
where they could shout their truth aloud.<br />
Or do they live just like us?<br />
In fear of what we must become,<br />
to live out till seventy one<br />
and lose the will to have some fun.</p>
</content>
      </entry>
    
      <entry>
        <title>Drive</title>
        <id>https://hitarththummar.xyz/poems/drive</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>On lonely nights<br />
I think of you<br />
and take a drive<br />
down degenerate lane.<br />
The tar becomes your skin,<br />
solid, but soothing.<br />
Your eyes are the stars<br />
watching me from afar.<br />
While sex appeal<br />
drips drowsily<br />
from your lips<br />
on my windshield,<br />
just for me to wipe it off.<br />
It doesn't matter<br />
how long I drive,<br />
your threads keep unraveling<br />
strand after strand<br />
covering me with your scent<br />
until there's no air<br />
left for me to breathe.<br />
That's my cue,<br />
time to leave.</p>
</content>
      </entry>
    
      <entry>
        <title>Drowning</title>
        <id>https://hitarththummar.xyz/poems/drowning</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>I dream to see land<br />
And flying seagulls on the shore<br />
This sea now sickens me<br />
No more I want to explore.</p>
<p>Now I'm stuck in it<br />
No ship to sail in<br />
The sun has sucked me dry<br />
No tears left, yet I keep wailing.</p>
<p>They romanticize the ocean<br />
Talk about exploring the unexplored<br />
But in looking at the sun<br />
The dark waters they ignore</p>
<p>Yes, hope is an ocean<br />
With water infinite<br />
But what's the point of it?<br />
If you're drowning in it.</p>
</content>
      </entry>
    
      <entry>
        <title>heaven</title>
        <id>https://hitarththummar.xyz/poems/heaven</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>I miss being a kid<br />
my heart under a lid, covered.<br />
no ache, and no lovers,<br />
no secrets to uncover. I missed<br />
being naive at least.<br />
between shadows and mist, I played<br />
not a moment in dismay.<br />
and then my head I laid, in heaven<br />
my mother's lap.</p>
</content>
      </entry>
    
      <entry>
        <title>June</title>
        <id>https://hitarththummar.xyz/poems/june</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>Of cloudy skies and petrichor,<br />
Thirty days an eternity.<br />
'twas the best month of them all.<br />
Of cloudy skies and petrichor,<br />
and bruised ribs and broken bones<br />
The sun was all that we could see.<br />
Of cloudy skies and petrichor,<br />
Thirty days an eternity.</p>
</content>
      </entry>
    
      <entry>
        <title>काला_चश्मा</title>
        <id>https://hitarththummar.xyz/poems/kala_chashma</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>भूल जा<br />
जो भी तुझे खटक रहा है।<br />
जो भी तेरे दिमाग में<br />
सांप की तरह भटक चला है।<br />
चल आ<br />
जी ले ज़िन्दगी को दूसरे नज़रिये से,<br />
लगा<br />
खुदगर्ज़ी का काला चश्मा।<br />
फिर देख<br />
जो तेरे दोस्त है<br />
वो खुद के नशे में मदहोश है।<br />
कोई और नहीं है तेरा<br />
तेरे मा बाबा के अलावा।<br />
जो भी समजता था तू<br />
की सच है<br />
भ्रम है वो सब।<br />
लगा खुदगर्ज़ी का काला चश्मा<br />
और देख<br />
ना कोई अपना, ना कोई पराया<br />
जिन्होंने तुझे आगे बढ़ाया<br />
उसमे उनका भी कोई मतलब था<br />
जो भी तुझे लगा प्यार है<br />
जुठ, छल, भ्रम, वो सब था।</p>
<p>लगा काला चश्मा<br />
और देख<br />
कोई किसी का नहीं<br />
अब भी तू सीखा नहीं<br />
दोस्ती यारी ये सब माया है<br />
तेरे असल दोस्त वहीं है<br />
जिन्होंने तुझे बनाया है।</p>
</content>
      </entry>
    
      <entry>
        <title>kanye</title>
        <id>https://hitarththummar.xyz/poems/kanye</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>I can't help but hear<br />
The soundtrack to my self destruction<br />
pulling me in with tremendous suction.<br />
I can't help but hear<br />
The very voice of my deepest fears<br />
Rapping over some dope production.<br />
I can't help but hear<br />
The soundtrack to my self destruction.</p>
</content>
      </entry>
    
      <entry>
        <title>Maa</title>
        <id>https://hitarththummar.xyz/poems/maa</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>जो कुछ छिपा है सीने में,<br />
तू कैसे वो सब जानती है<br />
मेरी हसी के पीछे का ग़म<br />
कैसे तू पहचानती है?</p>
<p>शब्द कम पड़ जाते है<br />
तेरे एहसान गिनाने में<br />
आज एक दिन वो कर पाएगा<br />
चंद अफसाने गाने से?</p>
<p>फिर भी आज बैठकर<br />
कुछ कोशिश मै कर रहा हूं,<br />
कुछ कर दिखाऊं उससे पहले<br />
तुझे खोने से मै डर रहा हूं।</p>
<ul>
<li>H.</li>
</ul>
</content>
      </entry>
    
      <entry>
        <title>Mangoes in cardboard boxes</title>
        <id>https://hitarththummar.xyz/poems/mangoes_in_cardboard_boxes</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>like alcohol in the stone pits<br />
hailed, wanted, but lonely.<br />
In limbo, unhinged from reality<br />
thinking about the skies,<br />
while baffled by morality.</p>
<p>I scoured the universe,<br />
in search of salvation<br />
while my god's abode<br />
was in my soul's foundation.</p>
<p>like mangoes in cardboard boxes<br />
sweet, free from paradoxes<br />
In heaven, hinged to reality<br />
thinking about the world<br />
unbothered by mortality.</p>
<p></p>
</content>
      </entry>
    
      <entry>
        <title>Mere_traveller</title>
        <id>https://hitarththummar.xyz/poems/mere_traveller</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>I am but a mere Traveller<br />
On a dusty winding road,<br />
With only a box of feelings<br />
And my pet toad.<br />
I met many people, many strangers,<br />
Many foes.<br />
But only some of them deserve their roles,<br />
In my trampled, stampled life.<br />
This road might fork one day<br />
Or go on forever,<br />
A dead end might come anytime,<br />
If I don't get clever.<br />
I am but a mere Traveller,<br />
On this dusty, winding road ;<br />
And I still wish the journey would get lively<br />
Like my little pet toad.</p>
</content>
      </entry>
    
      <entry>
        <title>Not_quite_there</title>
        <id>https://hitarththummar.xyz/poems/not_quite_there</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>I wanted you to know,<br />
I've been wondering lately.<br />
If I ever lose you,<br />
Who's going to berate me?</p>
<p>Who's going to mock me,<br />
For not being social?<br />
For always being disappointing,<br />
For never being hopeful.</p>
<p>I know I try too hard,<br />
It's because you're my idol<br />
Even though you're broken<br />
Barely hanging on, suicidal.</p>
<p>I try to find the good in you,<br />
yet to see it somewhere.<br />
But I fear that one rainy morning,<br />
You won't be there, to not be there.</p>
</content>
      </entry>
    
      <entry>
        <title>Now</title>
        <id>https://hitarththummar.xyz/poems/now</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>I see light-headed hipsters high on<br />
Sensationalized trends<br />
Performing ecstatical stunts<br />
Fueled by purposeless strength.<br />
Halt the boat, for the time is now<br />
To burn the place down<br />
Look around,<br />
You'll see pretentious pussies<br />
Pasting pointless posts on<br />
Pedantic positivity and<br />
preposterous presumptions<br />
For perverted pathetic,<br />
Pussies.<br />
Consumed by the love for<br />
Quirks and bizzare things<br />
Things that are never real, never been.<br />
Eyes like sacks of sand hanging heavy<br />
On faces who've seen some shit.<br />
"Still want that black coffee though,<br />
Because black is lit"<br />
Black defines shit,<br />
It defines your thirst for being the<br />
Centre of an ever-changing caravan<br />
You ache for attention that you never deserved<br />
But you are a slave<br />
Bred and fed to serve<br />
The constant stream of garbage<br />
Spewn by social snakes.<br />
You follow trends like commandments<br />
written in long lost languages,<br />
They're temporary, so are you<br />
But who are you?</p>
</content>
      </entry>
    
      <entry>
        <title>Pretense</title>
        <id>https://hitarththummar.xyz/poems/pretense</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>This life that i lead<br />
figured out, but really not<br />
My face is winning this race,<br />
Although my face lies a lot.</p>
<p>Lies, thrown right on your face,<br />
Sweet vanilla cake frosting<br />
And yet in my sincerest thoughts<br />
These lies are pretty exhausting</p>
<p>You swarm right in my home<br />
suck on my honey-coated lies<br />
and you'll keep barging in<br />
Until you've sucked me dry.</p>
<p>Brainwashed bees still bust in my halls<br />
Of tense, morbid thoughts.<br />
and I'm still trying to figure this out<br />
but in the end, I'm really not.</p>
</content>
      </entry>
    
      <entry>
        <title>Rehab</title>
        <id>https://hitarththummar.xyz/poems/rehab</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>This turmoil I feel,<br />
Is it made up or is it real?</p>
<p>I hear things,<br />
Faint ringing of a lost song<br />
Eternally plagued<br />
By a past long gone.</p>
<p>I want to take on<br />
the path less taken.<br />
But what if it's not?<br />
What if I'm mistaken?</p>
<p>Barely hanging on,<br />
I'm fighting this curse.<br />
but I find my solace<br />
in penning this verse.</p>
<p>Monotonous, malignant musings<br />
of a mediocre mind.</p>
</content>
      </entry>
    
      <entry>
        <title>rhyme</title>
        <id>https://hitarththummar.xyz/poems/rhyme</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>Two quick beats,<br />
miss a step<br />
then repeat.<br />
My heart does that<br />
when your touch<br />
it needs.<br />
I cry and I<br />
Plead, and I<br />
Beg on my knees,<br />
But all you do<br />
is laugh at me and lie<br />
and deceive</p>
<p>I hope that you talk<br />
and I could tell you<br />
What I need</p>
<p>But jokes<br />
and insults<br />
are all I recieve.<br />
Two quick beats<br />
miss a step<br />
Then repeat<br />
I wish I could<br />
Stop acting<br />
Like a little kid.</p>
</content>
      </entry>
    
      <entry>
        <title>Seasons</title>
        <id>https://hitarththummar.xyz/poems/seasons</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>I passed through<br />
the biting winds of winter<br />
igniting fires of a furious summer<br />
broken dreams of burning leaves<br />
and the sweet sweet fruit of spring.<br />
winds of desperation biting my face.<br />
running limbless in this life's race.<br />
failing, losing and cursing myself<br />
in the end, discovering new ways<br />
to pass through.</p>
</content>
      </entry>
    
      <entry>
        <title>Side_mirror</title>
        <id>https://hitarththummar.xyz/poems/side_mirror</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>I love you, you loved me<br />
i'm riding alone, it's just me<br />
Side mirror loose, adjust it<br />
Betrayel lane, injustice<br />
Your colored smoke, engulfs me<br />
I breathe it in, I'm set free<br />
You are a magic entity<br />
Your cheap tricks disgust me<br />
I'm smoking a cheap cigar<br />
No beerbongs and bentleys<br />
You act like the 80s<br />
A little coked up, a bit carefree<br />
I am a lonely masochist<br />
Inflict pain, I'll love it<br />
The side mirror of my ride<br />
it was loose, you cracked it.</p>
</content>
      </entry>
    
      <entry>
        <title>Small Fry</title>
        <id>https://hitarththummar.xyz/poems/smallfry</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>Universes die.<br />
Then what am I?<br />
A measly human, a small fry.</p>
<p>Life gives and life takes.<br />
And the rest of it, death rakes.<br />
Civilizations are devoured,<br />
Myths forgotten,<br />
Languages are lost<br />
In the jaws of time.</p>
<p>No one remembers<br />
Past two generations<br />
Great grandfathers:<br />
not so great anymore.</p>
<p>Universes die.<br />
Then what am I?<br />
A measly human, a small fry.</p>
</content>
      </entry>
    
      <entry>
        <title>Teacups</title>
        <id>https://hitarththummar.xyz/poems/teacups</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>We sit here<br />
Alone, broken<br />
Bashed into, forsaken.<br />
An eternity we have longed<br />
For the steam of kettle<br />
To turn into a song<br />
And the noisy waterfall<br />
of a fiery hot drink<br />
To Fill our leaking bases<br />
Before we go extinct.<br />
Instead, harsh rain fills us<br />
Every few months or so<br />
And we let it molest us<br />
We have nowhere to go<br />
But we will have our day<br />
We ignore what the commode<br />
And the broken cars say<br />
After all they're trash<br />
Their purpose long fulfilled<br />
And we're broken teacups<br />
in a junkyard<br />
Waiting to be filled.</p>
</content>
      </entry>
    
      <entry>
        <title>Violence</title>
        <id>https://hitarththummar.xyz/poems/violence</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>Gunships crash<br />
And burn into nothingness,<br />
Following this ritual eternally<br />
Until the heavenly fires<br />
Burn it all.<br />
And what's left will be<br />
Nothing at all.</p>
<p>Warriors clash<br />
And Strike their blades blunt,<br />
Fighting till their last breath<br />
Until their commander<br />
Says stop.<br />
And the war that began<br />
Forever stays stalled.</p>
<p>Violence stays<br />
Forever in my heart.<br />
Slurping my soul, skulking about.<br />
And No matter how hard I try<br />
To wrench it out<br />
It won't leave my soul<br />
Until I battle it out.</p>
</content>
      </entry>
    
      <entry>
        <title>Whatever</title>
        <id>https://hitarththummar.xyz/poems/whatever</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>2:27,<br />
The time without time.<br />
Seconds pass slowly,<br />
Minutes are stuck forever<br />
And Hours don't exist.<br />
What I am now<br />
Is what I used to be<br />
Before I became<br />
this whirling vortex<br />
Of vain existence<br />
and the same sorrows<br />
Ever persistent.<br />
I fumble with the sheets<br />
To no avail,<br />
Sleep doesn't come easy to me<br />
Not at night, at least.<br />
When in doing my chores<br />
It comes sudden<br />
And treats me like a whore.<br />
I think of my past romances,<br />
Friends I made<br />
The ones I lost<br />
Not forever, I hope.<br />
But it's still pointless<br />
This unreasonable pursuit<br />
Of a good night's sleep.</p>
</content>
      </entry>
    
      <entry>
        <title>When_a_tree_dies</title>
        <id>https://hitarththummar.xyz/poems/when_a_tree_dies</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>When a tree dies</p>
<p>The wayward souls<br />
lose their shade.</p>
<p>Their shade is no more,<br />
Neither is the cold whistling of the wind<br />
Which moves the leaves<br />
A lullaby to listening ears</p>
<p>Listening ears still long for it<br />
The rustling leaves, chirping birds,<br />
The support to lay their back on<br />
All gone when a tree dies</p>
<p>When a tree dies</p>
<p>His son takes up the role.<br />
He's not supposed to cry,<br />
Or mourn, or show weakness.</p>
<p>He becomes the shade,<br />
The support, the rustling of leaves<br />
He becomes what his father was</p>
<p>When the tree dies<br />
The seed is seed no more<br />
He has to grow<br />
No matter if he's ready or not.</p>
<p>Until the next tree dies.</p>
</content>
      </entry>
    
      <entry>
        <title>Wrote_for_you</title>
        <id>https://hitarththummar.xyz/poems/wrote_for_you</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>""</summary>
        <content type="html"><p>I wrote for you.<br />
Wasted a thousand words,<br />
Filled up a million notes for you.</p>
<p>I showed you my work,<br />
I bared what was left of me<br />
Broke my mind penning it down,<br />
Just to feel that hit of ecstacy.</p>
<p>I poured my heart out.<br />
Cliché? I know.<br />
Rephrase.<br />
I put my soul out and let it wander<br />
The white sea of my pages.<br />
I let it write free of judgement<br />
Beautiful, broken, repugnant.<br />
And once it was done<br />
I put it back in.<br />
Eternally caged,<br />
until my heart broke again.</p>
</content>
      </entry>
    
      <entry>
        <title>Setting up Cloudflare Argo Tunnel on Raspberry Pi</title>
        <id>https://hitarththummar.xyz/posts/argo_tunnel_on_pi</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>"Quick tutorial for setting up argo tunnel to host your website locally from your Raspberry Pi"</summary>
        <content type="html"><p>This is a way to set up cloudflare argo tunnel on your Raspberry Pi to host your own webserver without port forwarding.</p>
<h5>KEEP IN MIND THAT THIS IS NOT RECOMMENDED FOR SENSITIVE DATA AS IT WILL BE PASSING THROUGH CLOUDFLARE SERVERS.</h5>
<h4>What is argo tunnel?</h4>
<p>It is a tunneling service provided by Cloudflare to help users tunnel connections to their servers via the cloudflare network. It has multiple use cases but here we will only use it for one thing:</p>
<h4>Why argo tunnel?</h4>
<p>It is used to tunnel your webserver to the internet. Usually if you want your web app hosted on your PC to be accessible by the world, you need to have your ports open for incoming requests. If your ISP is restrictive like mine, they give you an in-network IP that is not accessible from anywhere else, so your regular port forwarding settings won't work. Think of it like your router is itself connected to a bigger router.</p>
<h4>Requirements</h4>
<ol>
<li>A <a href="https://dash.cloudflare.com/sign-up/">cloudflare</a> account.</li>
<li>A domain name, it's nameservers pointing to cloudflare (preferably the whole domain managed by cloudflare).</li>
<li>A Raspberry Pi</li>
<li>A webpage/site/server that you want to open to the world.</li>
</ol>
<h4>How to set up one?</h4>
<ol>
<li>Download the latest binary of <code>cloudflared</code> tool for your device.
<em><strong>Note: for the raspberry pi, the newer versions have trouble installing. I personally use an older version which is available at the following link.</strong></em></li>
</ol>
<p><code>wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.tgz</code></p>
<ol>
<li>
<p>put the binary in your PATH so that it can be called upon.</p>
</li>
<li>
<p>use the <code>cloudflared</code> binary to log in to your cloudflared account.</p>
</li>
<li>
<p>type <code>cloudflared login</code>, and it will give you a link.</p>
</li>
<li>
<p>Copy that link and open it in your browser to authorise the log in.</p>
</li>
<li>
<p>Create a test tunnel by following this syntax:
<code>cloudflared --hostname yourdomain.xyz --url http://localhost</code></p>
</li>
<li>
<p>Once this is done, you can copy the cert file that is created <code>### cp ~/.cloudflared/cert.pem /etc/cloudflared</code></p>
</li>
<li>
<p>use your editor to create <code>/etc/cloudflared/config.yml</code></p>
</li>
<li>
<p>You can fill it like this:</p>
<pre><code>hostname: your_domain.xyz
url: http://localhost

</code></pre>
</li>
<li>
<p>Install the cloudflared service</p>
<p><code>### cloudflared service install --legacy</code>
(Make sure the legacy flag is active because we are using an older version of cloudflared)</p>
</li>
</ol>
<p>Hope this tutorial helped you. Now your local webserver will be accessible from your domain!</p>
<h4>Done</h4>
</content>
      </entry>
    
      <entry>
        <title>Lessons from Hanumanji</title>
        <id>https://hitarththummar.xyz/posts/joy_of_hanuman</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>"Why I worship hanumanji"</summary>
        <content type="html"><p>Shri Hanuman is the epitome of selfless service, courage, hope and strength. He is, and should be an inspiration to us all in more that one ways. Even for those who don't believe in him, his story is one with valuable life lessons.</p>
<p>Unfathomable innocence has always been a defining character of Shri Hanuman, according to me. Since he was a child, his childish innocent actions never let the devotee/reader think that they're reading/thinking about a literal god. The very incarnation of Lord Shiva. Take for example, the incident when he tried to eat the sun, thinking it was a golden fruit. Children might think that, but gods actually try to eat it.</p>
<p>Throughout the incidents narrated in Hindu scriptures, not once is Hanumanji seen to have any negative emotions. They have always been positive, bringing the devotee/reader back into a pleasant state of mind.</p>
<p>Talking about courage and fearlessness, almost every Indian household has seen Hanuman Chalisa being recited whenever the user is in a state of panic, stress, depression, or literally being chased by ghosts. Shri Hanuman's name itself is enough to strike fear into the hearts of one's enemies and bring peace to one's mind. It's an old saying in Indian villages, "No one can harm the devotee of a devotee.", thus, being a devotee of Shri Hanuman is a great way to live life. Free from fear, free from attachments, and always with courage in mind, strengh in arms, and Shri Ram in your heart.</p>
<p>This brings me to a bhajan of Bajrangbali, that has made it's place in my heart since not so long ago. I am putting it here in devnagari and roman script, with translations. It is about Shri Ram, after defeating Raavan and coming back to ayodhya, is telling his brother Bharat about how he will never be able to repay the debt of Hanuman. (Another tale about Shri Ram and the debts he paid will come here soon.)</p>
<h4>Bharat Bhai</h4>
<blockquote>
<p>भरतभाई! कपि से उरिन हम नाही ||</p>
</blockquote>
<blockquote>
<p>Bharat bhai, kapi se urin hum naahi</p>
</blockquote>
<p><strong>Bharat, my brother, we will never be able to repay the debt of kapi (monkey, shree hanuman)</strong></p>
<blockquote>
<p>एठो खाय अछूत खवावत | हाथ धोवत टक माहि || १ ||</p>
</blockquote>
<blockquote>
<p>etho khhay, achhoot khavaavat. Haath dhovat, tak maahi</p>
</blockquote>
<p><strong>He is so innocent and child-like, that he doesn't wash hands after eating at the designated place, but in his plate(tak) itself</strong></p>
<blockquote>
<p>सौ योजन मर्याद सिंधू की | लांग गयो पल माहि |</p>
</blockquote>
<blockquote>
<p>Sau yojan maryaad sindhu ki, laangh gayo pal maahi</p>
</blockquote>
<p><strong>The length of the sea was 1200 kilimetres, and yet he jumped it over in a moment</strong></p>
<blockquote>
<p>लंका जाय सिया सोधी लाये | गर्ब नाहि मन माहि || २ ||</p>
</blockquote>
<blockquote>
<p>Lanka jaay, siya sodhi laaye, garb nahi man maahi</p>
</blockquote>
<p><strong>He went to the lanka, and found Siya mata, and yet he didn't get pride in his mind</strong></p>
<blockquote>
<p>शती बाण लग्यो लछमन के | शोर भयो दल माहि |</p>
</blockquote>
<blockquote>
<p>shati baan lagyo, lachman (laxman) ko, shor bhayo dal maahi</p>
</blockquote>
<p><strong>Laxman got shot by a hundred arrows, and the whole army was in chaos with shouts and cries</strong></p>
<blockquote>
<p>द्रोणागिरी पर्वत ले आयो | भोर होने नहि पायी || ३ ||</p>
</blockquote>
<blockquote>
<p>DronaGiri Parbat le aayo, bhor hone nahi paayi</p>
</blockquote>
<p><strong>But Hanuman carried a whole mountain(Dronagiri) where the medicine grew, to save laxman before the sun could rise</strong></p>
<blockquote>
<p>अहि रावण की भुजा उखाडी | बैठ रह्यो मठ माहि |</p>
</blockquote>
<blockquote>
<p>Ahiraavan ki bhuja ukhaadi, baith rahyo math maahi</p>
</blockquote>
<p><strong>When the demon ahiraavan secretly carried away Shri Ram and Laxman to nether world, Hanumanji tore off his limbs and brought them back. Even after saving their lives, he sat quietly in the math(the place where they stayed). Hanumanji does not have any pride.</strong></p>
<blockquote>
<p>या पर भरत जो हनुमत ना होते | को ल्यावत जग माहि || ४ ||</p>
</blockquote>
<blockquote>
<p>Yaa par bharat jo hanumat naa hote, ko lyaavat jag maahi</p>
</blockquote>
<p><strong>Oh bharat, if hanuman wasn't there. Who would've brought us back from the underworld?</strong></p>
<blockquote>
<p>तुलसीदास मारुतसुत महिमा | प्रभु अपने मुख से गायी |</p>
</blockquote>
<blockquote>
<p>Tulsidas maarutsut mahima, prabhu apne mukh se gaayi</p>
</blockquote>
<p><strong>The glory of lord hanuman is sung by Shri Ram himself</strong></p>
<blockquote>
<p>भरतभाई! कपि से उरिन हम नाही || ५ ||</p>
</blockquote>
<p><em><strong>Here is a picture of the gate of Hanuman mandir where I go to pray in my village</strong></em>
</p>
</content>
      </entry>
    
      <entry>
        <title>[FIX] ELan touchpad stops working at boot</title>
        <id>https://hitarththummar.xyz/posts/touchpadrestart</id>
        <updated>2021-12-08T00:00:00Z</updated>
        <summary>"Touch pad issue fix on hp laptops"</summary>
        <content type="html"><p>There was this issue that I faced in my system <strong>(HP Pavilion Gaming 15 Laptop)</strong> in which the touchpad <strong>(ElanTech)</strong> would stop working when the laptop booted, the fix to which was to move my finger on the touchpad when the system was booting up. Doing this every time was not convenient, so it took me a while, but this is what I did.</p>
<p>Create a script, called <code>touchpadrestart.sh</code> and put the below code in it.</p>
<pre><code>#!/bin/sh
rmmod i2c_hid &amp;&amp; modprobe i2c_hid
</code></pre>
<p>Make sure the touchpadrestart script is in your path.
What the code does is, it disables the driver for the touchpad, and then enables it again. Put this in the path and run it whenever you need your touchpad to start working again. But this solution itself is not very efficient as it needs root access to run. We can make the process more streamlined by turning this into a systemd service.</p>
<p>First create the file <code>/etc/systemd/system/touchpadrestart.service</code>. After that, make sure the path in ExecStart points to our script.</p>
<pre><code>[Unit]
Description=TouchPad Restart

[Service]
User=root
Type=oneshot
ExecStart="/usr/local/bin/touchpadrestart.sh"

[Install]
WantedBy=multi-user.target
</code></pre>
<p>Once this file is saved, all you need to do is start and enable the service.</p>
<p><code># systemctl start touchpadrestart</code></p>
<p><code># systemctl enable touchpadrestart</code></p>
<p>That's it! Quick and easy fix. (For touchpads other than this one, you can find the device driver name using <code>lspci</code> and change it in the script. )</p>
</content>
      </entry>
    
</feed>
