<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://advnpzn.dev/feed.xml" rel="self" type="application/atom+xml" /><link href="https://advnpzn.dev/" rel="alternate" type="text/html" /><updated>2026-07-01T19:08:10+00:00</updated><id>https://advnpzn.dev/feed.xml</id><title type="html">advnpzn</title><subtitle>Mitochondria is the powerhouse of the cell!</subtitle><entry><title type="html">touching grass 😱🤯 (Part 2)</title><link href="https://advnpzn.dev/blog/2025/11/11/touching-grass-02.html" rel="alternate" type="text/html" title="touching grass 😱🤯 (Part 2)" /><published>2025-11-11T00:00:00+00:00</published><updated>2025-11-11T00:00:00+00:00</updated><id>https://advnpzn.dev/blog/2025/11/11/touching-grass-02</id><content type="html" xml:base="https://advnpzn.dev/blog/2025/11/11/touching-grass-02.html"><![CDATA[<blockquote>
  <p><strong>Note:</strong> Article still in progress… stay tuned for more updates!</p>
</blockquote>

<p>Yeah, so… I touched grass again.</p>

<p>(Part 2 of my epic journey to defeat grass continues!)</p>

<p>If you don’t know what I’m talking about, check out this!
<a href="/blog/2025/04/09/touching-grass-01/">touching grass 😱🤯 (Part 1)</a></p>

<p>A colleague invited me to their sister’s wedding. I took it as an opportunity to travel around regions I haven’t been to before in my state.</p>]]></content><author><name></name></author><category term="blog" /><category term="adventure" /><category term="trek" /><category term="outdoors" /><category term="life" /><summary type="html"><![CDATA[the journey to touch grass continues...]]></summary></entry><entry><title type="html">why did I write this?</title><link href="https://advnpzn.dev/blog/2025/07/20/why.html" rel="alternate" type="text/html" title="why did I write this?" /><published>2025-07-20T00:00:00+00:00</published><updated>2025-07-20T00:00:00+00:00</updated><id>https://advnpzn.dev/blog/2025/07/20/why</id><content type="html" xml:base="https://advnpzn.dev/blog/2025/07/20/why.html"><![CDATA[<p>We do a lot of things in life, but have you ever wondered why? Sometimes we do, but sometimes we don’t. Why do we do it? Why not?</p>

<h2 id="disclaimer">Disclaimer!</h2>

<p>No thorough research went into it. You can consider this as something purely vomitted out by my brain without much thought or correction, but only based on pure experience and the correlations b/w them.</p>

<p>If you disagree with anything, take it out with my brain, not me. 🤓</p>

<p>But, hey isn’t my brain actually just “me”? Why am I refering to myself in third person if the brain is literally me?
What if the brain is actually me and the rest of the organs are just a suite that my brain wears.</p>

<p>Just like how we think a CPU is the brain of a computer…</p>

<p>But can we really compare our brain to a computer CPU?</p>

<p>Because we can easily switch out a CPU in a computer for better performance, but can we do that to humans?
Maybe we can or cannot, so far I haven’t seen anyone do it successfully.</p>

<p>[For the nerds: Yaa, I know switching out CPUs left and right isn’t totally true for all scenarios, and of course I also know you can’t just put an AMD chip on a LGA 1200, 1700 motherboard, so don’t come at me saying “erm akshually 🤓☝️ …”]</p>

<p>But even if someone were to do that, i.e move a brain from body A to body B, does Body B now become body A?</p>

<p>These ideas have been executed in a lot of different ways in fictional media, but we’ll have to wait and see how this plays out IRL…</p>

<p>Now, why did I talk about brains? Nevermind, let’s move on..</p>

<p>Have you ever thought about “why” ?</p>

<p>“Why do certain stuff happen in a certain way possibly at certain time and when certain conditions are met?”</p>

<p>Now that’s a lot of “certain”.. But seriously, why?</p>

<p>Why are we able to perform breathing without explicitly trying to do so?</p>

<p>Why do Pizzas come in square boxes instead of a circular circle?</p>

<p>Why are buildings called “buildings” when they are already built ?</p>

<p>Why is the word “weird” pronounced weirdly? Apparently “wierd” is the wrong spelling 🙄..</p>

<p>And etc.. (ngl, I stole some of those above from somewhere else I read in the past, hehe.)</p>

<p><img src="/assets/posts/why/no-more-examples.jpg" alt="no-more-examples" /></p>

<h2 id="why">why?</h2>

<p>When does a human realise the concept of “why” for the first time?
Does this realisation sprout subconciously as we grow or something external trigger this?</p>

<p>Let me share one very early experience I remember that strongly made me think about why for almost whatever I observed.</p>

<h3 id="voluntary">Voluntary</h3>
<p>(This is embarrasing 🙈, just FYI.)</p>

<p>When I was like around 5-6 yrs old, I watched cartoons (obviously). And those cartoons are full of colors and magic.
I used to think that whatever the world I’m living in was also made of magic.</p>

<p>Why did I think this or what observation made me believe this?</p>

<p>At that time, I knew what marriage/wedding was. (Yes I knew, I remember going with my parents to some weddings even at that time).
Now the one thing I did not know was how when a man and a woman marry, they get a child.</p>

<p>This was very puzzling to me at that time when I was around ~6 yrs old.</p>

<p>Different cultures follow different rituals to codify their marriage. I knew this at that time through movies.
Some have rings, some have necklaces etc..</p>

<p>So I made the connection and came to the conclusion that something divine/magical was responsible for giving a baby human in
the hands of the couple. And that magic which produces the baby is activated when the artifacts (rings, necklaces etc..) are exchanged and infused with magic by the guy who performs the marriage ritual.</p>

<p>I genuinely used to think this is the reason and that must also be why people pray to gods, why cartoons have the concept of magic in them etc..</p>

<p>Well . . . . that turned out to be a complete failure of a hypothesis and the “why” was constructed solely based on my observations/interpretations alone and did not involve input from others at all.</p>

<p>Also I did not brainstorm this further when I was 6 yrs old to see how this would play out if we marry inanimate objects and several other scenarios (which I can’t talk about for obvious reasons) etc..etc…</p>

<p>So essentially it was this 👇</p>

<p><img src="/assets/posts/why/made-up-source.webp" alt="the-source-was-me" /></p>

<p>Well, at least one assuring thing is I did not blabber about this to anyone until this exact moment and have kept this memory within me for almost 16 years.</p>

<p>I would consider this as a voluntory thought on the reasoning of why.</p>

<p>Now let’s find anything where the “why” comes out subconciously..</p>

<h3 id="involuntary">Involuntary</h3>

<p>I believe these will start to happen even before we learn to speak, reason with.
Something so deeply rooted, almost all organisms may exert this.</p>

<p>A reasoning of “why” where our body does most of the work with little involvment of brain.</p>

<p>I mean reflexes. Particularly Involuntary reflexes.</p>

<p>An involuntary reflex is a rapid, automatic response to a stimulus that does not require conscious thought.</p>

<p><img src="/assets/posts/why/monke-neuron-active.jpg" alt="monkey-see-monkey-want" /></p>

<p>One time I got my back burnt by playing hide and seek with my brother when I was 4-5 yrs old. My dad ironed his clothes and put the ironbox somewhere where we would not normally go and reach.</p>

<p>But we were playing hide and seek and I was exactly trying to hide where the ironbox was present. Without realising I pressed against it and got myself burned bad. To this day I still have the scar.</p>

<p>There was another incident involving fire. When you kick the ashes that are produced after burning something, they kinda look like explosions in movies. I kinda have some weird imaginations where I like to imagine how the ashes spread in the air when I kick it as hugh explosions.</p>

<p>Well you can already see where this is going. One day I saw a giant pile of ashes (after someone has burnt something). I ran to it faster and without thinking, I kicked it. But there was still idle fire under those ashes and burnt myself pretty bad.</p>

<p>I guess actions like this where you get hurt will automatically teach your brain and your muscles why it is bad to expose yourself to that substance. See, you don’t have to really think hard about why this is happening, your body instictively knows it is bad after experiencing it and your body will try to move away even involuntarily. I used to get myself physically hurt almost every week when I was just a lil boy.. These days it’s almost none. I don’t even remember the last time I got physically hurt..</p>

<p>But are there stuff which are involuntary but cannot be reasoned with to understand why?</p>

<p>One thing I can think of which almost everyone experiences is Love.</p>

<p>Why do we feel good (or weird) when we see that certain someone?</p>

<p>erm akshually there’s a word for it. It’s called “attraction”. 🤓☝️</p>

<p>But doesn’t it have to be both sides?
There are cases where one person is attracted and the other does not feel the same.</p>

<p>If you’re a normal organism beloning to the species of <em>homo sapiens</em> you’d have experienced it. I don’t know about other species because I ain’t one of em.</p>

<p>I’ve had my fair share of experience but I’m kind of shy to talk about it. I don’t know who’s gonna read it. So it’s best to keep my experiences minimal 😅</p>

<p>There’s a difference b/w having a crush and loving a person.</p>

<p>I have a crush on a lot of people. But I don’t really feel anything long lasting, I don’t think about them until I see them. I stop thinking about them almost immediately.</p>

<p>I would classify this as an attraction that is solely based on some logic and how we view the world through our “lens”. When we are born, we grow up in a community of people, we interract with them or their creations almost daily and our worldview is built on those interractions as foundation. Be it how we dress, culture, religion, the way one thinks, morals, ethics etc.. What one man considers normal may be very weird to someone else.</p>

<p>I don’t think I’d have to even provide an example for this.</p>

<p>So, based on the criteria of what is considered attractive of the opposite gender, we feel slightly attracted to another person that seem to satisfy that criteria. For example, having fair skin, lean body may be two of many positive criteria for a community. For some it may be how rich that person is or how overspoken they are.</p>

<p>People of same community will have common criteria that may or may not match or have commonality of some criterias with other communities. Our entire wordlview is based on what we are exposed to (the data that is fed into us) and how we correlate different data and reason with it.</p>

<p>What about love?</p>

<p>To me, it is something that makes you feel weird, have different emotions when you see, interract, or even think about them.
What do I mean “weird”? It is also another way of saying “I don’t know the ‘what’ nor the ‘why’”.</p>

<p>But some symptoms include,</p>

<p>You feel something missing when you don’t see that person.
You feel depressed/sad when they don’t give you attention.
Your fluency of words generated for a conversion aren’t as smooth when you’re talking to that person.
You start to make up scenarios in your head.
You might have dreams that include them because you’re thinking about them too much.</p>

<p>And many more.. These are what I believe most people will have in common.</p>

<p>Why does this happen?
This seems to be mixture of initiation by physical appearance, interraction and their behavior. And the interraction does not even have to be face to face.</p>

<p>But does love start the exact moment you see them or after certain interval or an action by the target that triggers it.
Likewise, does the love fade away after being in love with them due to certain triggers?</p>

<p>Both seem to happen after certain intervals based on what I observed.</p>

<p>For example, I’ll share one of my experience.</p>

<p>During my school days, I used to talk to a girl in my class very frequently, I did not have any feelings, I just talk to her almost every day about literally random things, we play together, study together, have fun together.</p>

<p>But on a random day, I started having feelings for her, started avoiding her, feeling weird when I see her, I turn away when she notices that I was looking at her and not feeling good when she’s absent etc..</p>

<p>Why did this happen suddenly and not at the start itself?</p>

<p>One hypothesis is, these all happened during my early teenage years. But this still doesn’t explain why this sudden change out of nowhere. I will not mention what happened at the end tho, it is not important.</p>

<p>And for the opposite case, it could possibly be explained by the fact people divorce their partners (maybe ?) I don’t have experience on this tho. 😂</p>

<p>The difference is, I’ve only had the feeling of love with just three people my whole life till now if I go by my own definition. But I’ve had countless crushes.</p>]]></content><author><name></name></author><category term="blog" /><category term="rant" /><category term="why" /><category term="life" /><summary type="html"><![CDATA[Sometimes have you wondered why?]]></summary></entry><entry><title type="html">touching grass 😱🤯</title><link href="https://advnpzn.dev/blog/2025/04/09/touching-grass-01.html" rel="alternate" type="text/html" title="touching grass 😱🤯" /><published>2025-04-09T00:00:00+00:00</published><updated>2025-04-09T00:00:00+00:00</updated><id>https://advnpzn.dev/blog/2025/04/09/touching-grass-01</id><content type="html" xml:base="https://advnpzn.dev/blog/2025/04/09/touching-grass-01.html"><![CDATA[<p>Did you guys understand the title?</p>

<p>If YES, congrats! give yourself a pat on the back!</p>

<p>If NO, which cave did you crawl out from? Go back to your cave!</p>

<p>But since I’m in a good mood, I’ll explain it nevertheless.</p>

<p><a href="http://touch-grass.urbanup.com/15738647">Touching grass / touch grass</a> is a figure of speech describing an action of going outside or to go outside.
YES, you read that correctly. It’s just another way of saying someone to go
outside, especially to people who never leave their home.</p>

<p>And unfortunately, I’ve heard from some people that they perceive me as someone
who does not go outside a lot. I mean, I don’t blame them, that may even be true
or is it ?</p>

<h2 id="get-to-the-point">Get to the point!</h2>

<p>Some of my colleagues were planning to go on a trek to a nearby hill on a
weekend just for fun. And by nearby I mean ~150kms. They just asked me whether I’d
come or not during the coffee break. I just said yes without really giving it a
second thought.</p>

<p>So the weekend came, we got some snacks, packed the required things and started
travelling at approximately 00:00 on a Sunday (16th March). We boarded a bus at
the Bus stand and started our travel towards a major nearby city called <a href="https://en.wikipedia.org/wiki/Tiruvannamalai">Tiruvannamalai</a>. We arrived there at around 3:10 in the very early morning.</p>

<p>But our bus (yes, another one!) to the nearby village that sits at the foothill
arrives only at 4:30 in the bus stand, so we had some spare time.</p>

<h2 id="walking-around">walking around..</h2>

<p>If you already know or have looked at what’s Tiruvannamalai’s about, you’d
already know that it is famous for temples! Lots of people all around Southern India
come here for the temples.</p>

<p>And we did just that!</p>

<p>We walked from the bus stand to the temple. It took us like 10-15 mins. We did
not go inside since there is always some small crowd even during these hours! We
just stayed outside, took a look at the temple and went back to the bus stand
and waited there for some time for the bus that we wanted to catch to arrive.</p>

<p>Here are some pics I took.</p>

<p><img src="/assets/posts/touching-grass-01/temple-1.jpg" alt="temple-night-mode" /></p>

<p><img src="/assets/posts/touching-grass-01/temple-2.jpg" alt="temple-no-mode" /></p>

<p>It’s very hard to describe through pictures how majestic and large it was.</p>

<p>And I’m warning you now, this will be the case for more pictures coming forward.</p>

<p>Our bus finally arrive, and oh boy, it was extremely crowded. I had to cling
onto a bar half asleep standing. We had to travel ~20 kms to reach the foothill
village. And I was standing the entire duration until I got down from the bus.</p>

<p>Now, Listen…. When I told this bus will take us to the foothill of the village,
I was lying! We have to wait for another bus which takes us to another village
located near the foothill.</p>

<p>In the meantime, we found a small coffee/tea shop very nearby and we had a short
break.</p>

<p><img src="/assets/posts/touching-grass-01/tea-shop.jpg" alt="tea-shop" /></p>

<p><img src="/assets/posts/touching-grass-01/tea.jpg" alt="tea" /></p>

<p>Our bus arrived, luckily in this we did not have a lot of crowd. We arrived at
the foothill after ~15mins.</p>

<p>Once we got down, there were obviously small vendors selling packaged water
bottles. We bought some of them.</p>

<p>So there was still one problem. We weren’t exactly at the foot of the hill, but
around ~1km from the actuall entry to the hill. We had to go there via an <a href="https://en.wikipedia.org/wiki/Auto_rickshaw">Auto Rickshaw</a>. For some reason, foreigners call these “Tuk Tuk”. Where did this word even
originate from ? I’ve never seen someone here use this word.</p>

<h2 id="here-we-go">Here we go!</h2>

<p><img src="/assets/posts/touching-grass-01/foothill.jpg" alt="foothill" /></p>

<p>This is what we are climbing!!! Yes, that top!
We got to the foothill. We paid the entrace fee to get tickets for all of us.
Now we had to walk for 10-15 mins to reach a checkpoint. Here checkpoints are
either small temple like structures or small shops run my local vendors. These small
vendors are present here n there during the entire stretch of the trek from the
bottom to the top.</p>

<p>Found some monkeys at the first checkpoint! It’s a beautiful small temple as
well!</p>

<p><img src="/assets/posts/touching-grass-01/monkeys.jpg" alt="monkeys" /></p>

<p>Smile, please! 😄</p>

<p><img src="/assets/posts/touching-grass-01/temple-checkpoint-01.jpg" alt="temple-checkpoint-01" /></p>

<p><img src="/assets/posts/touching-grass-01/temple-checkpoint-02.jpg" alt="temple-checkpoint-02" /></p>

<p><img src="/assets/posts/touching-grass-01/temple-checkpoint-03.jpg" alt="temple-checkpoint-03" /></p>

<p>We rested like 10 mins here and continued on our way where we reached the steps.
You might be thinking, “huh wait a sec, if there are steps, wouldn’t this trek
be very easy ?”. Yes it would, atleast that’s what I thought which turned out to
be absolutely wrong. Very wrong!</p>

<p><img src="/assets/posts/touching-grass-01/steps.jpg" alt="steps" /></p>

<p>I do not remember the exact amount of steps we had to climb, but it was well
over a thousand. But each steps were marked with a number indicating how many steps
we have crossed. Initially it was very easy, I even dashed through some people
who went before us very quickly. But as time went on, I became tired quickly. I
was able to feel my leg getting heavy and I was starting to struggle to lift my
legs and at the same time sweating profusely. It was as if I had taken a bath.
Because of this, I had to take short periods of rest here n there in the steps to
catch my breath.
After ~1000 steps, the steps disappeared! 😱</p>

<p>There was only rocky paths left from there. Now this became challenging. There
was one point while traversing these rocks, I became so tired, I just laid down
on a big rock catching my breath. I became so tired I started to feel like
throwing up. But luckily I didn’t. I could feel my heartback in my face. It was as if
someone or something inside me is looking for a way to escape. Like an egg
getting ready to hatch. This is where I rested the longest (for 15-20 mins).</p>

<p>The views were nice tho!</p>

<p><img src="/assets/posts/touching-grass-01/early-morning-hill.jpg" alt="sunrise" /></p>

<p><img src="/assets/posts/touching-grass-01/top-closer-look.jpg" alt="closer-look" /></p>

<p>As I said, these pictures barely justify what you can experience with your own
eyes. These looked absolutely majestic and far away.</p>

<p>These rocky climbs were the hardest and the longest. I believe I spent like
2-2.5 hrs just on this! I had to rest and climb every now and then at this stage.
After doing the cycle for a while, we reached a point, where we got another good
view, but this time from a higher point.</p>

<p>The view was absolutely breath taking. (for someone who hasn’t done something
like this in a decade or so 🤓)</p>

<p><img src="/assets/posts/touching-grass-01/middle-1.jpg" alt="wow" /></p>

<p><img src="/assets/posts/touching-grass-01/middle-2.jpg" alt="no-words" /></p>

<p><img src="/assets/posts/touching-grass-01/middle-3.jpg" alt="stunning" /></p>

<p>We continued to do the same for a while, then we reached the final phase of the
climb. We have to climb the steepest part of the trek. it’s essentially just a
huge 60-90 metre single boulder and we have to climb it 70-80 degrees vertically.</p>

<p>Luckily, there are stairs to assists, otherwise no one would be able to do this.</p>

<p><img src="/assets/posts/touching-grass-01/steep.jpg" alt="steep-part" /></p>

<p>I took this photo looking up at the sky. It’s actually very steep and high. If
you’re climbing these metal shaky stairs, just make sure never to look down if
you’re afraid of height. But if you fall, it’s GGs’, absolute death, no chance of
surviving. But the scene after this dangerous hurdle is worth it if you ask me.</p>

<p>There is one way to go up and another one to go down. Both of them are steep and
very rattly metal staircases. There was a huge crowd lining up and queuing in
the path that leads up.</p>

<p>What we did is, instead of waiting for hours, we just went up the stairs which
was meant for people to go downwards from the top. Since there was no sign of
anyone climbing down from that staircase. Climbing those stairs was thrilling! I’d
say it was the most challenging part of this trek.</p>

<p>Once we climbed this, we had to trek some distance from where we could clearly
see that we are nearing the top of the hill. Because there is actually a small
temple at the top.</p>

<p>Here are some more cool pictures after climbing the steep part!</p>

<p><img src="/assets/posts/touching-grass-01/midtop-1.jpg" alt="midtop-1" /></p>

<p><img src="/assets/posts/touching-grass-01/midtop-2.jpg" alt="midtop-2" /></p>

<p><img src="/assets/posts/touching-grass-01/midtop-3.jpg" alt="midtop-3" /></p>

<p><img src="/assets/posts/touching-grass-01/midtop-4.jpg" alt="midtop-4" /></p>

<p>After a while, we were able to reach the top. The view looks great, I even saw
some clouds going trough me. It was chilling after the trek. We started at the
base at 6:00 and reached the top at 9:30-10:00. Based on what i’ve heard, this is
the average time it takes for the trek.</p>

<p>We went inside the temple to see what’s inside and just looked around took a lot
of photos and was just enjoying the view most of the time.</p>

<p>Here are some pics from the top.</p>

<p><img src="/assets/posts/touching-grass-01/top-1.jpg" alt="top-1" /></p>

<p><img src="/assets/posts/touching-grass-01/top-2.jpg" alt="top-2" /></p>

<p><img src="/assets/posts/touching-grass-01/top-3.jpg" alt="top-3" /></p>

<p><img src="/assets/posts/touching-grass-01/top-4.jpg" alt="top-4" /></p>

<p>We decided to trek back down and followed the same path. Trekking down was much
easier and faster, except for the climbing down part from the steep boulder. It
was more scarier climbing down than climbing up. Once down, we dashed through
the rocks like it was some parkour. After that we reached the steps and basically
ran all the way in the steps, it was dangerous but the steps were large so it
worked out.</p>

<p>Once we reached the foothill, we took an Auto Rickshaw and went to the nearest
bus stop where we got on the bus to Tiruvannamalai back so that we can take a bus
from there to our starting place.</p>

<p>Here are some pics that I took while travelling in the bus!</p>

<p><img src="/assets/posts/touching-grass-01/road-1.jpg" alt="road-1" /></p>

<p><img src="/assets/posts/touching-grass-01/road-2.jpg" alt="road-2" /></p>

<p><img src="/assets/posts/touching-grass-01/road-3.jpg" alt="road-3" /></p>

<p><img src="/assets/posts/touching-grass-01/road-4.jpg" alt="road-4" /></p>

<p>Once we got back in Tiruvannamalai, we went to one of my friend’s home where we
had a nice lunch. We stayed there for a while and went back to the bus stand for
going back home. Again we travelled by bus all the way back. It was long hours
but since we all were sleeping due to fatigue, we did not really notice what
happened.</p>

<h2 id="end-">End ?</h2>

<p>This is the first time I’ve done something this physically intensive thing in a
very long time. It was a challenging experience which was well worth the view I
got at the top. Nothing feels rewarding more than pushing oneself to the utmost
for something!</p>

<p>And I don’t think I need to explain how I felt the next day when I woke up.</p>

<p>This article/blog hopefully will act as a defence or a proof that I can indeed
“touch grass”!</p>]]></content><author><name></name></author><category term="blog" /><category term="adventure" /><category term="trek" /><category term="outdoors" /><category term="life" /><summary type="html"><![CDATA[A trek to prove I can indeed touch grass]]></summary></entry><entry><title type="html">zstd is cool</title><link href="https://advnpzn.dev/blog/2024/11/26/i-like-zstd.html" rel="alternate" type="text/html" title="zstd is cool" /><published>2024-11-26T00:00:00+00:00</published><updated>2024-11-26T00:00:00+00:00</updated><id>https://advnpzn.dev/blog/2024/11/26/i-like-zstd</id><content type="html" xml:base="https://advnpzn.dev/blog/2024/11/26/i-like-zstd.html"><![CDATA[<p><a href="https://en.wikipedia.org/wiki/Zstd">zstd / Zstandard</a> is a compression algorithm from Facebook(now Meta) developed by Yann Collet at
around ~2015-2016.</p>

<p>Not gonna lie, but <code class="language-plaintext highlighter-rouge">zstd</code> is kinda cool to me.</p>

<p>Why ?</p>

<p>Because it is a lot faster than some compression algorithms like <code class="language-plaintext highlighter-rouge">gzip</code> while still maintaining the same compression ratio. I kind of feel bad that I
only got to know about this today, while skimming through the internet to see how
I can reduce the size of the <code class="language-plaintext highlighter-rouge">*.tar.gz</code> file that I created. I usually use <code class="language-plaintext highlighter-rouge">gzip</code> because I haven’t really had a reason to look out for options to be honest.</p>

<p><code class="language-plaintext highlighter-rouge">gzip</code> is based on the <a href="https://en.wikipedia.org/wiki/Deflate">DEFLATE</a> format that uses a combination of LZ77 and Huffman coding.</p>

<h2 id="tests">Tests</h2>

<p>I’ve even done a small test to see which performs better b/w <code class="language-plaintext highlighter-rouge">gzip</code> &amp; <code class="language-plaintext highlighter-rouge">zstd</code>.</p>

<h2 id="environment">Environment</h2>

<p>I used a <code class="language-plaintext highlighter-rouge">wsl2</code> environment. I used <a href="https://github.com/BluRosie/hg-engine">hg-engine</a> git repository for testing.</p>

<p>I had run some builds and other stuff inside this git repository and the total
size is around 1.8 GiB.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">du</span> <span class="nt">-sh</span> hg-engine/
1.8G    hg-engine/
</code></pre></div></div>

<table>
  <thead>
    <tr>
      <th> </th>
      <th> </th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>OS</td>
      <td>Debian GNU/Linux bookworm 12.8 x86_64 (WSL2)</td>
    </tr>
    <tr>
      <td>Processor</td>
      <td>AMD Ryzen 5 5600H (12) @ 3.29 GHz</td>
    </tr>
    <tr>
      <td>Ram</td>
      <td>7.43 GiB</td>
    </tr>
  </tbody>
</table>

<p>I’m going to try and compress this directory by both <code class="language-plaintext highlighter-rouge">gzip</code> and <code class="language-plaintext highlighter-rouge">zstd</code> using single thread.</p>

<h2 id="results">Results</h2>

<table>
  <thead>
    <tr>
      <th> </th>
      <th>gzip</th>
      <th>zstd</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Size</td>
      <td>537 MiB</td>
      <td>300 MiB</td>
    </tr>
    <tr>
      <td>Time</td>
      <td>56 secs</td>
      <td>27 secs</td>
    </tr>
  </tbody>
</table>

<p>Gzip</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">time tar</span> <span class="nt">-I</span> <span class="nb">gzip</span> <span class="nt">-cf</span> test.tar.gz hg-engine/<span class="k">*</span> <span class="o">&amp;&amp;</span> <span class="nb">du</span> <span class="nt">-sh</span> test.tar.gz

real    0m56.044s
user    0m0.002s
sys     0m0.006s
537M    test.tar.gz
</code></pre></div></div>
<p>Zstd</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">time tar</span> <span class="nt">-I</span> zstd <span class="nt">-cf</span> test.tar.zst hg-engine/<span class="k">*</span> <span class="o">&amp;&amp;</span> <span class="nb">du</span> <span class="nt">-sh</span> test.tar.zst

real    0m27.091s
user    0m0.006s
sys     0m0.000s
300M    test.tar.zst
</code></pre></div></div>

<h2 id="conclusion">Conclusion</h2>

<p>From this very basic and small test, you could see that <code class="language-plaintext highlighter-rouge">zstd</code> performed extremely well in terms of both the size of the final compressed file
and the time taken to compress.</p>

<p>I know that I should have tested this more thoroughly like,</p>

<p>• Multiple threads
• varying compression levels
• Decompression time</p>

<p>And a lot…</p>

<p>For modern hardware, <code class="language-plaintext highlighter-rouge">zstd</code> seems to be the most suitable one. And I’m going to use <code class="language-plaintext highlighter-rouge">zstd</code> a lot :)</p>]]></content><author><name></name></author><category term="blog" /><category term="compression" /><category term="zstd" /><category term="performance" /><category term="tech" /><summary type="html"><![CDATA[A quick look at zstd compression algorithm and why it's awesome]]></summary></entry><entry><title type="html">vcpkg - A C++ Package Manager</title><link href="https://advnpzn.dev/blog/2024/03/30/using-vcpkg-manifest-mode.html" rel="alternate" type="text/html" title="vcpkg - A C++ Package Manager" /><published>2024-03-30T00:00:00+00:00</published><updated>2024-03-30T00:00:00+00:00</updated><id>https://advnpzn.dev/blog/2024/03/30/using-vcpkg-manifest-mode</id><content type="html" xml:base="https://advnpzn.dev/blog/2024/03/30/using-vcpkg-manifest-mode.html"><![CDATA[<p>Do you use C++?</p>

<p>Do you struggle with maintaining dependencies for your projects?</p>

<p>Is it taking too much time to setup your C++ development environment setup?</p>

<p>If YES, then consider that your development workflow is going to become smooth after reading this post.</p>

<p>One of the things where we bang our heads when dealing with C++ is managing third party dependencies that we use in our projects. Be it a seasoned user or a novice, everyone must have tackled this issue somewhere at sometime using different ways.</p>

<p><img src="/assets/posts/using-vcpkg-manifest-mode/struggle.png" alt="Struggle with C++ dependencies" /></p>

<p>But is there a thing as which one’s the “best” way?</p>

<p>Of course, there isn’t, but anything that makes me not bang my head against the table, I would consider it a better way. And this is where we’ll be talking about Package Managers, and specifically about <code class="language-plaintext highlighter-rouge">vcpkg</code>.</p>

<h2 id="vcpkg">vcpkg</h2>

<p><a href="https://vcpkg.io/en/">vcpkg</a> is a package or dependency manager for C++. It’s very unfortunate that there is no official package manager for C++ at its dawn. I am not sure if the concept of “package managers” even existed.</p>

<h2 id="installation">Installation</h2>

<p>It’s pretty easy actually.</p>

<p>We’ll be focusing on GNU/Linux installation entirely. This applies for usage as well. I’ll be using Debian 12. But 90% of the time, it’s pretty much the same in Microsoft Windows.</p>

<p>Clone the repo.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/microsoft/vcpkg.git
</code></pre></div></div>

<p>Run the script</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cd </span>vcpkg <span class="o">&amp;&amp;</span> ./bootstrap-vcpkg.sh
</code></pre></div></div>

<p>You can add <code class="language-plaintext highlighter-rouge">-disableMetrics</code> as an argument to the shell script, if you don’t want Microsoft to spy on you.</p>

<p>Then if you want to run <code class="language-plaintext highlighter-rouge">vcpkg</code> from anywhere in your shell, you can add the PATH to your <code class="language-plaintext highlighter-rouge">.bashrc</code> or profile file.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">VCPKG_ROOT</span><span class="o">=</span>/path/to/vcpkg
<span class="nb">export </span><span class="nv">PATH</span><span class="o">=</span><span class="nv">$VCPKG_ROOT</span>:<span class="nv">$PATH</span>
</code></pre></div></div>

<p>After this, you can probably run <code class="language-plaintext highlighter-rouge">vcpkg</code> from any directory.</p>

<h2 id="usage">Usage</h2>

<p>Now to come to the part where we actually use <code class="language-plaintext highlighter-rouge">vcpkg</code> in our C++ project. I’ll use a demo project.</p>

<h2 id="demo-project">Demo Project</h2>

<p>We will be using <a href="https://github.com/fmtlib/fmt">fmt</a> library to print something.</p>

<p><code class="language-plaintext highlighter-rouge">main.cxx</code></p>

<div class="language-cpp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#include</span> <span class="cpf">&lt;fmt/core.h&gt;</span><span class="cp">
</span>
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
  <span class="n">fmt</span><span class="o">::</span><span class="n">print</span><span class="p">(</span><span class="s">"Mitochondria is the powerhouse of the cell!</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>

  <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</code></pre></div></div>

<p>And to build this project, we’ll be using CMake.</p>

<p>So, our initial project directory would look like this.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>demo/
├── CMakeLists.txt
└── main.cxx
</code></pre></div></div>

<p>Now from our <code class="language-plaintext highlighter-rouge">demo</code> directory, do</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>vcpkg new <span class="nt">--application</span>
</code></pre></div></div>

<p>This would create two new files in our <code class="language-plaintext highlighter-rouge">demo</code> directory.</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">vcpkg.json</code> - The file where we define our dependencies.</li>
  <li><code class="language-plaintext highlighter-rouge">vcpkg-configuration.json</code> - The file where we define how <code class="language-plaintext highlighter-rouge">vcpkg</code> behaves, such as which custom registry to use etc.</li>
</ul>

<p>The above way of initialising &amp; using <code class="language-plaintext highlighter-rouge">vcpkg</code> is called as <strong>Manifest Mode</strong>.</p>

<p>There are 2 modes generally:</p>

<ul>
  <li>Classic</li>
  <li>Manifest</li>
</ul>

<p>We’ll be using Manifest mode throughout this post, because it is BETTER!</p>

<p>Now, to add a dependency to our project, which is <code class="language-plaintext highlighter-rouge">fmt</code>:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>vcpkg add port <span class="nb">fmt</span>
</code></pre></div></div>

<p>You can search for many packages at <a href="https://vcpkg.io/en/packages">https://vcpkg.io/en/packages</a>.</p>

<p>Now, if you open that <code class="language-plaintext highlighter-rouge">vcpkg.json</code> file, you can see that the dependency we added is present.</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"dependencies"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
    </span><span class="s2">"fmt"</span><span class="w">
  </span><span class="p">]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<h2 id="cmakeliststxt">CMakeLists.txt</h2>

<p>Make sure you have <code class="language-plaintext highlighter-rouge">cmake</code> installed beforehand along with something like <code class="language-plaintext highlighter-rouge">make</code> or <code class="language-plaintext highlighter-rouge">ninja</code>. Since this is a small demo project, we can have the following in our demo project.</p>

<p><code class="language-plaintext highlighter-rouge">CMakeLists.txt</code></p>

<div class="language-cmake highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cmake_minimum_required</span><span class="p">(</span>VERSION 3.12<span class="p">)</span>

<span class="nb">project</span><span class="p">(</span><span class="s2">"demo"</span><span class="p">)</span>

<span class="nb">find_package</span><span class="p">(</span>fmt CONFIG REQUIRED<span class="p">)</span>

<span class="nb">add_executable</span><span class="p">(</span>demo <span class="s2">"main.cxx"</span><span class="p">)</span>
<span class="nb">target_link_libraries</span><span class="p">(</span>demo PRIVATE fmt::fmt<span class="p">)</span>
</code></pre></div></div>

<p>Now, obviously, when you run this:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmake <span class="nt">-S</span> <span class="nb">.</span> <span class="nt">-B</span> build
</code></pre></div></div>

<p>you’ll be getting an error.</p>

<p>Now to use vcpkg with CMake, we need CMake to use the vcpkg CMake toolchain file (<code class="language-plaintext highlighter-rouge">vcpkg.cmake</code>) when we configure our CMake against our <code class="language-plaintext highlighter-rouge">CMakeLists.txt</code> file.</p>

<p>We can do this by specifying the path to the toolchain file using <code class="language-plaintext highlighter-rouge">CMAKE_TOOLCHAIN_FILE</code> to pass the path to the <code class="language-plaintext highlighter-rouge">vcpkg.cmake</code> file. This can be done in many ways. But for now, we will use this as an argument with the CMake command.</p>

<p>Delete the existing <code class="language-plaintext highlighter-rouge">build</code> directory. Then, do</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmake <span class="nt">-S</span> <span class="nb">.</span> <span class="nt">-B</span> build <span class="nt">-DCMAKE_TOOLCHAIN_FILE</span><span class="o">=</span><span class="nv">$VCPKG_ROOT</span>/scripts/buildsystems/vcpkg.cmake
</code></pre></div></div>

<p>Now this would actually use <code class="language-plaintext highlighter-rouge">vcpkg</code> to build the dependencies specified, and at the end it also shows how to utilize the dependency in your <code class="language-plaintext highlighter-rouge">CMakeLists.txt</code> file.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>The package fmt provides CMake targets:

    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt)

    # Or use the header-only version
    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt-header-only)
</code></pre></div></div>

<p>After this configuration, we can try building.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmake <span class="nt">--build</span> build
</code></pre></div></div>

<p>This above command would probably output the following:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-- Running vcpkg install
Detecting compiler hash for triplet x64-linux...
Compiler found: /usr/bin/c++
All requested packages are currently installed.
Total install time: 1.12 us
The package fmt provides CMake targets:

    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt)

    # Or use the header-only version
    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt-header-only)

-- Running vcpkg install - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/mito/demo/build
[ 50%] Building CXX object CMakeFiles/demo.dir/main.cxx.o
[100%] Linking CXX executable demo
[100%] Built target demo
</code></pre></div></div>

<p>Looks like the binary <code class="language-plaintext highlighter-rouge">demo</code> was built. Let’s try running it.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./build/demo
</code></pre></div></div>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Mitochondria is the powerhouse of the cell!
</code></pre></div></div>

<p>It works!</p>

<p>Now this is far better than manually downloading the source code of the library, building it, using the header files in your src, etc..</p>]]></content><author><name></name></author><category term="blog" /><category term="C++" /><category term="vcpkg" /><category term="Package Manager" /><category term="CMake" /><category term="Tutorial" /><summary type="html"><![CDATA[Learn how to use vcpkg in manifest mode to manage C++ dependencies easily and efficiently.]]></summary></entry><entry><title type="html">Increasing Memory in WSL2</title><link href="https://advnpzn.dev/blog/2024/03/12/wsl2-increase-memory.html" rel="alternate" type="text/html" title="Increasing Memory in WSL2" /><published>2024-03-12T00:00:00+00:00</published><updated>2024-03-12T00:00:00+00:00</updated><id>https://advnpzn.dev/blog/2024/03/12/wsl2-increase-memory</id><content type="html" xml:base="https://advnpzn.dev/blog/2024/03/12/wsl2-increase-memory.html"><![CDATA[<p>You guys already know what is <code class="language-plaintext highlighter-rouge">wsl2</code>, so let’s not waste time. I assume at this point, you already have a distro for your WSL2 ready and don’t know how to increase the RAM/memory.</p>

<p>For this example, I’ll be using <code class="language-plaintext highlighter-rouge">Debian 12 (Bookworm)</code>.</p>

<p><img src="/assets/posts/wsl2-increase-memory/pfetch.png" alt="pfetch output showing Debian system information" /></p>

<h2 id="powershell">Powershell</h2>

<p>Go to your <code class="language-plaintext highlighter-rouge">$HOME</code> directory in powershell. If you don’t know what your HOME directory is, just do</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">echo</span><span class="w"> </span><span class="bp">$HOME</span><span class="w">
</span></code></pre></div></div>

<p>This would show you the home directory.</p>

<p>After this, we need to create a file called <code class="language-plaintext highlighter-rouge">.wslconfig</code> in the <code class="language-plaintext highlighter-rouge">$HOME</code> directory. We can do this from PowerShell itself.</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">notepad.exe</span><span class="w"> </span><span class="o">.</span><span class="nf">wslconfig</span><span class="w">
</span></code></pre></div></div>

<h2 id="notepad">Notepad</h2>

<p>A new Notepad window might open, in there just type</p>

<p><code class="language-plaintext highlighter-rouge">.wslconfig</code></p>

<div class="language-ini highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">[wsl2]</span><span class="w">
</span><span class="py">memory</span><span class="p">=</span><span class="s">8GB</span>
</code></pre></div></div>

<p>Now, for the <code class="language-plaintext highlighter-rouge">memory=</code> value, your value should be equal to or less than your actual Memory / RAM you have.</p>

<p>Let’s say, I have 16 GB of RAM, then I can give 4 GB, 8GB, 10GB, 16 GB etc.. as long as it is within or equal to 16 GB.</p>

<p>Save the <code class="language-plaintext highlighter-rouge">.wslconfig</code> file in your <code class="language-plaintext highlighter-rouge">$HOME</code> directory.</p>

<p>Sometimes, it would be saved as <code class="language-plaintext highlighter-rouge">.wslconfig.txt</code>, you can rename it easily in PowerShell.</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">mv</span><span class="w"> </span><span class="o">.</span><span class="nf">wslconfig</span><span class="o">.</span><span class="nf">txt</span><span class="w"> </span><span class="o">.</span><span class="nf">wslconfig</span><span class="w">
</span></code></pre></div></div>

<h2 id="restart-your-wsl2">Restart your WSL2</h2>

<p>After this, if your WSL2 is already running, restart it.</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">wsl</span><span class="w"> </span><span class="nt">--shutdown</span><span class="w">
</span></code></pre></div></div>

<p>And now open, any distro you have.</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">wsl</span><span class="w"> </span><span class="nt">-d</span><span class="w"> </span><span class="nx">Debian</span><span class="w">
</span></code></pre></div></div>

<p>Now check how much RAM/memory you have 😄</p>

<h2 id="references">Reference(s)</h2>

<ul>
  <li><a href="https://learn.microsoft.com/en-us/windows/wsl/wsl-config">https://learn.microsoft.com/en-us/windows/wsl/wsl-config</a></li>
</ul>]]></content><author><name></name></author><category term="blog" /><category term="WSL2" /><category term="Windows" /><category term="Linux" /><category term="Tutorial" /><summary type="html"><![CDATA[Learn how to increase the RAM/memory allocation for your WSL2 Linux distributions on Windows.]]></summary></entry><entry><title type="html">Why I use Telegram</title><link href="https://advnpzn.dev/blog/2023/02/24/why-i-use-telegram.html" rel="alternate" type="text/html" title="Why I use Telegram" /><published>2023-02-24T21:09:31+00:00</published><updated>2023-02-24T21:09:31+00:00</updated><id>https://advnpzn.dev/blog/2023/02/24/why-i-use-telegram</id><content type="html" xml:base="https://advnpzn.dev/blog/2023/02/24/why-i-use-telegram.html"><![CDATA[<p>For those who has never heard of this word, let me tell you what it is. <a href="https://telegram.org/">Telegram Messenger</a> which in short is called ‘Telegram’ is an internet instant messaging app.</p>

<p><img src="/assets/posts/why-i-use-telegram/thumbnail.jpg" alt="Telegram" /></p>

<p>One could talk to their contacts through Telegram if they also happen to have
that app. One could create/join groups, channels where they could chat with others
and share anything. So, basically it’s pretty much like any other instant
messaging app.</p>

<h2 id="how-i-came-to-know-about-telegram">How I came to know about Telegram</h2>

<p>Like, how every tale goes, once upon a time, I was very bored and all I had at
the moment was my dad’s android smartphone with me in the house. I used to play
games like Subway Surfers, Temple Run, Angry Birds, Clash of Clans and so on… In
a word, It was the golden era for android games 🔥 where you could find quality
games. I was going through the Google Play Store looking for something to
download. This is where I got recommended to download this app called “Telegram”. I
knew it was an instant messaging app, but never used it before. I assumed it would
be similar to Facebook/Whatsapp, so downloaded it to check out what it’s all
about.</p>

<h1 id="first-time-experience">First time Experience</h1>

<p>Ok, so I have downloaded the app, registered for an account using my mobile
number. At first it was empty, there’s nothing there, if one of my contacts has this
app, then it would show up there on the personal section. I could then start
chatting with my contacts on Telegram if I want.</p>

<p>No one in the contacts was using Telegram, so it was basically empty. There’s
pretty much nothing in the app. 😟</p>

<h2 id="what-i-found">What I found</h2>

<p>So, I was pretty underwhelmed and asked myself, “Is that it?”. There must be something else there that I’m missing. So, I tried looking at
every nook and corner of the app, this is when I found the <code class="language-plaintext highlighter-rouge">search</code> function of the app.</p>

<p>Ok, I am over exaggerating this. The function was just right in front of me in
the home page itself. I searched <code class="language-plaintext highlighter-rouge">'Movies'</code>, and guess what? It showed me a bunch of channels with the name <code class="language-plaintext highlighter-rouge">'Movies'</code>. When I clicked one of them, I was presented with movie files that was uploaded
to that on a regular basis.</p>

<p>🎉️ We found piracy!!</p>

<p>This is when I started to look into Telegram a bit more.</p>

<h2 id="why-i-stayed">Why I stayed</h2>

<p>Initially, piracy is the sole reason. I had limited internet (mobile internet)
and these channels offered movies at lower sizes. Also to avoid the traditional
way of pirating movies off the internet.</p>

<p>Okay, you might ask what is that “Traditional Way”. That traditional way of mine
is basically,</p>

<p>• You open the browser
• Search for a piracy site to download your movie
• Open the site
• Look for your movie
• Click the <code class="language-plaintext highlighter-rouge">Download</code> button.
• Oops, Guess what? That was a FAKE <code class="language-plaintext highlighter-rouge">Download</code> button and you are now presented with 3-4 pop up tabs/ads.
• Clear all these ads,
• Carefully, click the <code class="language-plaintext highlighter-rouge">Download</code> button.
• Realise the movie file size is more than the Bandwidth offered by your Internet
Plan.
• Go back to the search engine.
• Repeat Bullet Point 2.</p>

<p>I mean, who wants to go through this hell. At that time, there wasn’t any
adblockers that I know of.</p>

<p>Telegram, <em>cough</em> <em>cough</em>, I mean the channels that upload these files to telegram offer 1 click way to
download these files. Just go to the channel, click the file and it will start
downloading. Look, how simple that is.</p>

<p><img src="/assets/posts/why-i-use-telegram/simple.gif" alt="simple" /></p>

<h2 id="why-i-really-stayed">Why I really stayed</h2>

<p>Piracy was not the sole reason I stayed in Telegram till now and continue to do
so. As time went on, I got better Internet in terms of both speed and bandwidth
and also, I learned about Torrent 😈. Now pirating stuff from Telegram is viewed by me as a lowly thing to do, since
I got the superior Torrent :)</p>

<p>There was a time while I was exploring several groups, I came to know about the
concepts of Bots in Telegram. I got hooked at first site. Imagine an account, that you could
program to automate any tasks, well yes, it can. So, I got into some programming
groups such as <code class="language-plaintext highlighter-rouge">@python</code>, Telegram Bot Library Groups like <code class="language-plaintext highlighter-rouge">@pythontelegrambot</code>, <code class="language-plaintext highlighter-rouge">@pyrogram</code>, <code class="language-plaintext highlighter-rouge">@telethon</code>. Started learning python (I already knews the basics). Got into advanced
topics. Now, I started developing bots for telegram. Followed examples here and there,
literally wacthed youtube videos and typed everything as they typed in that
video, all kinds of stuff. But, once I got the hang of it and familiarised myself
with that API wrapper, I was getting good at it. I made several bots, most of it
are offline for now. You can check out <a href="https://t.me/aki_akinator_bot">Akinator-Bot</a> which I consider one of my most successful bots. It even got <a href="https://t.me/BotsArchive/2285">Bot of the Week</a> award in the <a href="https://t.me/BotsArchive">BotsArchive</a> channel.</p>

<p>I guess, I still stay on telegram because I like the programming community
there. Made lots of acquaintances, laughed together, shit on others together, memed
together and it was fun and it still is.</p>

<p>Also, I like the the unlimited storage that they are giving. I mean the popular
messaging platform “Discord” offers like 8 MiB per file lol. Meanwhile, Telegram
offers, if I remember correctly, it’s around 1.5 GiB per file. The difference
is insane.</p>

<h2 id="what-i-dislike">What I dislike</h2>

<p>There are a lot of things I dislike, like there are a lot of “crypto bros” in
the platform, who will try their hard to make you to invest in some obscure never
ever heard of coin. They are annoying.</p>

<p>And I have a slightly negative view on the Introduction of Premium plan to
telegram. I mean, if they really are low on money, then it’s perfectly okay to give
users premium plan. For me, it’s too costly, and most of the feature is just used
for flexing to others except that increase in size of per file for uploading
and unrestricted upload/download speed.</p>

<p>Telegram doesn’t have E2E (End to End) Encryption by default for Groups and
Channels and they use their own in-house encryption protocol, the MTProto. E2E
encrytion is supported for private messages if and only if you enable Secret Chats. I
know most people say this point as one of the negative points of telegram. I
somewhat I agree with that along with the fact that only the client side is
opensource. Well, I don’t blame them, it’s how it is.</p>

<h2 id="conclusion">Conclusion</h2>

<p>Telegram is growing at a fast rate in the category of instant messaging. That
means people took a liking to Telegram and what it offers to its users (I hope
it’s not piracy 👀️). Telegram is here to stay for the foreseeable future.</p>]]></content><author><name></name></author><category term="blog" /><category term="telegram" /><category term="programming" /><category term="social" /><category term="media" /><category term="life" /><summary type="html"><![CDATA[For those who has never heard of this word, let me tell you what it is. Telegram Messenger which in short is called ‘Telegram’ is an internet instant messaging app.]]></summary></entry></feed>