<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>VidhuKant&#x27;s Blog</title>
    <link>/</link>
    <description>VidhuKant&#x27;s rants about tech and shit</description>
    <generator>Zola</generator>
    <language>en</language>
    <atom:link href="https://vidhukant.com/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Fri, 06 Feb 2026 00:00:00 +0000</lastBuildDate>
      <item>
        <title>How I added a guestbook to my static website</title>
        <pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/how-i-added-a-guestbook-to-my-website/</link>
        <guid>/blog/how-i-added-a-guestbook-to-my-website/</guid>
        <description xml:base="/blog/how-i-added-a-guestbook-to-my-website/">
          
            <![CDATA[<p>I just added a guestbook to my website, you can find it <a href="/guestbook">here.</a>.
It's a page where you can write a message and I'll can add it to the webpage. Pretty neat.</p>
<p>It's using <a rel="noopener external" target="_blank" href="https://git.vidhukant.com/guestbook/about">this server</a> which can
be paired up with any static website. It supports templates which I use to generate
zola shortcodes to represent each guestbook entry, but you can also generate pure html, or
really whatever you want with it. No JavaScript needed1</p>
<p>If you have a static website and have been wanting to add a guestbook to your blog,
do check this out, I hope this comes of use. There's example config over at the
git repo, but if you're having trouble, you can contact me whenever you want, and I'll
be happy to help.</p>
<p><a href="/guestbook">Don't forget to sign my guestbook!</a></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: How I added a guestbook to my static website">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>The Catppuccin theme for cgit</title>
        <pubDate>Fri, 26 Sep 2025 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/cgit-catppuccin/</link>
        <guid>/blog/cgit-catppuccin/</guid>
        <description xml:base="/blog/cgit-catppuccin/">
          
            <![CDATA[<p>The original cgit theme is pretty ugly! I've created a nicer look with pretty much
the original structure of cgit, and it uses the <a rel="noopener external" target="_blank" href="https://catppuccin.com/">catppuccin</a> color scheme!</p>
<p>Check out <a rel="noopener external" target="_blank" href="https://git.vidhukant.com/cgit-catppuccin/about/">cgit-catppuccin</a> if you want to have the
beautiful catppuccin theme on your git server too. (You can see the theme in action at
<a rel="noopener external" target="_blank" href="https://git.vidhukant.com/">https://git.vidhukant.com/</a>.)</p>
<h2 id="how-do-i-use-it">How do I use it?</h2>
<p>The default styling is catppuccin mocha. To get it to work, you can simply curl
<a rel="noopener external" target="_blank" href="https://git.vidhukant.com/cgit-catppuccin/plain/cgit.css">this URL</a>, and save it to
<code>/usr/share/cgit/cgit.css</code></p>
<p>If you want to use any of the other flavors, just edit this file and uncomment the
color scheme you want. For syntax highlighting and markdown styling, check out
the steps listed over at <a rel="noopener external" target="_blank" href="https://git.vidhukant.com/cgit-catppuccin/about/">the repository</a>.</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: The Catppuccin theme for cgit">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Plasma 6 - 6 Months Review</title>
        <pubDate>Fri, 09 May 2025 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/thoughts-about-kde-plasma/</link>
        <guid>/blog/thoughts-about-kde-plasma/</guid>
        <description xml:base="/blog/thoughts-about-kde-plasma/">
          
            <![CDATA[<p>For about 6 months, I've been using KDE Plasma 6 as my desktop environment.
Let's first talk about why.</p>
<p>Since I started using linux, I tried various desktop environments, including Gnome 3, KDE, Mate and XFCE.
Out of those I really loved KDE (and XFCE if it really had to be lightweight), but I soon moved on to
standalone, tiling window managers and never looked back. My old potato laptop liked my decision too.</p>
<p>Since I got my new laptop, I'd been using XMonad as my daily driver. I installed XFCE for some reason
but never used it, and might have checked out other window managers but never for more than a single day.
So I can safely say I'd never really experienced anything other than XMonad for about 4 years.
For a change I decided to use a DE. Part of the reason was that Plasma 6 was here, and I'd just
stick to window managers rather than using anything other than KDE.</p>
<h2 id="first-impressions-of-kde">First impressions of KDE</h2>
<p>Plasma looks good out of the box, and it's arguably the sexiest window manager out there.
And now that plasma lets you choose the accent color, I didn't spend any time on making
it look pretty. I did have to disable the floating taskbar because it was glitchy (probably
only on X) but apart from that I had default KDE. SDDM looks nice, it was easy to use dvorak
in both the desktop and the login screen.</p>
<p>Didn't take me long to get used to floating window management, and I somehow only needed 4 virtual
desktops instead of the usal 10. But whenever I was doing much multitasking, something just felt
wrong. KDE Connect's clipboard sharing was a nice addition to my workflow, though.</p>
<h2 id="what-i-ll-miss">What I'll miss</h2>
<p>Plasma is a fully fledged desktop, and it really shows. The "low battery" notification that
I didn't have to configure, or the acoustic feedback it plays when I plug the charger in, those
things have totally spoiled me and I definitely need to figure out how to get those in a WM.</p>
<p>The keyboard layout switcher is also amazing. I don't have to write terminal commands to quickly
switch to QWERTY, Whaaaat!</p>
<p>And the basic stuff, it auto-detecting the display when I plug in HDMI, or the OSD it shows
when I change the brightness or the volume, it just feels good. Thankfully it probably won't
be too hard getting on a window manager.</p>
<h2 id="what-i-won-t-miss">What I <em>Won't</em> miss</h2>
<h3 id="annoying-glitches">Annoying glitches</h3>
<p>It's most likely because I have an Nvidia card, but KDE is really buggy. I've noticed it
being better when I use integrated graphics but that's not an option for me. When the display
configuration changes, it sometimes crashes and doesn't respond for a minute or so before
restarting again. I don't wanna figure out why's that happening, if I had to do that I'd just
use a WM, it's easier troubleshooting that.</p>
<p>One day I had a presentation and plugged my laptop into a projector and KDE broke down for
a good 2-3 minutes (felt like an hour) which was embarrassing. A WM has chances of breaking
in these situations too, but I can troubleshoot that much quickly, not like it refuses to
respond, at least.</p>
<p>Some of those animations are glitchy too, especially the floating (or dynamic or whatever
they call it) taskbar. That thing is splendid but it seems like it lags too much on Nvidia
graphics. I haven't had these issues otherwise.</p>
<h3 id="huge-packages">Huge packages</h3>
<p>KDE installs a lot of packages, and it's not minimal at all. It may not be too much
for most people, but I don't like when if I don't update for a week, it has to download
2k+ packages, which is honestly annoying, I want it to update and be done with it.</p>
<h3 id="multitasking-s-not-fun">Multitasking's not fun</h3>
<p>Floating window management is a horrible, horrible option if you want to multitask a lot.
I know it's possible to replace Kwin but I honestly don't want to go through the headache
of that. If I'm in a DE, I want the DE experience, and in a WM I want the WM experience.</p>
<p>But whenever I have 4+ programs open I keep missing the 10 workspaces and the tiling
window management keybindings my XMonad setup had. It's honestly ridiculous to maximize
a window when it's the only one open. Also the deskstop switcher is ugly when I have 4+
virtual desktops. Not that I need that much since I can just minimise windows. Still
doesn't match my workflow.</p>
<h1 id="conclusion">Conclusion</h1>
<p>KDE is splendid and I'll continue to admire it from afar. It's the best DE ever made
but DEs are just not for me. For the past week I've been using DWM (with only the
<a rel="noopener external" target="_blank" href="https://dwm.suckless.org/patches/fullgaps/">fullgaps</a> patch) and I honestly don't miss
KDE that much. I probably won't stick to DWM for long, but I already feel more connected
with my laptop.</p>
<p>I'll be doing some WM hopping for some time before settling down on something. I'll keep
writing about it. Let's see if XMonad is still the best one, or if I'll finally keep
something else as my daily driver.</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Plasma 6 - 6 Months Review">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>What happened to 100DaysToOffload?</title>
        <pubDate>Sun, 04 May 2025 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/what-happened-to-100daystooffload/</link>
        <guid>/blog/what-happened-to-100daystooffload/</guid>
        <description xml:base="/blog/what-happened-to-100daystooffload/">
          
            <![CDATA[<p>I've been meaning to write about this for a while now. Coincidentially, it's 4th May 2025.
Exactly 1 year ago, on 4th May 2024, I started the <a href="/blog/100-days-to-offload/">100DaysToOffload</a>
challenge. The goal was to write 100 posts within an year, the deadline being today.</p>
<p>For the record this is the 17th post, so that means I did't complete even 1/4 of the challenge!
This might sound disappointing but this has taught me multiple things. Let's talk about that.</p>
<h2 id="i-cannot-just-force-myself-to-write">I cannot just force myself to write</h2>
<p>I write whenever I feel like writing, I don't need to cater to a large audience, or meet
deadlines for someone else. I created this website as an outlet of my thoughts, not to post
some forced writings. If I feel like writing 17 posts an year, I'll do that.</p>
<p>The purpose of this challenge is to promote writing. You just have to write, it doesn't have to
be good but you need to write. While I do like the idea, that I should write about what comes
to my mind, and don't need to make it perfect everytime, because that's not having a personal
blog is all about. But still, there are days when I just don't feel like writing, so I just
didn't write at all!</p>
<h2 id="the-identity-of-this-blog">The identity of this blog</h2>
<p>I'll talk deeper into this in a few days, but I've never felt what exactly I wanted with this
blog. I liked to write, (or I liked the idea of writing) and created this blog as an outlet,
but I just have so conflicting ideas to write about, trying to write in this blog's context
has been counterintuitive - it has made it harder to write. Why's that? Because even I wasn't
sure what exactly I wanted from this website. Now I think I'm a little more sure. I'll talk more
about this in a later post.</p>
<h2 id="conclusion">Conclusion</h2>
<p>100DaysToOffload is a really cool challenge, and every blogger should try it at least once.
But even though I was so excited for it, I feel like this challenge is maybe not for me.
The past year has been awesome, I made some cool changes to my website, and as I posted
<a href="/blog/design-change/">earlier</a>, I finally feel satisfied with its design. About my writings,
stay tuned...</p>
<p><em>This is the last post, post 17 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: What happened to 100DaysToOffload?">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Experience with using higher gauge strings</title>
        <pubDate>Sun, 26 Jan 2025 09:00:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/thoughts-on-higher-gauge-strings/</link>
        <guid>/blog/thoughts-on-higher-gauge-strings/</guid>
        <description xml:base="/blog/thoughts-on-higher-gauge-strings/">
          
            <![CDATA[<p>Disclaimer: I am a noob (and also an idiot) so take this with a grain of salt.
I'm just sharing my experience.</p>
<p>For almost 2 years I've been using medium gauge strings on my Yamaha Pacifica.
I really have been slacking off with guitar practice so I'm really not good
enough to say anything real but this is specifically for noobs like me thinking
about using a higher gauge strings (specifically 11-50 in my case)</p>
<h2 id="why-switch">Why switch?</h2>
<p>So I initially thought the higher gauge strings would sound louder and since I
only have one guitar which is an electric, and I like to play without an amp
most of the times, I thought it'd be kinda cool.</p>
<p>I will say that it kinda worked! My guitar <em>is</em> somewhat louder.</p>
<h2 id="my-experience">My experience</h2>
<h3 id="putting-em-on">Putting 'em on</h3>
<p>When I put on the new strings keeping them in tune was weirdly tricky, until I noticed
that my bridge was in the air! I didn't really take a picture but the tremolo bridge
was actually lifted up as if I'm pressing down on the arm. That's when I learned
why those springs exist in the back.</p>
<p>So yeah I had to tighten the claw which <em>was</em> helpful but it's still slightly in the air,
not sure if I can live with it but we'll see if I find a fix (I hope I don't need to get
a new spring). A that's why this post exists, because I wanted to share this
weird experience!</p>
<p>Maybe they're new (I used the previous ones for way too long) but the new strings
look kinda pretty? Yea it's probably because they're just new and the fretboard
is cleaner but they do look slightly thicker if I put them side by side with the
older ones.</p>
<h3 id="the-sound">The sound?</h3>
<p>I got the thicker strings for only one reason. I have a single guitar which is an
electric, and I like to play in whichever room I'm currently in without the need
to carry an amp with me. It's obviously a very normal thing but I wanted it to be
louder, so I figured I should put on thicker strings. It did actually work but
now I feel like I could live without the change too. Since with an amp I really hear
no difference, honestly.</p>
<h3 id="playing-experience">Playing experience</h3>
<p>They say thicker gauge might be harder to play at the beginning, to me that hasn't been
the case, I guess I'm used to playing the guitar now yay.</p>
<p>Funny thing though I was wondering why the action suddenly increased before I realised
my bridge is literally in the air. But apart from that these strings may be a little
tighter but don't really change the experience that much. Not sure how it affects
bending but I rarely do that anyways.</p>
<p><em>This is post 16 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Experience with using higher gauge strings">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Second thoughts about moving to Plasma 6</title>
        <pubDate>Fri, 20 Dec 2024 11:30:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/missing-xmonad/</link>
        <guid>/blog/missing-xmonad/</guid>
        <description xml:base="/blog/missing-xmonad/">
          
            <![CDATA[<p>Moving to KDE got me thinking if there is a middle ground. I miss tiling window management a
lot, but there are some features in KDE that make me don't wanna switch back.</p>
<h2 id="the-kde-taskbar">The KDE Taskbar</h2>
<p>On a WM you don't really need a taskbar because you have shortcuts for your favourite apps
and there is no need to minimize anything. While I don't minimize apps anyways because I'm
just not used to that kind of behavior, the other features KDE has are too good.</p>
<h3 id="the-system-tray">The System tray</h3>
<p>KDE's clickable system tray and all those icons are just awesome. The Wi-Fi, Bluetooth and
other menus with the uniform look is totally something I've fallen for. The music player icon
in the tray with all the players, I'm not sure if I can get that in a window manager.</p>
<h2 id="kde-is-not-scary">KDE is not "Scary"</h2>
<p>One thing I've noticed is when I'm showing someone something on my laptop or just using it
in my college, people don't get "surprised" at my ArchLinux setup. Even if someone has seen
linux they usually know about ubuntu; seeing KDE instead of Gnome (or in my case my terribly
themed window manager) they think that Linux is actually usable so that's kinda interesting.</p>
<p>I care more about my usability but people not always asking wtf I'm using is always good. But
I don't wanna have KDE alongside a window manager for that reason.</p>
<h2 id="the-kde-apps">The KDE Apps</h2>
<p>KDE's UI is gorgeous. No other DE can compete. And their apps are very good and stable enough,
not to mention Dolphin is the best file explorer. KDE as a whole may be kinda buggy (maybe I'll
write about that) but its software suite is awesome. While I don't wanna leave that, leaving KDE
would mean leaving these things behind since they only seem to look well inside Plasma.</p>
<h1 id="what-i-ve-lost">What I've lost</h1>
<p>From my rambling above, you might have guessed that I love KDE. But there's still a catch!
I don't have the control over KDE as I had over XMonad, the finger movements, the dynamic
scratchpads, anything everything being managed by keybindings, the haskell configuration,
those things are equally as important to me, which makes it a very tough decision.</p>
<p>KDE is very customizable but I don't wanna go through a GUI menu, I like to just edit my
xmonad.hs and stuff. I'm starting to miss my window manager, but also do NOT wanna switch.</p>
<p>The eye candy KDE Desktop or the minimal and fast AF XMonad? Maybe the answer is something else....</p>
<p><em>This is post 15 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Second thoughts about moving to Plasma 6">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Ditching XMonad for KDE Plasma 6</title>
        <pubDate>Sun, 08 Dec 2024 11:30:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/leaving-xmonad-for-plasma6/</link>
        <guid>/blog/leaving-xmonad-for-plasma6/</guid>
        <description xml:base="/blog/leaving-xmonad-for-plasma6/">
          
            <![CDATA[<p>After using <a rel="noopener external" target="_blank" href="https://xmonad.org/">XMonad</a> for about 4 years, I thought I'd try to make
a switch for the hell of it. For me, the WM Vs. DE debate cannot really be solved. A DE
to me is less of a hassle for setting up and managing everything, even though WMs literally
have reproduceable configs. After much thought, I decided to make the big switch to KDE for
a while. Since Plasma 6 is new I thought I'd try it out.</p>
<p>I've been daily driving KDE for more than a month now.</p>
<h2 id="how-has-it-impacted-my-productivity">How has it impacted my productivity?</h2>
<p>For the first couple of weeks it was.. BAD!</p>
<p>I'm not used to touching my mouse for every little thing I do. It's especially bad
when I'm multitasking. I'm getting used to it but initially it was bad.</p>
<p>But setting up everything was so much easier so you win some, you lose some!
On XMonad I basically tweaked everything but on KDE Plasma I only changed
some things, just the basic taskbar things, theme and accent color, some keybindnigs.
It was so quick, you win some, you lose some I guess!</p>
<p>I love how KDE looks. Everything just looks good and comfy. I miss my terminal
resizing whenever opened, but the taskbar and the notifications, KDE Connect
are also very good! Also I've been using everything on pretty much the default
theming (even Alacritty!) and pretty much everthing looks awesome!</p>
<h2 id="do-i-miss-automatic-tiling">Do I miss automatic tiling?</h2>
<p>Fuck yes I do. From XMonad the only thing I miss is all those keybindings, the
automatic tiling behaviour, the window movements and the sheer amount of control
I have over it. If it wasn't for that, I'd never go back!</p>
<p>When I started using XMonad I had all the time in the world to tweak everything.
It wasn't necessary, many people just use it with minimal config but that's just
not me. Nowadays I want things to "just work" without having to need Arch Linux.
For that, KDE is the best!</p>
<p>KDE has its own big downsides and I'll surely write about them soon. Until then,
I'm on KDE for the time being; which definitely isn't permanent!</p>
<p><em>This is post 14 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Ditching XMonad for KDE Plasma 6">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>First thoughts on the Nouveau drivers</title>
        <pubDate>Tue, 12 Nov 2024 14:30:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/using-nouveau/</link>
        <guid>/blog/using-nouveau/</guid>
        <description xml:base="/blog/using-nouveau/">
          
            <![CDATA[<p>A month ago I did a clean re-install of my Arch Linux system and instead
of installing the proprietary nVidia drivers I decided to try out the
infamous Nouveau driver. Nouveau is the open source driver compatible
with nVidia cards. It's a breeze to set up but has significantly reduced
performance according to most people.</p>
<p>These days I don't really use the GPU on linux and I just want my HDMI
port to work so I can plug in a 2nd monitor. So I thought I should give
it a try.</p>
<h2 id="setting-up">Setting up</h2>
<p>With the official drivers you have to do extra setup which is fucking
annoying (especially on a laptop) but Nouveau was a breeze.</p>
<p>On Arch Linux you just have to install <code>mesa</code> and <code>xf86-video-nouveau</code>
and without any setup your card will start working like magic. Check
with your distro for the names of these packages.</p>
<h2 id="my-experience">My experience</h2>
<p>I didn't even notice when the setup was complete so after completing my
Arch installation I just had to boot up and my monitor started showing
video without doing anything extra which was honestly amazing.</p>
<p>The output on the laptop's screen is totally fine but there is a
significant amount of screen tearing which you really can't miss
(most of it is in one area somehow) on the external monitor.
It's good enough for programming but for watching videos, etc it
gets pretty annoying. Apart screen tearing though, I think I
prefer Nouveau more than the official drivers, at least in my
limited use case.</p>
<p>If there even is any difference in power consumption, I'd say Nouveau
wins by being the least power hungry (next to only using the
integrated graphics, of course)</p>
<p>I like Nouveau because it's very very quick to set up and I'll continue
to use it on installations that need to "just work". But right now I think
I'll just switch back to the proprietary drivers.</p>
<p><em>This is post 13 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: First thoughts on the Nouveau drivers">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Create bootable images with dd</title>
        <pubDate>Thu, 17 Oct 2024 01:15:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/flashing-isos-with-dd/</link>
        <guid>/blog/flashing-isos-with-dd/</guid>
        <description xml:base="/blog/flashing-isos-with-dd/">
          
            <![CDATA[<p>The most popular choices for creating bootable USBs are probably
<a rel="noopener external" target="_blank" href="https://rufus.ie">Rufus</a> (on Windows) or something like
<a rel="noopener external" target="_blank" href="https://balena.io/etcher">etcher</a> (cross platform).</p>
<p>If you are like me, you probably use <a rel="noopener external" target="_blank" href="https://www.ventoy.net/en/index.html">ventoy</a>
(which, btw is too awesome, and probably the easiest way to create Windows
bootable drives using linux), but some distros just don't boot with ventoy.
So instead of installing a heavy and slow electron app like etcher, I recently
realized that the <code>dd</code> command is a pretty good choice.</p>
<p>It does get a lot of "hate" and gets called the "disk destroyer" command but it's
acutally pretty awesome if used carefully. Here's how I flash an ISO:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">sudo</span><span> dd if=</span><span style="color: #94E2D5;">&lt;input</span><span> iso</span><span style="color: #94E2D5;">&gt;.iso</span><span> of=/dev/sdx status=progress</span></span></code></pre>
<p>(note that you need to replace <code>/dev/sdx</code> with your flash drive
and <code>&lt;input iso&gt;</code> with your iso; this WILL delete all the data)</p>
<p>This is pretty awesome because chances are you probably already
have dd on your system. Please do note that dd can cause data loss if
not used carefully, so don't come to me crying lol</p>
<p><em>This is post 12 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Create bootable images with dd">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Boxes and website im&#x2F;perfection</title>
        <pubDate>Fri, 13 Sep 2024 14:30:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/design-change/</link>
        <guid>/blog/design-change/</guid>
        <description xml:base="/blog/design-change/">
          
            <![CDATA[<p>Since I moved to <a href="/blog/this-site-now-uses-zola/">zola</a> I changed the site's
layout to probably the most minimalistic it has ever been. I liked it because
it looked good enough for a personal blog, it was responsive, performed very
well and was extremely lightweight.</p>
<p>Here's what it looked like:</p>
<figure>
  
  <img src="&#x2F;pics&#x2F;september-2024-website-screenshot-post-desktop.webp" alt="Blog Post (Desktop)"
    title="Blog Post (Desktop)"
    height="720"
    width="1280"
    >
  

  
  <figcaption>Blog Post (Desktop)</figcaption>
  
</figure>
<p>I am more of a minimalist than not, but this feels just too bland. looking
at this doesn't make me too happy. This just wasn't doing it for me, and
that is why it took me so long to make a "website perfection" post that
I planned a long time ago.</p>
<h2 id="old-design-stats">Old design stats</h2>
<p>Apart from what it looked like, the old design was very lightweight, not only
did it have a 100% score on google lighthouse, it was among the top 100 on
<a rel="noopener external" target="_blank" href="https://512kb.club">512kb.club</a> (yes I counted). According to
<a rel="noopener external" target="_blank" href="https://radar.cloudflare.com/scan/c0067e43-ce57-4138-8413-ade349f7eb38/summary">this report</a>,
the homepage only weighed around 10.8kb. That's the lowest I managed to get
while also being happy with the design.</p>
<h2 id="new-design-s-im-perfections">New design's im/perfections</h2>
<p>I made very little changes to the CSS but the site looks soo much better now.
I think this is the best iteration (but that's just what I feel <em>now</em>; who knows
about the future)</p>
<p>I just made the main content, header and footer a different color with some
tasteful box shadow and a box pattern on the body. Just these basic things
have made such a difference</p>
<figure>
  
  <img src="&#x2F;pics&#x2F;september-2024-website-new-screenshot-post-desktop.webp" alt="New Design (Desktop)"
    title="New Design (Desktop)"
    height="720"
    width="1280"
    >
  

  
  <figcaption>New Design (Desktop)</figcaption>
  
</figure>
<p>I really dig this redesign. The box pattern adds so much character, even though
it's such a simple thing!</p>
<p>Google lighthouse shows.... 100% score?
Last time I checked the performance was somehow at 99% so I don't know what happened,
but yay we still have a perfect lighthouse score! Now my homepage is at 11.49kb,
which is almost a 0.7kb increase. Not too much but we're no longer at top 100 at
512kb.club. Do I mind that? No!</p>
<p>Technically, the new design is worse in performance, but in the grand scheme of things
an increase of 0.7kb or 99% lighthouse score is insignificant. Having a personal website
isn't about being technically correct, it's about being satisfied with what you deliver.</p>
<p>P.S. 11kb is still insane. The reason it's so small is because minimalism is my thing.
If it's not your thing don't fret about it! As long as your page loads in acceptable time
these little details don't have any value over what makes you happy!</p>
<p><em>This is post 11 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Boxes and website im&#x2F;perfection">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Living with the Glyph Interface</title>
        <pubDate>Tue, 13 Aug 2024 14:30:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/glyph-interface-review/</link>
        <guid>/blog/glyph-interface-review/</guid>
        <description xml:base="/blog/glyph-interface-review/">
          
            <![CDATA[<p>I've been using the Nothing Phone (1) for about one and a half year now. It's not the most
powerful phone but it <em>more</em> than meets my needs. I'd say it's one of the best phones I've
ever owned and am very happy with it! We won't be talking more about the device itself,
but its Glyph Interface which is the most unique feature it has.</p>
<p>Obligatory: These are just my opinions that I wanted to share because Nothing is really cool.
I'm not affiliated with them in any way.</p>
<h2 id="what-is-the-glyph-interface">What is the Glyph Interface?</h2>
<p>Nothing's phones have this really cool system of lights on the back called "Glyphs"
which can light up in various ways depending on the function. It seems like an overly
flashy feature but that's not really the case; it's very useful.</p>
<h3 id="using-glyphs-for-notifications">Using glyphs for notifications</h3>
<p>You can somewhat program them for different things. These lights are synced with your
ringtone or notification tone so you can just set different ringtones for each app
or contact like you'd do on any other android. When the phone is on silent
you can still see which app or person has sent you a notification through the pattern
in which the lights light up! It looks really neat and after getting used to it, this
feature becomes a lifesaver.</p>
<p>I usually use the Glyphs in class or when I cannot really use my phone unless
its urgent. There's also a feature called "Essential" notifications that keeps
the Glyphs on until you interact with the notification. Imagine what you can do
with it!</p>
<h3 id="other-cool-uses">Other cool uses</h3>
<p>The music visualizer and the fill light while using the camera are pretty cool functions
but my favourite has to be the Glyph Flashlight which activates when you long press
the flashlight button.</p>
<p>It's much softer and doesn't hurt the eyes. I use it a lot when I need to light up an
area without it stinging my eyes. Such as placing it below the TV while trying to find
the HDMI port. Or to navigate through a dark room without waking everyone up. I'd have
a hard time if I were to live without this.</p>
<p>So my conclusion is that it's a pretty cool phone and I have a compulsive need to tell
everyone that I use Nothing, BTW.</p>
<p><em>This is post 10 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Living with the Glyph Interface">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Coping with broken headphones</title>
        <pubDate>Fri, 02 Aug 2024 16:30:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/coping-with-broken-headphones/</link>
        <guid>/blog/coping-with-broken-headphones/</guid>
        <description xml:base="/blog/coping-with-broken-headphones/">
          
            <![CDATA[<p>Yesterday, I dropped my bluetooth headphones and now the on/off switch is broken</p>
<h1 id="noooooooooooooo">NOOOOOOOOOOOOOO</h1>
<p>At first the button wasn't getting pressed but the headphones kept turning
on/off as if the button was held down. I thought the button was somehow stuck
so I opened the right ear but then I found out that the actual button
attached to the PCB is broken.</p>
<p>Seems like the spring or whatever bringing the button up is now broken.
The button is now activated by gravity. <em>You guys have fun with your
voice activated shit from the past.</em> So I guess I now have to make do
with this broken button.</p>
<p>Haven't had any issues while wearing them, though taking them off either
puts them in pairing mode or turns them off. Props to the good design by
JBL, the power button is on the bottom so won't get automatically pressed.
Still pretty sad though.</p>
<p><strong>Edit (3rd August 2024):</strong>
Funny thing worth sharing happened, I was drinking water and tilted my neck up
and the button probably pressed itself due to gravity, and the headphones turned
off. Guess I'd just have to deal with it...</p>
<p><em>This is post 09 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Coping with broken headphones">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Showcasing my projects on this site</title>
        <pubDate>Wed, 31 Jul 2024 09:00:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/showcasing-my-projects/</link>
        <guid>/blog/showcasing-my-projects/</guid>
        <description xml:base="/blog/showcasing-my-projects/">
          
            <![CDATA[<p>I added <a href="/projects/">a page</a> listing some of my projects that I think are
worth showing off, which is pretty cool. It aint much but I think I have
created some interesting little programs. An of course, it's all libre.
So go ahead and check it out now!</p>
<p>I <em>have</em> created tiny websites for projects that need it, but there was
nowhere to see them all in one place. I have like 30 git repos but the
epic stuff lies in only a few so now we've got a list of only the good stuff.</p>
<p><em>This is post 08 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Showcasing my projects on this site">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Minecraft: Java Edition online multiplayer (with OpenVPN)</title>
        <pubDate>Sat, 20 Jul 2024 04:56:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/minecraft-java-multiplayer-over-openvpn/</link>
        <guid>/blog/minecraft-java-multiplayer-over-openvpn/</guid>
        <description xml:base="/blog/minecraft-java-multiplayer-over-openvpn/">
          
            <![CDATA[<p>Minecraft: Java Edition only supports multiplayer through LAN, a server or through the newly
introduced realms. That's pretty bad! I just want to play with friends without renting a server
or something. Port forwarding isn't an option for me because I'm behind like multiple layers
of NAT.</p>
<h2 id="so-what-s-the-solution-you-ask">So what's the solution, you ask?</h2>
<p>Your local hackerman has everything in check. Here's what to do:</p>
<ul>
<li>Have a VPS configured with firewall and shit.</li>
<li>Install OpenVPN with this <a rel="noopener external" target="_blank" href="https://github.com/angristan/openvpn-install">wonderful script.</a>
<ul>
<li>Install the <code>openvpn</code> package on Debian, probably Ubuntu and maybe any other distro</li>
<li>Clone above repo and cd into it</li>
<li>Run <code>sudo ./openvpn-install.sh</code></li>
<li>Select just the default options</li>
</ul>
</li>
<li>After the setup is complete the script would help you add a new user.
Enter a descriptive client name and password (optional) and then move the .ovpn file to your local machine.</li>
<li>To add/remove users, just run the script again.
You need as many users as many friends you have; Linux users may skip this step.</li>
<li>Transfer the .ovpn client files to each of your friends' machines respectively.<br />
Maybe encrypt them or something if they have to travel through the interwebs!</li>
<li>Now install the OpenVPN client for your operating system. (on Arch it's, you guessed it, <code>openvpn</code>)</li>
<li>Just follow the GUI and load the .ovpn file. On Arch, you guessed it right again,
I just run <code>openvpn vidhukant.ovpn</code></li>
</ul>
<p>Now one of you must host the minecraft game, and open the world to LAN.
Others just need to connect to the VPN, enter your IP address (on the VPN) and the port, and have some
quality mining and, of course, crafting time.</p>
<p>When I was setting up everything (which btw took like 20 minutes) I was wondering if it'd be playable.
And my answer to that is: Yes! It felt like we were playing on LAN, not through the internet.
Your mileage may vary though.</p>
<p>I guess next I'll try to set up my old potato as a minecraft server that is only accessible
through my private VPN (I know that the "private" is redundant fuck off)</p>
<p><em>This is post 07 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Minecraft: Java Edition online multiplayer (with OpenVPN)">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Keeping my music offline</title>
        <pubDate>Sun, 14 Jul 2024 08:00:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/keeping-music-offline/</link>
        <guid>/blog/keeping-music-offline/</guid>
        <description xml:base="/blog/keeping-music-offline/">
          
            <![CDATA[<p>In the age of streaming, here I am, keeping an offline library of music.
Let's talk about why and how I do it, and my experience so far.</p>
<p><strong>Note:</strong> <em>There are multiple ways to get music offline.</em>
<em>You can buy music in various formats, and you can just download from any</em>
<em>website. Lets not discuss the ethicality of either of these options.</em></p>
<h1 id="the-issues-with-youtube">The issues with YouTube</h1>
<p>I used to primarily use YouTube for music. Their recommendations are good,
and all the creators post there. But there were many issues with that,
though I still go there in search for new songs.</p>
<p>One major issue I've had is videos suddenly disappearing from my playlist
due to various reasons. Sometimes they get blocked in my area for some reason,
sometimes they get deleted. This is annoying especially because YouTube doesn't
even show the title of those "Unavailable" videos.</p>
<h1 id="why-not-spotify-etc">Why not Spotify, etc?</h1>
<p>I already have a YouTube account, and with uBlock Origin on PC, and NewPipe
on my phone I have background play and no ads. Same can't be done for Spotify, amirite?
Also since I'm already on YouTube I see no valid reason to create a new account
on another service; I'd rather just have one.</p>
<p>I also once tried Amazon Music (not sure if it still exists) and also Gaana
(not sure about that either!) and hated pretty much both of them. Youtube is nice.</p>
<h1 id="the-pros-of-downloading-music">The pros of downloading music</h1>
<p>I've been downloading for 3-4 months. And have seen many benefits so far.</p>
<p>Here are some highlights:</p>
<ul>
<li>No need to care about limited/slow internet access</li>
<li>I can listen to music on a plane</li>
<li>There are many music players I can choose from</li>
<li>Even if a particular song becomes unavailable offline, I have access to it!</li>
<li>Browsing a local library is a lot snappier than scrolling through a YouTube playlist</li>
</ul>
<h1 id="the-major-downside">The major downside</h1>
<p>Managing a library is a long process. It's definitely not as straightforward as
just adding a song to a playlist. Sometimes you can download the song files officially
but sometimes you have to make do with things like <a rel="noopener external" target="_blank" href="https://github.com/yt-dlp/yt-dlp"><code>yt-dlp</code></a></p>
<p>In such cases the file may not have the correct metadata which might be fine for some people
but definitely not for me. I have spent a good amount of time properly setting the title,
file name, album art, artist, etc using this handy tool called
<a rel="noopener external" target="_blank" href="https://github.com/Martchus/tageditor">tageditor</a>. I even add the lyrics to the mp3 file
so I can be fully offline and check the lyrics whenever I want to! This <em>is</em> a long and
still ongoing process though.</p>
<p>Just as a note it is possible to add metadata using <code>ffmpeg</code> but the reason I don't use
it is a whole new story.</p>
<h1 id="the-screening-process">The "Screening Process"</h1>
<p>I don't wanna waste disk space on songs I don't like, so I have a "Screening Process"
to decide what makes it into the local library. It goes like this:</p>
<ul>
<li>I find a new song</li>
<li>Add it to my playlist on YouTube (or NewPipe)</li>
<li>Everytime I listen to music its a mix of the downloaded stuff and the online playlist</li>
<li>When the playlist reaches about 10-15 titles (or every few days) I remove the ones
I don't really like, and download the others and clear the playlist</li>
</ul>
<p>It's neither perfect or consistent but works for me!</p>
<h1 id="my-setup">My setup</h1>
<p>On my phone I use <a rel="noopener external" target="_blank" href="https://retromusic.app/">RetroMusic</a> which is available on
<a rel="noopener external" target="_blank" href="https://f-droid.org/">F-Droid</a>. It is a beautiful music player app which is
highly customizable. It is arguably the best music player app on android.</p>
<p>My laptop is where all the major stuff happens. I download music, add metadata
with tageditor if needed, and move the files to my songs folder. Then the folder
is synced to my phone and optionally on a USB flash drive that can be plugged into
the car, etc (saves my phone's battery!). To listen to music on the laptop I just use
<a rel="noopener external" target="_blank" href="https://www.musicpd.org/">mpd</a> and <a rel="noopener external" target="_blank" href="https://github.com/ncmpcpp/ncmpcpp">ncmpcpp</a>.</p>
<p>If you want to download audio from YouTube just run this simple command
replacing the URL accordingly:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="shellscript"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">yt-dlp</span><span style="color: #A6E3A1;"> -x --audio-format mp3 &quot;https://youtu.be/JJ9IX4zgyLs&quot;</span></span></code></pre>
<p>Here's how you can download a whole playlist:</p>
<p>If I'm not wrong, <code>yt-dlp</code> can take URL of a playlist as input, but with large playlists it might
fail or take too long. Sometimes you might want to partially download a playlist and resume the process
later on. Use this script for that:</p>
<p><em>in this example I'll call it dl.sh</em></p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="shellscript"><span class="giallo-l"><span style="color: #F5C2E7;font-style: italic;">#!/bin/bash</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span>FILE</span><span style="color: #94E2D5;">=</span><span style="color: #EBA0AC;font-style: italic;">$@</span></span>
<span class="giallo-l"><span>LINES</span><span style="color: #94E2D5;">=</span><span style="color: #9399B2;">$(</span><span style="color: #89B4FA;font-style: italic;">cat</span><span> $FILE</span><span style="color: #9399B2;">)</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span>counter</span><span style="color: #94E2D5;">=</span><span style="color: #A6E3A1;">1</span></span>
<span class="giallo-l"><span style="color: #CBA6F7;">for</span><span> line</span><span style="color: #CBA6F7;"> in</span><span> $LINES</span><span style="color: #9399B2;">;</span><span style="color: #CBA6F7;"> do</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">  yt-dlp</span><span style="color: #A6E3A1;"> -x --audio-format mp3 &quot;https://www.youtube.com/watch?v=</span><span>$line</span><span style="color: #A6E3A1;">&quot;</span><span style="color: #94E2D5;"> ||</span><span style="color: #F38BA8;font-style: italic;"> echo</span><span style="color: #A6E3A1;"> &quot;</span><span>$line</span><span style="color: #A6E3A1;">&quot;</span><span style="color: #94E2D5;"> &gt;&gt;</span><span style="color: #A6E3A1;"> &quot;</span><span>$FILE</span><span style="color: #A6E3A1;">&quot;&quot;_failed&quot;</span></span>
<span class="giallo-l"><span>  counter</span><span style="color: #94E2D5;">=</span><span style="color: #9399B2;">$((</span><span style="color: #89B4FA;font-style: italic;">counter+1</span><span style="color: #9399B2;">))</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">  tail</span><span style="color: #A6E3A1;"> -n &quot;+</span><span>$counter</span><span style="color: #A6E3A1;">&quot; &quot;</span><span>$FILE</span><span style="color: #A6E3A1;">&quot;</span><span style="color: #94E2D5;"> &gt;</span><span style="color: #A6E3A1;"> &quot;</span><span>$FILE</span><span style="color: #A6E3A1;">&quot;&quot;_remaining&quot;</span></span>
<span class="giallo-l"><span style="color: #CBA6F7;">done</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">rm</span><span style="color: #A6E3A1;"> &quot;</span><span>$FILE</span><span style="color: #A6E3A1;">&quot;&quot;_remaining&quot;</span></span></code></pre>
<p>Steps:</p>
<ul>
<li>
<p>Go to <a rel="noopener external" target="_blank" href="https://takeout.google.com">https://takeout.google.com</a> and create a new takeout with only YouTube selected.</p>
</li>
<li>
<p>Download the takeout when it is ready, open the CSV file of the playlist you want to download
and delete all the other columns except the Video ID. Also delete the column header (first line)</p>
<p>The end result would look like this:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>vA86QFrXoho</span></span>
<span class="giallo-l"><span>JJ9IX4zgyLs</span></span>
<span class="giallo-l"><span>MGOP3blxUw4</span></span></code></pre></li>
<li>
<p>Run <code>./dl.sh &lt;file_name&gt;</code>. This may create additional files named <code>&lt;file_name&gt;_remaining</code> and <code>&lt;file_name&gt;_failed</code></p>
<p>If any video(s) fail to download you can check this file later on. If you want to stop this
script the <code>_remaining</code> file would hold the Video IDs that are yet to be downloaded,
so you can just start at that file.</p>
</li>
</ul>
<p><em>This is post 06 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Keeping my music offline">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Laptops are Good!</title>
        <pubDate>Sat, 18 May 2024 13:55:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/laptop-vs-pc/</link>
        <guid>/blog/laptop-vs-pc/</guid>
        <description xml:base="/blog/laptop-vs-pc/">
          
            <![CDATA[<p>I consider myself a PC guy (though I don't have one) because I want control on my hardware.
What I mean by that is I want to choose exactly the configuration I need which sometimes isn't
possible with laptops. Not to mention laptops are less performant, have worse thermals and
the battery life on a gaming laptop is always shit.</p>
<p>But there are some good things included with a portable yet fully featured PC!</p>
<p>Currently, I'm down with fever yet I am writing this post while tucked in my bed. I want to
thank this technology that helped me open up neovim to write this post, use zola to turn this
post into an HTML document, and use rsync to upload the HTML onto my web server, from the
comfort of my bed!</p>
<p>Surely there are ways to write a blog from phone (not that I need to write a post when I am sick
but I want to) but I prefer typing on a physical keyboard whenever possible. I just am not good
with touch screen technology, I always want physical feedback. If I had a PC I'd have to get to
my desk in order to write this post. Which I don't mind at all most of the times but right now
I just have enough energy to pass the time by doing shit on my laptop, but I honestly would rather
die than get up because my whole body hurts when I move.</p>
<p>Yet I'm hella bored and will now continue to learn rust. That too, from the comfort of my bed.</p>
<p>So with that, thank you laptops!</p>
<p><em>This is post 05 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Laptops are Good!">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Why my username is no longer MikunoNaka</title>
        <pubDate>Tue, 07 May 2024 06:03:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/my-username-changed-everywhere/</link>
        <guid>/blog/my-username-changed-everywhere/</guid>
        <description xml:base="/blog/my-username-changed-everywhere/">
          
            <![CDATA[<p>If you somehow came from my YouTube channel or GitHub profile, you might know
that my username almost everywhere was MikunoNaka. I even had a domain with that name.</p>
<p>For about an year I've been thinking about changing that, because of reasons
we'll talk about later. But I never did that because I already had a domain
called "mikunonaka.net" (disclaimer: I no longer own it) so I thought since I
have already spent money on it, better to keep the username I guess.</p>
<h2 id="why-mikunonaka-was-a-bad-username">Why MikunoNaka was a bad username</h2>
<h3 id="the-meaning-behind-was-pretty-cringe">The meaning behind was pretty cringe</h3>
<p>I'm only going to say this once, and will be linking this just in case someone
asks. I'm cringing my ass off right now.</p>
<p><em>MikunoNaka is an anagram for "Nakano Miku"</em></p>
<figure>
  
  <img src="&#x2F;pics&#x2F;nakano-miku-07may2024.webp" alt="Nakano Miku cute pic"
    title="Nakano Miku"
    
    
    >
  

  
  <figcaption><em>I don't own the rights to this image and got this from google. <br>Please contact me for removal</em></figcaption>
  
</figure>
<p>I mean I was like, 14 and also an idiot when I thought this up</p>
<h3 id="it-was-hard-to-spell">It was hard to spell</h3>
<p>I wanted an easy to remember name. MikunoNaka was awkward to type and no one really
remembered its spelling.</p>
<p>I didn't care back then but later I started to host my git repos on
mikunonaka.net, and was talking to my friend about some project, and he tried to
open the repo by typing up mikunonaka.net and he struggled to remember the URL.
And this happened on multiple occasions.</p>
<blockquote>
<p>Was it mikununuka?<br />
Mikumaka?<br />
The N is uppercase? Why?</p>
</blockquote>
<p>That guy knows about mikunonaka.net. It was just that hard for even him
to remember. I didn't want to waste my money on such a domain name.</p>
<h3 id="was-hard-to-pronounce">Was hard to pronounce</h3>
<p>I mean how am I going to explain to people how to say "MikunoNaka" and not weird
them out! It sounds weeb-ish (it is but idc) but also wery awkward to tell others.
Again wasn't an issue but how will I tell them to visit my channel or github or
even twitter, etc if they don't even understand what I'm saying</p>
<h3 id="i-no-longer-have-mikunonaka-net">I no longer have mikunonaka.net</h3>
<p>This is the biggest reason. I already started hating this name, but I had a domain
with this name so I thought I'd stick with it. That was, until I looked at the
renewal fee. It's not a lot since domains are pretty cheap, but it's still money
that'd be wasted on something I don't like.</p>
<p>I think letting go of a domain can be somewhat risky. I'm not sure if it really
is that big of an issue but what if I just didnt change my GitHub name, and
someone registered mikunonaka.net for nefarious purposes. Since I already had it
listed on many profiles, if someone saw that my name on GitHub is MikunoNaka,
they'd probably think it's mine at first. That could go so wrong. I might just be
paranoid but better safe than sorry.</p>
<h2 id="my-name-s-better">My name's better</h2>
<p>In the end, I think my name actually sounds pretty cool. I'd rather people refer
to me as my real name nowadays. So I just use VidhuKant or a variation nowadays
online unless I don't want to share my name.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Everyone picks shitty names. Especially me as I am terrible at naming stuff. Have
you ever had a username which was pretty bad but was everywhere and you had this
dilemma about changing it or keeping it since it's everywhere?</p>
<p><em>This is post 04 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Why my username is no longer MikunoNaka">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Neofetch is NOT dead</title>
        <pubDate>Mon, 06 May 2024 02:43:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/neofetch-is-not-dead/</link>
        <guid>/blog/neofetch-is-not-dead/</guid>
        <description xml:base="/blog/neofetch-is-not-dead/">
          
            <![CDATA[<p>In my <a href="/blog/neofetch-is-dead/">last post</a> I talked about the archival of neofetch's repository.
But that definitely doesn't mean the end of neofetch.</p>
<p>dylanaraps, the creator of neofetch recently updated his github readme saying that
<a rel="noopener external" target="_blank" href="https://github.com/dylanaraps/dylanaraps/commit/811599cc564418e242f23a11082299323e7f62f8">he's a farmer now</a>
and the reactions are pretty hilarious. He archived all of his public repositories on 26th April 2024
which is a clear indication that -whether he's a farmer now or not- he has no intentions to continue development
of those projects.</p>
<p>But that doesn't mean that neofetch, and his other projects are dead now. It takes more for a project to "die".</p>
<p>It's not unknown that:</p>
<ol>
<li>Neofetch is open source.
Open source software doesn't die easily. If someone is willing to maintain it they can <em>easily</em> fork
the project and continue development.</li>
<li>Neofetch hasn't seen any development in the past 3 years.
The last commit was in December of 2023, yet many people don't even know this and continue to use
neofetch. That's precisely because this project is feature complete, and doesn't really need
any active development.</li>
</ol>
<p>This definitely isn't the end for neofetch. Same applies to all the "dead" projects on GitHub and other
platforms. Just because something doesn't get active development, or any development at all, doesn't mean
it's useless now. Software just doesn't break out of nowhere if you don't change anything! Especially
something so simple as a shell script.</p>
<p><em>This is post 03 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Neofetch is NOT dead">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>The death of neofetch?</title>
        <pubDate>Sun, 05 May 2024 12:30:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/neofetch-is-dead/</link>
        <guid>/blog/neofetch-is-dead/</guid>
        <description xml:base="/blog/neofetch-is-dead/">
          
            <![CDATA[<p>I was browsing through YouTube when I came across this devastating video by
<a rel="noopener external" target="_blank" href="https://youtu.be/yixseXhg5ZY?si=t1Q5yglht3cFwrWz">Andrea Borman</a>. In this video she
talks about the <a rel="noopener external" target="_blank" href="https://github.com/dylanaraps/neofetch">neofetch GitHub repo</a> being recently archived.
I recommend checking her channel out as she is very based (even though I myself don't watch her much)</p>
<p>If you are familiar with Linux you might've heard about neofetch. Neofetch is a shell program that
shows some basic system information among other things. It is adored by the ArchLinux community and
some even say neofetch helped them get through some of the worst times in their life.</p>
<p>As an Arch user myself neofetch just has helped me so much in life. Just running <code>clear &amp;&amp; neofetch</code> in the
terminal would take the deepest of the deepest pain away. When I was sad and lonely neofetch was there.
When I was happy neofetch was there. But now, now I have to deal with the pain myself. But thanks to
neofetch, I am a much stronger person now. I think I can handle it myself.</p>
<h2 id="about-the-man-behind-neofetch">About the man behind neofetch</h2>
<p>Oh what a legend <a rel="noopener external" target="_blank" href="https://github.com/dylanaraps">dylanaraps</a> was! He was the man behind neofetch
and many other popular open source programs.</p>
<p>According to <a rel="noopener external" target="_blank" href="https://github.com/dylanaraps/dylanaraps/commit/811599cc564418e242f23a11082299323e7f62f8">this commit</a> on his
profile's repo, he has left development for good. I wish him the best. Jokes aside, if this is real, it's very based.
I'd like to imagine he is now contributing under a different name but we'll probably never know.</p>
<p>P.S. if you haven't realized yet, this (mostly) is satire. Neofetch hasn't seen any development since 2021 yet it works perfectly fine.
It's archived but definitely not dead, but that's a discussion for another day. I myself don't use it but it's still better than a blank
terminal aesthetic-wise. Wherever dylanaraps is, I wish him the best. Based move.</p>
<p><em>This is post 02 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: The death of neofetch?">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>I&#x27;m starting 100 Days To Offload</title>
        <pubDate>Sat, 04 May 2024 23:14:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/100-days-to-offload/</link>
        <guid>/blog/100-days-to-offload/</guid>
        <description xml:base="/blog/100-days-to-offload/">
          
            <![CDATA[<p><a rel="noopener external" target="_blank" href="https://100daystooffload.com/">100DaysToOffload</a> is a challenge in which you have to write
100 blog posts in the span of an year. I am really excited for it as even though I don't update
this website much, I enjoy writing about random stuff.</p>
<p>So this marks my first post of <code>#100DaysToOffload</code>, lets see how far we go.
From now on I'll be regularly writing about various things that interest me.
I recommend you to follow this challenge yourself and <a href="/contact/">let me know</a> if you do!</p>
<p>If you like to regularly follow my progress I recommend you follow me on Mastodon (<a rel="noopener external" target="_blank" href="https://ohai.social/@_VidhuKant">@_VidhuKant@ohai.social</a>)
and/or subscribe to my RSS feed by adding <a rel="noopener external" target="_blank" href="https://vidhukant.com/feed">this link to my RSS feed</a> to your feed aggregator.</p>
<p><em>This is post 01 of <a href="/tags/100daystooffload/">#100DaysToOffload</a></em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: I&#x27;m starting 100 Days To Offload">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>This site&#x27;s getting rusty</title>
        <pubDate>Fri, 03 May 2024 10:30:00 +0530</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/this-site-now-uses-zola/</link>
        <guid>/blog/this-site-now-uses-zola/</guid>
        <description xml:base="/blog/this-site-now-uses-zola/">
          
            <![CDATA[<p>Up until now, my site was <em>going</em> well but now it's gotten pretty <em>rusty</em>.
<em>You see what I did there?</em></p>
<p>Yes, dear reader, we have switched from <a rel="noopener external" target="_blank" href="https://gohugo.io">Hugo</a>, the static
site generator I've been using for almost two years. I still love Hugo, it's very
fast and it's written in my favourite programming language; and I'm familiar enough
with go's template engine, so Hugo was a breeze.</p>
<p>BUT it's time for Go to go, because rust is hip nowadays. So, my friends, I re-wrote
this site in.. <a rel="noopener external" target="_blank" href="https://getzola.org">Zola</a>! Zola is a static site generator written in rust
and while Hugo claims to be "the fastest", Zola is a big contender.
I obviously still have the files from the Hugo site, so I just did a quick test by
running <code>hugo</code> and <code>zola build</code>; it might be inaccurate but it took them 45ms and 48ms respectively
to build my website! Note that my Hugo theme is slightly larger!</p>
<p>I wanted to redesign my website anyways (it's MUCH nicer now) so I just went and did this in
Zola as I thought I'd also learn a new tool in the process. I was going for Jekyll but then
randomly came across Zola, and I'm very happy I did. Zola is so much simpler than Hugo
and I got the site converted from Hugo to Zola very quickly.</p>
<p>I'd definitely consider Zola for later projects; but my existing hugo sites (except this one)
will probably continue to be in hugo, because it'd be a waste of time without any real
advantage converting them.</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: This site&#x27;s getting rusty">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Linux means freedom of choice... And so does not using it!</title>
        <pubDate>Sat, 27 Apr 2024 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/linux-means-freedom-of-choice/</link>
        <guid>/blog/linux-means-freedom-of-choice/</guid>
        <description xml:base="/blog/linux-means-freedom-of-choice/">
          
            <![CDATA[<p>I count myself as a Linux enthusiast; I cannot function without telling people that I use Arch btw (/s)</p>
<h2 id="but-why">But why?</h2>
<p>There're a bunch of reasons for me to use linux, it's more secure, more private, lightweight...<br />
BUT that's not the main reason. I started caring about stuff like this <em>after</em> I became familiar with the "Linux Ecosystem".
The dealbreaker for me was... Freedom of choice!</p>
<h2 id="customizability">Customizability</h2>
<p>Customizability means A LOT to me. If something is mine it needs to scream its mine.
Call me a narcissist but I brand everything I own with my own tastes!
Since I spend a lot of time on my laptop, I want it to look exactly how I want it to look like
(doesn't matter if others find it ugly) and I want it to support my workflow, not the other way around.</p>
<p><img src="/pics/rice_screenshot-27042024.webp" alt="My ArchLinux Setup" /></p>
<p>Now, linux gives me this freedom of choice to use whatever window manager I want to use,
whatever status bar I want to use, etc. This kind of thing would be hard to impossible on other
proprietary operating systems! Now me using ArchLinux, with the XMonad window manager, and the
Dvorak keyboard layout doesn't mean these are the best choices.
It's what I want to use, it wasn't offered to me, and I had the complete
freedom to just stick with KDE or something. (btw I love KDE)</p>
<p>Now I try to encourage people into using Linux. It's not ideal for most people but if someone is
curious and/or tech savvy enough I always try to get them to use Linux. Obviously, most people
don't stick with it, but that's fine. Linux gives you the freedom of choice, and using an easy to
use distro, or not using Linux at all is also a choice!</p>
<p>But what icks me the most is, people refusing to even learn about Linux then hating on it. Same might
apply to a bunch of other things but not wanting to use Linux is more than fine by me.. But I think if someone
rejects something without even trying it, it's not a choice anymore. It's just stupidity and stubbornness.</p>
<p>So my whole point is, linux elitism is cringe and giving shit to people for switching out of linux is a horrible thing to do
yet, people hating on linux without ever trying it are just as bad.</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Linux means freedom of choice... And so does not using it!">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>LPT: Pseudoleaving annoying WhatsApp groups</title>
        <pubDate>Wed, 28 Feb 2024 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/pseudoleaving-whatsapp-groups/</link>
        <guid>/blog/pseudoleaving-whatsapp-groups/</guid>
        <description xml:base="/blog/pseudoleaving-whatsapp-groups/">
          
            <![CDATA[<p>Group chats are cringe. Especially if you've been involuntarily added to them.
I have way too many from college which usually get junk messages but I can't really leave them.</p>
<p>Well, it's a valid option to just archive it; but then you have that annoying "Archived" section. It kills the vibe!</p>
<h2 id="the-solution">The solution</h2>
<p>So I'm gonna teach you guys a pro gamer move, which I call, <em>pseudoleaving</em>.</p>
<h3 id="step-1">Step 1</h3>
<p>Mute the group chat.</p>
<h3 id="step-2">Step 2</h3>
<p>Lock the group chat.</p>
<h3 id="profit">Profit</h3>
<p>It's as simple as that!
Unless you often use the chat lock option, you now have the illusion that you've left the group!</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: LPT: Pseudoleaving annoying WhatsApp groups">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>I&#x27;m switching to Dvorak...</title>
        <pubDate>Wed, 13 Dec 2023 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/switching-to-dvorak/</link>
        <guid>/blog/switching-to-dvorak/</guid>
        <description xml:base="/blog/switching-to-dvorak/">
          
            <![CDATA[<p>久しぶり!!!</p>
<p>So I've finally taken the red pill and switched to the Dvorak Programmer layout;
and now you have to read about my experience <em>heh heh</em>.
Now whether Dvorak actually makes you more accurate and/or faster hasn't really been
proven and I won't be talking about that, but facts &amp; logic aint gonna change my decision now.</p>
<h2 id="y-tho">Y tho</h2>
<p>I am not ashamed to admit that the main reason for this was because it's cool and quirky.
The <em>other</em> main reason is that I wanted to get better at typing.
I, like most people, learned typing the wrong way. I started out by looking at the keyboard
while typing, and slowly moved on to touch typing. but looking at the keyboard is bad
for your posture and eventually reduces accuracy. Surely it's possible to learn the
right way later on, but in my opinion it is just easier to forget everything and learn from
the start... preferably the hard way! Now that's where layouts like Dvorak and Colemak
come in handy.</p>
<h3 id="why-not-colemak">Why not colemak?</h3>
<p>Dvorak (especially Programmer's Dvorak) seems more attractive as a programmer,
but who knows, maybe I'll try out Colemak one day too!
I will say that Colemak seems more sensible for keyboard shortcuts but I hated
the default ones anyways. But I love how Dvorak has commonly used symbols
in more accessible places.</p>
<h2 id="first-thoughts">First thoughts</h2>
<p>Initally it felt really hard but comfy in Google Docs (yes I sometimes have to use it) and
it was surprising how many words I can make just from the home row.
But when it came to other programs... Oh dude</p>
<p>It was hell. It's still hell. I cannot use my window manager, I cannot use Doom Emacs,
I cannot use vim. Using a new layout is confusing enough, but it's 10x worse when your
brain just hits h,j,k,l without thinking. I somehow typed out a part of this article
in emacs but since "First Thoughts" I switched to vscodium just to keep my sanity.</p>
<h2 id="second-thoughts">Second thoughts</h2>
<p>Fuck my typing speed literally became 17% of what it used to be. It actually feels much
more frustrating than I imagined. I literally cannot use my pc properly anymore.
I'm sure I'll get it back but for the time being typing this article on 14 WPM actually
feels like shit. I'm literally taking way too many sanity breaks. I've been writing this
since yesterday!</p>
<p>On the plus side, <code>ctrl-t</code> and <code>ctrl-s</code> are soo much more comfier! I've already started
to fix my muscle memory. Before, I used primarily the left shift and almost always the
left ctrl key and with Qwerty I had to be constantly conscious about it in order to keep
the usage of the left and right keys balanced, which was almost impossible! With Dvorak
it's much easier because I'm building better habits from the start. That's not a Dvorak
thing; that's a new layout thing.</p>
<h2 id="does-dvorak-help-though">Does Dvorak help though</h2>
<p>Well yes and no...
In the end, it all boils down to your level of practise. With proper training you can
become the best typist while still using Qwerty. It's <em>you</em> who is improving! But
like I said, it's easier to start over with good habits rather than to try to forget
older bad habits. It's a more miserable experience but it's a one-time investment.
Also, I think what helps more is applying blanking stickers on your keyboard in order
to encourage you to not look at the keyboard. You <em>can</em> find ones meant to be applied
on keyboards online, but I used some paper stickers I had lying around. It doesn't
look as good since it's DIY but it gets the job done.</p>
<p>With that being said, I do agree that Dvorak is a superior layout. It requires much
less finger movement to type the most commmon words and has many more combinations in
the home row. Only caveat for me is that most programs have keybindings that only
make sense for Qwerty. Vim is obviously hell at start, I wonder what Gimp and Kdenlive
would be like.</p>
<h3 id="qwerty-is-outdated">Qwerty is outdated!</h3>
<p>Qwerty was made for typewriters. It deliberately spreads apart more commonly used
letters, increasing finger movement. In the context of typewriters it makes sense
because it prevents jamming. But for computers, It's pretty outdated and less ergonomic.
The <code>;</code> key under the little finger has seemed funky ever since I learned touch
typing. Dvorak just makes better use of all the Fingers! Just the position of the
<code>s</code> key is a huge selling point for me.</p>
<p>While other layouts require serious commitment, they also put less strain on your
Fingers! It's definitely isn't easy, and it's not for everyone. I've taken the red
pill, would you take one too?<br />
Let me know!</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: I&#x27;m switching to Dvorak...">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Stream system audio to your friends over discord! (and other applications)</title>
        <pubDate>Sun, 15 Oct 2023 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/virtual-mic/</link>
        <guid>/blog/virtual-mic/</guid>
        <description xml:base="/blog/virtual-mic/">
          
            <![CDATA[<p>On linux there isn't any way to screen share with audio on popular video chat applications. Well who cares if the application doesn't support it!
With this script you have a finer control over what others hear. You can choose between your sound, system sound, both and
can even chose which system sounds others can hear and what others can't!</p>
<p>This is supposed to work on both pulseaudio and pipewire, I haven't tried with pulse so just in case if you have any issues, <a href="/contact">please let me know.</a></p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="shellscript"><span class="giallo-l"><span style="color: #F5C2E7;font-style: italic;">#!/bin/sh</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span>default_source</span><span style="color: #94E2D5;">=</span><span style="color: #A6E3A1;">&quot;</span><span style="color: #9399B2;">$(</span><span style="color: #89B4FA;font-style: italic;">pactl</span><span style="color: #A6E3A1;"> get-default-source</span><span style="color: #9399B2;">)</span><span style="color: #A6E3A1;">&quot;</span></span>
<span class="giallo-l"><span>default_sink</span><span style="color: #94E2D5;">=</span><span style="color: #A6E3A1;">&quot;</span><span style="color: #9399B2;">$(</span><span style="color: #89B4FA;font-style: italic;">pactl</span><span style="color: #A6E3A1;"> get-default-sink</span><span style="color: #9399B2;">)</span><span style="color: #A6E3A1;">&quot;</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span style="color: #9399B2;font-style: italic;"># create virtual sinks</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">pactl</span><span style="color: #A6E3A1;"> load-module module-null-sink sink_name=VirtualSpeaker</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">pactl</span><span style="color: #A6E3A1;"> load-module module-null-sink media.class=Audio/Duplex sink_name=VirtualMicrophone</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span style="color: #9399B2;font-style: italic;"># create loopbacks</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">pactl</span><span style="color: #A6E3A1;"> load-module module-loopback source=&quot;VirtualSpeaker.monitor&quot; sink=&quot;</span><span>$default_sink</span><span style="color: #A6E3A1;">&quot;</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">pactl</span><span style="color: #A6E3A1;"> load-module module-loopback source=&quot;</span><span>$default_source</span><span style="color: #A6E3A1;">&quot; sink=&quot;VirtualMicrophone&quot;</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">pactl</span><span style="color: #A6E3A1;"> load-module module-loopback source=&quot;VirtualSpeaker.monitor&quot; sink=&quot;VirtualMicrophone&quot;</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span style="color: #9399B2;font-style: italic;"># set default mic</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">pactl</span><span style="color: #A6E3A1;"> set-default-source &quot;VirtualMicrophone&quot;</span></span></code></pre>
<p>After running this script you'll be able to choose VirtualMicrophone as the mic in any chat app;
the last line of this script also ensures that this new mic is the default mic, you can remove this if you want.</p>
<h2 id="how-does-this-work">How does this work?</h2>
<p>This script basically creates a virtual speaker and a virtual microphone. You can listen to the virtual speaker on your physical speakers, while the virtual mic is always listening to both your virtual speaker and your virtual mic. So basically your voice and the playback is merged into this new mic.</p>
<p>Using pavucontrol you can change the playback device for each stream differently from the playback tab.</p>
<h2 id="further-configurations">Further configurations</h2>
<ul>
<li>
<p>Choosing what others hear:</p>
<p>If you have youtube (or any other app) playing in the background, you can use pavucontrol to select its output device from the playback tab.</p>
<ul>
<li>
<p>When the playback is set to your headphones/speakers, only you can hear it:
<img src="/pics/vmic_playback-headphones.webp" alt="Pavucontrol playback to headphones" /></p>
</li>
<li>
<p>When the playback is set to VirtualSpeaker, both you and others can hear it through your microphone.
<img src="/pics/vmic_playback-virtualspeaker.webp" alt="Pavucontrol playback to VirtualSpeaker" /></p>
</li>
<li>
<p>When the playback is set to VirtualMicrophone, only others can hear it.
<img src="/pics/vmic_playback-virtualmic.webp" alt="Pavucontrol playback to VirtualMicrophone" /></p>
</li>
</ul>
<p><em>you can have multiple audio streams playing being routed to different devices through pavucontrol</em></p>
</li>
<li>
<p>Setting volume:</p>
<ul>
<li>Setting the volume of your speakers only changes the volume for you</li>
<li>Setting the volume of your virtual speaker changes the volume for everyone. You can do so from the output devices tab.</li>
<li>To only change the volume for <em>others</em>, go to the recording tab, and set the show option at the bottom to either "All" or "Virtual Streams"
<img src="/pics/vmic_recording.webp" alt="Pavucontrol recording devices" />
Usually the first loopback device routes VirtualSpeaker to VirtualMicrophone. Changing its volume level will only affect others.</li>
</ul>
</li>
</ul>
<h2 id="common-issues">Common Issues</h2>
<p>Please <a href="/contact">report</a> any other issues to me! I'll update this page for fixes if I think the issue worthy enough.</p>
<ul>
<li>
<p>Not hearing any sound:</p>
<p>Sometimes any of the new virtual devices created by this script might be muted by default.
Go to the recording tab and set the show option to virtual streams, and make sure all 3 of the loopbacks are unmuted.
Do the same for VirtualMicrophone and VirtualSpeaker from the "Output Devices" tab.</p>
</li>
</ul>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Stream system audio to your friends over discord! (and other applications)">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>ACTUALLY fix WiFi turning off on laptop lid close</title>
        <pubDate>Tue, 12 Sep 2023 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/hp-setkeycodes-fix/</link>
        <guid>/blog/hp-setkeycodes-fix/</guid>
        <description xml:base="/blog/hp-setkeycodes-fix/">
          
            <![CDATA[<p>If you have an HP laptop running linux you might have noticed that when you close the lid and open it again it turns off the WiFi.
Note that the weird part is that it turns off the WiFi after the lid <em>opens,</em> not when it's closed.</p>
<p>This is really weird and annoying because I constantly close the lid and open it again in class and stuff
and sometimes I just don't wanna lose the network connection!</p>
<p>I searched on the internet and found a fix using setkeycodes.</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>setkeycodes e057 240 e058 240</span></span></code></pre>
<p>Everywhere I searched people were using the same custom systemd service
that apparently worked for them, but not for me. The fix worked, but not the systemd service.
After checking some logs, I found this:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>hp-keycodes.service: Failed to open /etc/systemd/system/hp-keycodes.service: No such file or directory</span></span></code></pre>
<p>Hmm so if I did a <code>systemctl start hp-keycodes</code> it worked but not with <code>systemctl enable</code>. Weird.
It somehow couldn't find the .service file while booting up.</p>
<h2 id="the-fix">The Fix</h2>
<p>The is the correct systemd service that you need to use:</p>
<p>Store it as <code>/etc/systemd/system/hp-keycodes.service</code>.</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>[Unit]</span></span>
<span class="giallo-l"><span>Description=HP setkeycodes fix</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span>[Service]</span></span>
<span class="giallo-l"><span>Type=oneshot</span></span>
<span class="giallo-l"><span>Restart=no</span></span>
<span class="giallo-l"><span>RemainAfterExit=no</span></span>
<span class="giallo-l"><span>ExecStart=/usr/bin/setkeycodes e057 240 e058 240</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span>[Install]</span></span>
<span class="giallo-l"><span>WantedBy=multi-user.target</span></span></code></pre>
<p>and just run <code>systemctl enable --now hp-keycodes.service</code>.</p>
<p>Now, when you close and re-open your laptop's lid, it won't toggle the WiFi.</p>
<p><em>If this fix doesn't work for you, it probably means it's a different thing that's causing problems and you should research more instead of following this guide.</em></p>
<h2 id="the-problem-with-other-fixes">The problem with other fixes</h2>
<p>On almost every website I saw the same .service file. What's different in mine is that it uses <code>WantedBy=multi-user.target</code> while the others had this:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>[Install]</span></span>
<span class="giallo-l"><span>WantedBy=rescue.target</span></span>
<span class="giallo-l"><span>WantedBy=multi-user.target</span></span>
<span class="giallo-l"><span>WantedBy=graphical.target</span></span></code></pre>
<p>I just removed <code>rescue.target</code> and <code>graphical.target</code> and it worked!</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: ACTUALLY fix WiFi turning off on laptop lid close">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Website Domain Change (and letting go of weeb-developerz.xyz)</title>
        <pubDate>Wed, 10 May 2023 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/domain-change/</link>
        <guid>/blog/domain-change/</guid>
        <description xml:base="/blog/domain-change/">
          
            <![CDATA[<p>If you've been a reader of this website for more than a few months ago, you might know that I have 3 domains:</p>
<ul>
<li>vidhukant.xyz</li>
<li>mikunonaka.net</li>
<li>weeb-developerz.xyz</li>
</ul>
<p>Being the domain-hoarder I am, I got another domain!!! It's vidhukant.com because of course everyone wants a .com domain nowadays.</p>
<p>I am changing the website's main domain to vidhukant.com because of course I am.
This won't really change anything since I don't plan to ever cancel vidhukant.xyz, and it'll always be redirecting to vidhukant.com.
For now mikunonaka.net still redirects to this website but I plan to change that one day (yes I plan to maintain 2 websites im weird)</p>
<p>Also, I no longer have weeb-developerz.xyz because my allowance only supports 3 domains. If there is any activity on weeb-developerz.xyz, please note that
it's not me. I know just letting go of a domain like that is not that good of an idea, but fuck it.
For my email, if anyone is wondering, it doesn't matter if you write to me on vidhukant.xyz or vidhukant.com, They're all reaching the same mailbox anyways.</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Website Domain Change (and letting go of weeb-developerz.xyz)">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>The Guitar Is Pretty Neat</title>
        <pubDate>Fri, 10 Mar 2023 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/guitar-is-pretty-neat/</link>
        <guid>/blog/guitar-is-pretty-neat/</guid>
        <description xml:base="/blog/guitar-is-pretty-neat/">
          
            <![CDATA[<p>The guitar has always been my favourite musical instrument, and it's been almost 3 years since I planned to buy an acoustic guitar.
Due to circumstances and stuff, I sadly never got one.<br />
That was until I watched Bocchi The Rock! There is some power in cute girls doing cute things that can drive a man to do anything.
So I finally got a guitar! And because bocchi has one, obviously I got an electric guitar (though it's not the same as bocchi, it's a strat because I don't like les paul)</p>
<p>I have no idea how to play a guitar, and while I didn't expect it to be easy, I thought I could probably get by with just YouTube tutorials.
Well, that's not the case! So I guess I need guitar lessons. I don't live in a very big town so we'll see how that goes...</p>
<p>I don't think I'd have much issues keeping myself motivated to learn the guitar, because more than anything, I love vibing to my favourite anime openings.
It's gonna be so dope when I get good enough to play all the songs from Bocchi The Rock... and even Hikaru Nara! Maybe I'll keep the blog updated with my guitar progress</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: The Guitar Is Pretty Neat">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>I love Domestic Na Kanojo</title>
        <pubDate>Thu, 05 Jan 2023 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/i-love-domekano/</link>
        <guid>/blog/i-love-domekano/</guid>
        <description xml:base="/blog/i-love-domekano/">
          
            <![CDATA[<p>I just realised the year has changed, and apparently it happened almost a week ago, so I thought I'd talk about the best manga I read in 2022.
And that manga is... Domekano. I know Domekano has a reputation, I mean the whole manga is focused around incest and some other forms of perversion.
But there is something about the writing that makes it really satisfying to read.</p>
<h2 id="a-little-bit-about-domestic-girlfriend">A little bit about Domestic Girlfriend</h2>
<p>For those who are not familiar with the plot of Domestic Girlfriend, allow me to explain.
The main character, Natsuo has a crush on his teacher and doesn't look at other women. One day, his frends drag him to a mixer
and there he meets this girl named Rui, who takes him to her house and they end up having sex together just out of curiosity, and decide to forget about it.<br />
One day, Natsuo's dad says that he's going to have a second marriage and wants him to meet his potential new mother her daughters. Those future step sisters,
are in fact, Hina -Natsuo's teacher who he has a crush on-, and the other girl is Rui, the girl he lost his virginity to!
The three of these characters are forced to live in the same house, which is a very awkward setting and I won't spoil but there is a lot of incest involved.</p>
<h2 id="i-love-when-you-can-feel-the-secondhand-tension">I love when you can feel the secondhand tension</h2>
<p>The characters of Domekano are in a somewhat realistic situation. It's way too dramatic but it doesn't feel too much cliche.
This manga covers both the hardships you might face after suddenly getting a step sibling (not that I can say much about that),
and how drastically your living situation might change because of that. And also the feeling that the person you like is suddenly your family now.</p>
<h3 id="i-love-the-characters">I love the characters</h3>
<p>The characters are very well written, and are very realistic and very likeable. This goes for the supporting characters too.
The interaction between the characters of the Literature Club is a one of my favourite parts of the manga. Throughout the story you
can see a lot of character development. The characters fight a lot sometimes and that's what makes them really natural.</p>
<p>I love how each character has their own issues. They worry about various stuff, about their future, about the person they like, about their
relationship with their friends, etc. I like how Natsuo works hard to become a writer, Momo tries to become a doctor and eventually is successful in that.
These small things make the story very interesting.</p>
<p>It's weird how the story covers Natsuo dating both of his step sisters and also covers how he gets inspiration for his stories from the people around him,
and gives a good insight of a writer's life. I just love Natsuo's interactions with Shigemitsu-sensei and how he goes to different (sometimes shady) places with him,
to interview various people, and explores various aspects of people's lives as "research" for writing novels.</p>
<h3 id="the-character-design-is-hot">The character design is HOT</h3>
<p>I mean, who wouldn't look at the characters and think that they aren't really attractive! Also Rui best girl. I so love the character design.</p>
<h2 id="the-domestic-relationship-part-makes-it-better-somehow">The domestic relationship part makes it better somehow</h2>
<p>From a slice of life point of view, Domestic Girlfriend is definitely in my top 10. It's kind of a mature slice of life story,
with not only happy but also sad moments, it's very inspiring at times, and also really heartwarming. But it also lots of incest.
It's interesting how both serious moments and lots of perversion is packed into this one whole manga. From a romance point of view
and from a slice of life point of view, Domekano is really good. There is a lot of tension between the characters but they work it all out.</p>
<p>I do think that if this manga didn't have such an absurd setting it wouldn't really work, even though in many chapters this kind of setting
is totally irrelevant, it just wouldn't be as good. The absurt yet serious and realistic setting of Domekano makes it really good.
I'd love to buy the whole manga in paperback and read it again.</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: I love Domestic Na Kanojo">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Distributing a GTK App for Windows</title>
        <pubDate>Mon, 02 Jan 2023 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/distributing-gtk-app-for-windows/</link>
        <guid>/blog/distributing-gtk-app-for-windows/</guid>
        <description xml:base="/blog/distributing-gtk-app-for-windows/">
          
            <![CDATA[<h1 id="setting-up-msys2">Setting up msys2</h1>
<h2 id="installation-using-chocolatey">Installation using chocolatey</h2>
<p>You need to install msys2 before you can start developing on windows.
The easiest way to set it up is to use the <a rel="noopener external" target="_blank" href="https://chocolatey.org">chocolatey package manager</a>.</p>
<p>If you don't already have choco installed, just follow the installation instructions on <a rel="noopener external" target="_blank" href="https://chocolatey.org/install">https://chocolatey.org/install</a> then run</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">choco</span><span> install msys2</span></span></code></pre>
<p>After msys2 is set up, open a new (non-administrator) powershell window, and in that run msys2</p>
<h2 id="installing-necessary-packages">Installing necessary packages</h2>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">sudo</span><span> pacman -S mingw-w64-x86_64-gtk3 mingw-w64-x86_64-toolchain base-devel glib2-devel</span></span></code></pre>
<p>Refer to the installation instructions on GTK's website on which other packages you might need.
I believe this is enough to get started.</p>
<h1 id="compiling-your-app">Compiling your app</h1>
<p>Now, clone your project's repository and build the app as you normally would on linux and place the executable in the <code>bin</code>
directory inside your installation directory. Use the ldd command (<code>ldd bin/MyApp.exe</code>) to list the necessary DLLs required
by your app and copy all the DLLs starting with <code>"/mingw"</code> to the <code>bin</code> directory. This script automatically does that:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">ldd</span><span> bin/MyApp.exe </span><span style="color: #94E2D5;">|</span><span style="color: #89B4FA;font-style: italic;"> grep</span><span style="color: #A6E3A1;"> &#39;\/mingw.*\.dll&#39;</span><span> -o</span><span style="color: #94E2D5;"> |</span><span style="color: #89B4FA;font-style: italic;"> xargs</span><span> -I{} cp </span><span style="color: #A6E3A1;">&quot;{}&quot;</span><span> ./bin</span></span></code></pre>
<p>Credit goes to <a rel="noopener external" target="_blank" href="https://stackoverflow.com/a/50130668">https://stackoverflow.com/a/50130668</a>; Replace MyApp.exe with your executable's name.</p>
<h1 id="adding-other-required-files">Adding other required files</h1>
<h2 id="icon-theme">Icon Theme</h2>
<p>Create a directory for the icon theme with <code>mkdir -p ./share/icons</code>, and download the hicolor (mandatory) and another icon pack (I'll be using Adwaita)
and place both files into <code>share/icons</code>.</p>
<p>Or just copy from your mingw installation</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">cp</span><span> /mingw64/share/icons/</span><span style="color: #94E2D5;">*</span><span> -r share/icons/</span></span></code></pre><h2 id="glib-schemas">GLib Schemas</h2>
<p>Settings schemas need to be compiled in order for the app to work. The quickest way is to just copy the default ones from your mingw installation.
In a real-world scenaro you might want to edit these files and delete any irrelevant settings but just for testing I don't care.</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">mkdir</span><span> -p share/glib-2.0/schemas</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">cp</span><span> /mingw64/share/glib-2.0/schemas/</span><span style="color: #94E2D5;">*</span><span> share/glib-2.0/schemas/</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">glib-compile-schemas.exe</span><span> share/glib-2.0/schemas/</span></span></code></pre><h2 id="pixbuf-loaders">Pixbuf loaders</h2>
<p>GTK needs Pixbuf loaders to be able to load images, else it will crash. Just copy the loaders from your mingw installation:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">cp</span><span> /mingw64/lib/gdk-pixbuf-2.0 -r lib/gdk-pixbuf-2.0</span></span></code></pre><h1 id="finishing-up">Finishing up</h1>
<p>Check that your app runs, and either zip the file or create a microsoft installer to distribute the app!</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Distributing a GTK App for Windows">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Customizing a Doom Emacs Theme</title>
        <pubDate>Fri, 02 Dec 2022 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/making-your-own-doom-emacs-theme/</link>
        <guid>/blog/making-your-own-doom-emacs-theme/</guid>
        <description xml:base="/blog/making-your-own-doom-emacs-theme/">
          
            <![CDATA[<p>Creating your theme/modifying an existing one, or overriding some faces (globally) in Emacs, especially Doom Emacs is
really easy once you understand how to do it... but it wasn't very easy to <em>understand</em> how to do it. Most likely
I was doing something wrong, or maybe it's just because I don't fully know how lisp or emacs works that's why it took me long
but I spent a good part of my evening trying to make even small changes to work.</p>
<p>So, I have created this short tutorial to leave me (and others having problems) some notes on how to modify a Doom Emacs theme.
I'm using Doom Emacs which comes with the doom-themes packages doing some basic setup so we only need to define some variables and it
automatically applies other faces and stuff, and I'm pretty sure doom-themes can be installed on regular Emacs.</p>
<h2 id="overriding-faces">Overriding faces</h2>
<p>Each element in an emacs buffer has a "face" which defines its foreground/background color, font styling, etc.
You can do <code>M-x RET</code> <code>describe-char</code> or <code>describe-face</code> to get the face of the area under the cursor, or to get a
list of all the available faces (which is very long)</p>
<p>The <code>custom-set-faces!</code> macro (or <code>custom-set-faces</code> for Emacs users) can be used to customize any face:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="common-lisp"><span class="giallo-l"><span>(custom-set-faces!</span></span>
<span class="giallo-l"><span style="color: #FAB387;">  &#39;</span><span>(default :background</span><span style="color: #A6E3A1;"> &quot;#100b13&quot;</span><span>)</span></span>
<span class="giallo-l"><span style="color: #FAB387;">  &#39;</span><span>(cursor :background</span><span style="color: #A6E3A1;"> &quot;#0ec685&quot;</span><span> :foreground)</span></span>
<span class="giallo-l"><span style="color: #FAB387;">  &#39;</span><span>(line-number :slant normal :background</span><span style="color: #A6E3A1;"> &quot;#100b13&quot;</span><span>)</span></span>
<span class="giallo-l"><span style="color: #FAB387;">  &#39;</span><span>(line-number-current-line :slant normal :background</span><span style="color: #A6E3A1;"> &quot;#21242b&quot;</span><span>))</span></span></code></pre>
<p>You can add something like this to your <code>~/.doom.d/config.el</code></p>
<h2 id="using-a-doom-theme-as-a-template">Using a doom theme as a template</h2>
<p>Another way to modify your Doom theme is to use an existing theme as a template (or, starting from bottom up!)
and modifying it.</p>
<h3 id="how-to-modify-an-existing-theme">How to modify an existing theme:</h3>
<ol>
<li>
<p>Go to <a rel="noopener external" target="_blank" href="https://github.com/doomemacs/themes">this page</a> and choose any theme you like, and download the raw file into
<code>~/.doom.d/themes/&lt;theme-name&gt;-theme.el</code>. The theme name can be anything, but make sure it ends with "-theme.el"
or Doom won't recognise it as a theme.</p>
</li>
<li>
<p>Open the theme in your favourite text editor (I wonder which one it is) and edit the line that says <code>(def-doom-theme &lt;theme-name&gt;</code>
and replace <code>&lt;theme-name&gt;</code> with any name you like, make sure not to use the original name (or the name of any other theme that already exists on your system) or it would create a clash.
Now, edit the theme to your liking and you're good to go!</p>
</li>
<li>
<p>Open a new Doom Emacs frame and enter <code>SPC h t t</code> and select your new theme!</p>
</li>
</ol>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Customizing a Doom Emacs Theme">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>I Switched to (Doom) Emacs</title>
        <pubDate>Sat, 26 Nov 2022 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/i-switched-to-emacs/</link>
        <guid>/blog/i-switched-to-emacs/</guid>
        <description xml:base="/blog/i-switched-to-emacs/">
          
            <![CDATA[<p>After <a href="/blog/2022/my-failed-attempt-at-installing-gentoo/">failing to set up gentoo</a> I've decided
to stop using linux. After thinking about it for some time I finally installed emacs. Now instead of
Arch Linux, I have an entry for emacs in my GRUB config.</p>
<p>Jokes aside, emacs is actually an awesome text editor! Though I think <code>C-x C-f</code> is bullshit. Evil mode
is the greatest emacs extention! I've been using <a rel="noopener external" target="_blank" href="https://github.com/doomemacs/doomemacs">Doom Emacs</a> which is an emacs "configuration framework" which comes
with Evil mode turned on by default. Idk if it counts as cheating but I don't really care.</p>
<p>Honestly, getting used to emacs was not hard but not easy either. It was somewhere in the middle.
It wasn't too hard probably because I had experience with vim. But apart from having similar keybindings with Evil mode,
and having kind of the same philosophy of never leaving your keyboard, emacs is much different.</p>
<h2 id="it-s-one-of-the-most-polished-ide-i-ve-used">It's one of the most polished IDE I've used</h2>
<p>Okay, the only other IDE I've used is IntelliJ Idea, so I don't think I have too much experience, but Doom Emacs is really the most fun
text editor/IDE to code in. It has support for multiple programming languages, which is the most important for me, but it also has
a great way of navigating around the projects and also has git integration that I really haven't used much.</p>
<p>Unlike vim, it <em>does</em> have long startup times but apart from that, it's pretty fast and has LSP support
(especially Doom Emacs which has some bundled packages for lots of languages), and it just feels much more polished
as compared to something like CoC.</p>
<h2 id="emacs-can-literally-do-anything">Emacs can literally do anything</h2>
<p>The only thing keeping me from directly booting into emacs is my XMonad config which is I'm way too comfortable with.
I mean, Emacs can act as a text editor/IDE, an image viewer, PDF viewer, web browser, music player, email client, RSS reader, and A WINDOW MANAGER</p>
<p>That's pretty cool! I might try exwm (I think that's what it's called) when I get more comfortable with emacs..</p>
<h2 id="try-out-emacs-now">Try out Emacs NOW!</h2>
<p>Emacs is really innovative, it feels like home because of the vim emulation but with a plethora of extra features.
Since emacs manages its own internal buffers, as a tiling window manager user I found it kinda hard to get used to,
but in the end I feel much more productive. I haven't even tried out most of the features I know about, like I have changed like 5 lines
in the config file so there is still a lot for me to learn, but it's very fun!</p>
<p>Even if you don't have much experience with vim, I recommend trying out emacs. I think apart from the weird buffer/window thing and
the keyboard-driven interface, it still feels much closer to things like VSCode, not vim.</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: I Switched to (Doom) Emacs">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Don&#x27;t Cover Liabilities With Liabilities</title>
        <pubDate>Sun, 02 Oct 2022 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/dont-cover-liabilities-with-liabilities/</link>
        <guid>/blog/dont-cover-liabilities-with-liabilities/</guid>
        <description xml:base="/blog/dont-cover-liabilities-with-liabilities/">
          
            <![CDATA[<p>Robert Kiyosaki, in his famous book, "Rich Dad, Poor Dad", said
"You must know the difference between an asset and a liability, and buy assets."
I like that statement. I don't think it only applies to making money.</p>
<p>Not only people don't realise that they're constantly piling liabilities,
they use liabilities to... get rid of liabilities?</p>
<h2 id="liabilities-that-take-liabilities-away">Liabilities that take liabilities away</h2>
<p>You'd find many products, etc that promise to fix an issue, sometimes they actually do.
But many times they're just trying to make you believe that you're getting rid of all these problems,
while in fact, these things that promise to take away your problems <em>are</em> a problem themselves.</p>
<p>I stumbled across one of these recently. It was a certain app that scans all of your emails and gives you a
report on what websites and services you've registered with and which sites are keeping your personal data.
Apparently it also lets you easily request to delete that personal data. How convenient!</p>
<p>The problem is all these companies keeping a hold of your personal data.
The goal is to keep track and/or ask to delete that data.
Now you're giving <strong>another</strong> company all of your data, which analyses your data and tells
you about who is using your data. People falling for this have completely missed the point.
You <em>think</em> you are solving a problem, but you're making the problem bigger!</p>
<p>You initially wanted to lower your digital footprint or whatever, but instead
you signed up for yet another service, which <strong>increases</strong> your digital footprint.
Beware of such tactics. <del>For legal reasons</del> I can't say that the app is doing something bad,
but you need to realise that what you think will take liabilities away might even be a liability itself.</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Don&#x27;t Cover Liabilities With Liabilities">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>You can&#x27;t have a good story without great characters</title>
        <pubDate>Thu, 29 Sep 2022 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/cant-have-good-story-without-great-characters/</link>
        <guid>/blog/cant-have-good-story-without-great-characters/</guid>
        <description xml:base="/blog/cant-have-good-story-without-great-characters/">
          
            <![CDATA[<p>I am no writer myself, but I love stories, and I think I can <em>somewhat</em> critique them.
And one of my main complaints with most stories (whether it be a book, or an anime, etc) is the story being
too <em>steriotypical</em>. Nowadays, you read one book, pick up another from the same genre and there's a very good
chance it's just a clone of the previous one you read. To some extent it's acceptable because you can't write a
story based on nothing, can you?</p>
<p>I believe you cannot completely fabricate a story. Take the fantasy/time travel genre for an example,
you totally can predict what's going to happen most of the time. It's honestly really overdone. I think not being predictable is also
a very important part of writing, but I won't be covering that. What really matters is how the characters
react to something, and how the reader/viewer reacts to <em>that</em>.</p>
<p>Let me explain, a good story is one that keeps the reader engaged. You need to seek a reaction out of them.
To do that, your characters need to be <em>very</em> plausible. If your characters aren't well written, it really doesn't
matter how good your plot is. Every reader knows what's going to happen in a romance novel, but we still read them.
Why is that? Because the selling point of a story is not what's gonna happen, but how the characters are going to
react to it. If you have a half assed, not well written character, no one's going to like the story.
But, if your character is very well written, and very detailed and plausible, that's going to make the reader
sad when the character is sad, or happy when the character is happy. Such a character
makes it easier for the reader to imagine the character as a real person.</p>
<p>And I think that's the most important part of a story. If the reader reads the story and feels nothing,
it's absoluely useless. Imagine if in a story a character dies but it doesn't matter because the reader
just didn't bond with the character. That'd be a truly boring story.</p>
<p>It's just something I've been thinking about, so I thought I'd share this,
but if you're into writing, make sure that your characters are extremely well written.
Emotional attachment with the reader is extremely important (probably applies to all kinds of
creative work!), which seems to be overlooked nowadays.</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: You can&#x27;t have a good story without great characters">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Everyone Should Learn Cubing</title>
        <pubDate>Wed, 21 Sep 2022 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/everyone-should-learn-cubing/</link>
        <guid>/blog/everyone-should-learn-cubing/</guid>
        <description xml:base="/blog/everyone-should-learn-cubing/">
          
            <![CDATA[<p>So I found my speedcube lying in my desk drawer and decided to get back into cubing and I'm hooked again!
Words cannot describe how fun this is. Solving a Rubik's Cube sounds like a daunting task,
and that's what I thought when I started learning a little more than one year ago.</p>
<p>But it's actually really easy unless you want to be able to solve a cube in like, 30 seconds.
You just need to remember some cases and algorithms to apply with those cases. It's a great mind exercise,
and overall really fun. After you get comfortable you can just play some music in the background
and solve your cube, maybe challenge yourself and try to be as fast as you can while solving it; or make
various patterns on your cube!</p>
<p><img src="/pics/cube_indianflag.webp" alt="Indian flag pattern on a 3x3 cube" />
<img src="/pics/cube_japaneseflag.webp" alt="Japanese flag pattern on a 3x3 cube" />
<img src="/pics/cube_mosaicpattern.webp" alt="Alternating colors pattern on a 3x3 cube" /></p>
<p>I know I take extremely pretty pictures!</p>
<h2 id="the-rubik-s-cube-is-one-of-the-most-fun-puzzles-out-there">The Rubik's Cube is one of the most fun puzzles out there</h2>
<p>I love the cube. It's really fun, and you can just vibe with your cube. It's compact, you can take it anywhere,
and honestly a pretty cool party trick! Even if you don't like puzzles, I recommend you to try cubing.
It's fun, it's easy*, and anyone of any age can enjoy it!</p>
<p>If you want to learn cubing, I recommend <a rel="noopener external" target="_blank" href="https://www.youtube.com/watch?v=7Ron6MN45LY">this video by J-perm.</a> I learned to solve the 3x3 and the 5x5 cube
(the 5x5 is just a 3x3 with extra steps) by watching his videos.</p>
<h3 id="i-know-you-have-a-cube-at-home">I know you have a cube at home</h3>
<p>No you can't hide it. I know. Most of you guys have a cube at your home because of a reason or another.
I know I did, and I know many people do. Trust me, it's easy, it's fun. Pick that cube up, and follow this video.
Solve that cube. Trust me, you'll thank me later.</p>
<hr />
<p>* it's very easy to learn, you only need to remember some basic cases. But, the techniques the hardcore speedcubers use <em>are</em> somewhat hard to learn.
But you can have a lot of fun without learning those hard techniques!</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Everyone Should Learn Cubing">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>All these &quot;tech companies&quot; are taking away your freedom.</title>
        <pubDate>Fri, 16 Sep 2022 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/tech-companies-are-using-you/</link>
        <guid>/blog/tech-companies-are-using-you/</guid>
        <description xml:base="/blog/tech-companies-are-using-you/">
          
            <![CDATA[<p>Most people (speaking from my experience) don't even understand what freedom means. From the start they are taught to go with the flow. There are things that they must do, there are things they mustn't. And frankly they don't even care about it if they're getting what they want.
And the people who know better than that, are taking advantage of this. They want you to believe that this is the right thing. They're real manipulative people.</p>
<p>All of this applies to the tech sphere. I'm relating this to tech for two reasons: First being that this is my field of specialization, and second, because it's really ingrained in our lives now. It's at the point where it is very hard to back out. Which is concerning because seems like soon it'll become impossible to back out! That's <strong>not</strong> a good thing!</p>
<h2 id="you-are-just-a-pawn-for-all-of-these-tech-companies">You are just a pawn for all of these "tech companies"</h2>
<p>Would you like to live in a world where people's opinion is greatly affected by just one individual?<br />
Or a world where nothing in your life can be kept private?<br />
A world where all of your actions are being dictated by others?<br />
Well you don't have to imagine it! You already are! how cool. It's only going to get worse.</p>
<p>You are living in a world of constant surveilance. Your phone number, more often than not, is tied to your legal ID.
When you sign up for... almost anything at this point, you are giving away your publically identifiable information.
Wherever you go, your mobile phone is scanning where you are, and sending this data to your phone company.
Even dumb phones are subject to surveilance. The text messages you send to people, they're not private.</p>
<p>Many people argue that so what if, say, Discord knows what they're talking about with their friends? Or that they have "nothing to hide".
Which is just, irresponsible. You're literally throwing away some of your rights by saying "I have nothing to hide".</p>
<p><em>"Privacy is not the same as secrecy. Everyone knows what happens in the toilet, still everyone locks the door."</em> - Unknown (I forgot)</p>
<h3 id="the-data-that-you-share-will-be-used-to-manipulate-you">The data that you share will be used to manipulate you</h3>
<p>The point is, that all these "tech" companies are data mining you. They know your daily activities, and the system has made you to believe that it's not a big deal.
They know your vulnerabilities, they know your likes and dislikes. They are the connoisseurs of social engineering.
When you are giving out all this data to others, you have to understand the liabilities of it.
This data can very well be used against you.</p>
<h4 id="targeted-advertisements">Targeted advertisements</h4>
<p>Targeted marketing is a very serious thing. These businesses feed on your insecurities, (which you cannot hide! The Gods of AI see everything)
they are constantly searching for ways to make you buy their product. They are very good at making you believe that you absolutely need this thing.</p>
<h4 id="social-platforms-etc-use-this-data-to-get-you-addicted-to-their-service">Social platforms, etc use this data to get you addicted to their service</h4>
<p>This is one of the most concerning things I see with people around me. Take YouTube for example, when you watch a video, it would recommend you other videos related to it. These recommendations aren't random, they are mostly based on what you have seen in the past. Their ML algorithm is very good at analysing what your likes are depending on what you've watched before.
This, on the outside, looks like very convenient technology. I mean shit, I love when they recommend me music I like, even I'm not immune to this. But people just overlook the dark side of it. I've said this before but this is a really good technique to get you addicted to their service.
They're want you to get the dopamine rush you need. You watch one video, they give you another until you get immune to the dopamine, and consume more and more of their content, until you get addicted.</p>
<h4 id="you-can-be-held-liable-for-everything-you-ve-said">You can be held liable for everything you've said</h4>
<p>Your phones are constantly listening. They record everything that you talk about, and they send it to your phone company.
What's worse is that now we have all these voice activated "smart" devices, which <del>you can use to turn on the lights with your voice</del> can use <em>you</em> for their profits.
On the surface this doesn't seem too bad, but you have to realise that the things you say now, the places you go to now, they are recorded and in the future you can totally be held liable for that.</p>
<p>There was this incident about a student who said something like he'd commit arson if he loses this game or something like that. I'm not exactly sure what it was, but he was just chatting with his friends while playing some online game. He was most likely just joking but 3 years later the recording somehow got out, and he was taken to court. He didn't even do anything, but he was taken to court and I'm not sure if he's still in there but he had to spend time in jail.<br />
And the judge literally said that he doesn't know what it means to "download" something (he probably said something like that in the recording), yet he was jailed.</p>
<p>This could happen to YOU and imagine how much worse it could become in the next few years. Some people are installing smart devices in like, every room of their houses.
That was just a voice chat, a smart device listening to you is bound to be so much worse.</p>
<p>For those people who believe that they don't keep their recordings "because they said so", you literally have no proof. You can NEVER trust software unless it is Free. Nonfree software can never, in any way, can be trusted. Unless your IoT device is librebooted, be ready to get in deep trouble for a dumb reason like 5 years later.</p>
<h3 id="you-are-not-in-control-of-the-things-that-you-own">You are not in control of the things that you own</h3>
<h4 id="companies-selling-features-as-services-are-bullshitting-you">Companies selling features as services are bullshitting you</h4>
<p>We have reached a ridiculous point where you (obviously) have to pay for something you buy, and <strong>you need to pay extra to use it.</strong></p>
<p>I recently read about a new BMW car (I forgot the model but you can look it up pretty easily on the internet), which comes with heated seats, but you have to pay extra to use the heated seats. Now you might be thinking, they charge extra for the heated seats because probably most people don't need it and it's expensive so they did this to reduce the car's cost.
Boy, are you wrong. This fucking car, comes with heated seats. When you pay for the car, you pay for the heated seats. You own the seats. But you need to pay them extra <em>on a monthly basis</em> to use those seats. What kind of idiot would be okay with this? This is not ethical. They've realised that people will pay for literally anything if they sugarcoat it. This is what they think about their customers. That they're dumb enough to buy everything they sell.</p>
<p>Tesla also did something like this a few years ago! (not sure if they still are doing this kind of thing)
Their lower end cars would come with all those cameras and stuff but it won't come with autopilot mode enabled. But you need to pay $5000 to get the feature enabled.
You. paid. for. the. equipment. Now you need to pay $5000 to use it. Imagine buying a house, but you need to pay the property dealer extra so they can unlock the kitchen.</p>
<p>The main point is, you're not paying to get the kitchen built, you're paying to use the pre-built kitchen you already paid for.</p>
<h2 id="your-opinions-are-not-yours-anymore">Your opinions are not yours anymore</h2>
<p>The internet influences a lot of us. Sometimes in good ways I must say, but the downsides can't help but take over the good sides.
The media really wants to force their opinions down your throat. They want you to believe in things that would benifit them. It's worse than ever because
media is now greatly controlled by people who <em>make</em> these devices you use to access the internet. They have the authority to control what is being shown to you, and what isn't. You're totally not free. You are in virtual jails created by huge corporations, filled with targeted advertising, and social engineering.</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: All these &quot;tech companies&quot; are taking away your freedom.">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Authenticating Your Mailserver With SPF and DKIM</title>
        <pubDate>Wed, 14 Sep 2022 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/securing-your-mailserver-with-spf-and-dkim/</link>
        <guid>/blog/securing-your-mailserver-with-spf-and-dkim/</guid>
        <description xml:base="/blog/securing-your-mailserver-with-spf-and-dkim/">
          
            <![CDATA[<p>I recently did a video on setting up an email server, with Postfix for SMTP and
Dovecot for IMAP, which you can check out <a rel="noopener external" target="_blank" href="https://odysee.com/@MikunoNaka:d/self-hosting-email-server:0">here.</a>
Now this much isn't enough since you want to make sure no one can spoof your domain and/or tamper with the content of your E-mails.
This is where SPF (Sender Policy Framework) and DKIM (DomainKeys Identified Mail) come to the rescue.</p>
<h2 id="what-are-spf-and-dkim">What are SPF and DKIM?</h2>
<p>SPF is used to limit which servers are allowed to send emails from your domain. It protects your domain against domain spoofing.
Even if you don't use E-mail on your domain, I recommend using SPF to specify that you won't be sending any emails from this particular domain,
so no one can spoof your domain and pretend to be you while sending emails.</p>
<p>DKIM can be used to sign the emails with a key pair (where the public key is added to your domain's TXT records) so your E-mails' contents cannot be tampered with.
OpenDKIM is an open source implementation of DKIM, we will be setting up OpenDKIM in this tutorial
(because I have a natural urge to use anything which has "open" in its name)</p>
<h3 id="setting-up-spf-for-outgoing-emails-on-your-domain">Setting up SPF for outgoing emails on your domain</h3>
<p>You need to add a TXT record to your domain containing the SPF syntax. the SPF record should always start with the SPF version number you are using.
For me it is <code>v=spf1</code>. Then, you can add all the SPF "mechanisms" that need to be evaluated in order to identify the E-mail.</p>
<p>Most of the time you just need one or two mechanisms, which are <code>mx</code> or <code>mx:your-domain.tld</code> and <code>ip4:your_servers_ipv4</code> and <code>ip6:your_servers_ipv6</code>
(you don't need all of them, it's kinda overkill)</p>
<ul>
<li><code>mx</code> means the email is legit if it comes from a server which is in the MX Records of this domain</li>
<li><code>mx:your-domain.tld</code> means the email is legit if it comes from a server which is in the MX Records of your-domain.tld</li>
<li><code>ip4:ipv4_address</code> means the email is legit if the sending server has this particular IPv4 address</li>
<li><code>ip6:ipv6_address</code> means the email is legit if the sending server has this particular IPv6 address</li>
</ul>
<p>You can prepend any of these with <code>-</code> to <em>reject</em> emails which meet this condition (by default it <em>accepts</em> the ones passing this condition); You can use <code>-all</code> to make sure
all the other unauthorised emails don't pass the SPF test.</p>
<p>So this is what a valid SPF record would look like:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>v=spf1 mx -all</span></span></code></pre>
<p>Now I did say using all of these at ones is pretty overkill, but here is what mine looks like:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>v=spf1 mx ip4:172.105.59.60 ip6:2400:8904::f03c:93ff:feac:ca67 mx:m.vidhukant.xyz -all</span></span></code></pre>
<p>I don't think using many mechanisms is a bad thing, so you can just copy mine and replace the IP4 and IP6 addresses with your server's IP4 and IP6 addresses.
Which is enough for most usecases. To apply this SPF record just add a TXT record to your root domain. It should look like this:</p>
<p><img src="/pics/spf-record-example.webp" alt="SPF Record Screenshot" /></p>
<p><strong>NOTE:</strong> If you are using multiple domains for a single mail server, you should use the exact same SPF record for all the domains.
If you don't plan to use E-mail with any of your domains, set the SPF record to <code>v=spf1 -all</code>.
ALWAYS add this to your root domain since it tells every receiving server that this domain doesn't
send E-mails and if you receive one that means it's probably malicious.</p>
<p><a rel="noopener external" target="_blank" href="https://www.spf-record.com/syntax">This website</a> has all of the other info about structuring an SPF record.</p>
<h3 id="setting-up-dkim-opendkim">Setting up DKIM (OpenDKIM)</h3>
<h4 id="install-the-necessary-packages">Install the necessary packages</h4>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">apt</span><span> install opendkim opendkim-tools </span></span></code></pre><h4 id="configure-opendkim">Configure OpenDKIM</h4>
<p>The OpenDKIM config file located at <code>/etc/opendkim.conf</code> should look like this:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>Syslog	       yes</span></span>
<span class="giallo-l"><span>SyslogSuccess	 yes</span></span>
<span class="giallo-l"><span>Canonicalization	 relaxed/simple</span></span>
<span class="giallo-l"><span>Mode			 sv</span></span>
<span class="giallo-l"><span>SubDomains		 no</span></span>
<span class="giallo-l"><span>OversignHeaders    From</span></span>
<span class="giallo-l"><span>Socket             local:/var/spool/postfix/opendkim/opendkim.sock</span></span>
<span class="giallo-l"><span>PidFile            /var/run/opendkim/opendkim.pid</span></span>
<span class="giallo-l"><span>AutoRestart        yes</span></span>
<span class="giallo-l"><span>AutoRestartRate    10/1M</span></span>
<span class="giallo-l"><span>Background         yes</span></span>
<span class="giallo-l"><span>DNSTimeout         5</span></span>
<span class="giallo-l"><span>SignatureAlgorithm rsa-sha256</span></span>
<span class="giallo-l"><span>UserID		 opendkim</span></span>
<span class="giallo-l"><span>UMask			 002</span></span>
<span class="giallo-l"><span>KeyTable           /etc/opendkim/key.table</span></span>
<span class="giallo-l"><span>SigningTable       refile:/etc/opendkim/signing.table</span></span>
<span class="giallo-l"><span>ExternalIgnoreList /etc/opendkim/trusted.hosts</span></span>
<span class="giallo-l"><span>InternalHosts      /etc/opendkim/trusted.hosts</span></span>
<span class="giallo-l"><span>TrustAnchorFile	 /usr/share/dns/root.key</span></span></code></pre>
<p>This is what works for me on Debian 11. The data files for OpenDKIM will be stored in <code>/etc/opendkim/</code>. If you want to store them anywhere else,
edit the <code>KeyTable</code>, <code>SigningTable</code>, <code>ExternalIgnoreList</code>, <code>InternalHosts</code> parameters in <code>/etc/opendkim.conf</code></p>
<h4 id="setting-up-the-signing-table">Setting up the Signing Table</h4>
<p>Make a list of all the domains you want to handle E-mails for, and add them to <code>/etc/opendkim/signing.table</code> like this:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>*@example.tld mail._domainkey.example.tld</span></span></code></pre>
<p>Replace both occurances of example.tld to your domain name, and mail to whichever subdomain sends emails. <code>mail._domainkey.example.tld</code> would act
as the DKIM selector for example.tld</p>
<p>If you have any other subdomain set up for the mail server (for example I have <code>m.vidhukant.xyz</code> while the standard would be <code>mail.vidhukant.xyz</code>),
replace "mail" with that.
You can add as many domains you want, But don't add domains which won't be sending emails.</p>
<h4 id="setting-up-the-key-table">Setting up the Key Table</h4>
<p>Now edit <code>/etc/opendkim/key.table</code> and add lines for each domain like this:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>mail._domainkey.example.tld example.tld:mail:/etc/opendkim/keys/example.private</span></span></code></pre>
<p>Add one line like this for all the domains added to the signing.table file, replace <code>mail</code> and <code>example.tld</code> respectively.
Decide a short name for the private key for this domain, <code>/etc/opendkim/keys/example.private</code> in this example holds the private key for <code>example.tld</code><br />
You should decide different names for each domain you're adding and remember that name, you will need that later.</p>
<h4 id="setting-up-the-trusted-hosts">Setting up the Trusted Hosts</h4>
<p>Edit the <code>/etc/opendkim/trusted.hosts</code> file and add these contents:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>127.0.0.1</span></span>
<span class="giallo-l"><span>::1</span></span>
<span class="giallo-l"><span>localhost</span></span>
<span class="giallo-l"><span>hostname</span></span>
<span class="giallo-l"><span>hostname.example.tld</span></span>
<span class="giallo-l"><span>*.example.tld</span></span></code></pre>
<p>Replace hostname with your server's hostname (defined in <code>/etc/hostname</code>), and example.tld with your domain. If you have more than one domain,
you can append those to the file prepended with a <code>*.</code>, just like in <code>*.example.tld</code>.
No need to add another entry for <code>hostname.example.tld</code>, just append <code>*.yourdomain.tld</code> to the file as many times (for as many domains) you want.</p>
<h4 id="set-file-permissions">Set file permissions</h4>
<p>Make sure opendkim user has access to the required files/directories:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">chmod</span><span> u=rw,go=r /etc/opendkim.conf</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">chown</span><span> -R opendkim:opendkim /etc/opendkim</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">chmod</span><span> -R go-rwx /etc/opendkim/keys</span></span></code></pre><h4 id="generating-the-keys">Generating the keys</h4>
<p>Run this command, replacing example.tld with your domain name, and mail with the subdomain for email:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">opendkim-genkey</span><span> -b 2048 -h rsa-sha256 -r -s mail -d example.tld -v</span></span>
<span class="giallo-l"></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">mv</span><span> /etc/opendkim/mail.private /etc/opendkim/keys/example.private</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">mv</span><span> /etc/opendkim/mail.txt /etc/opendkim/keys/example.txt</span></span></code></pre>
<p>Replace "example" in the <code>example.private</code> and <code>example.txt</code> files with the short name you entered for the domain in the <code>key.table</code> file.<br />
Repeat this step for all the domains if you have multiple of them!</p>
<p><strong>NOTE:</strong> Never share the contents of the generated ".private" files!</p>
<h4 id="start-opendkim">Start OpenDKIM</h4>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">systemctl</span><span> restart opendkim</span></span></code></pre><h4 id="add-the-txt-records">Add the TXT Records</h4>
<p>Read the contents of the TXT file generated by <code>opendkim-genkey</code>:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">cat</span><span> /etc/opendkim/keys/example.txt</span></span></code></pre>
<p>The output would be something like this:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>mail._domainkey	IN	TXT	( &quot;v=DKIM1; h=sha256; k=rsa; &quot;</span></span>
<span class="giallo-l"><span>	  &quot;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxzNTZydyFiNljq/Md1cXNEqemKDk9CKhZGHSzEH6x0zxtdcv5ROzaytJ4OsatDOdk+Pygkj6Qq9PiLCc3HlWPTcvMEs+M8YvRergTATFNoAmXLXvpbi+DD0oXAsbz2dM/klObY9OSNlJqFpzmGjgRbtSnvCbot8Smg5LreCjmkuHo/sxyynRHGwRHUM6jokm2YGIGATZBIVqtS&quot;</span></span>
<span class="giallo-l"><span>	  &quot;jM418Gtxx9MZUbwcQTlchk1hSQgbXlAAl5tagle3bq/2GwrwrdaghRH750qLjnBQhzdFnH+GjHTmRl2drQ/2zG1L0GlufipZ1UkWulidox2RtIykv2VxDlBYb77G4PAiiJsSar+wIDAQAB&quot; )  ; ----- DKIM key mail for example.tld</span></span></code></pre>
<p>Carefully delete everything outside the parenthesis (including the parenthesis) and join all three lines into one.
Now, remove all the quotes and also the whitespaces between line 2 and 3, so both lines get merged into one, without any space between them.</p>
<p><strong>Update (04 May 2024):</strong> Use this command to easily turn this output into a valid txt record:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">cut</span><span> -d</span><span style="color: #A6E3A1;">&#39;&quot;&#39;</span><span> -f2 example.txt </span><span style="color: #94E2D5;">|</span><span style="color: #89B4FA;font-style: italic;"> tr</span><span> -d</span><span style="color: #A6E3A1;"> &#39;\n&#39;</span></span></code></pre>
<p>The result should look like this:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxzNTZydyFiNljq/Md1cXNEqemKDk9CKhZGHSzEH6x0zxtdcv5ROzaytJ4OsatDOdk+Pygkj6Qq9PiLCc3HlWPTcvMEs+M8YvRergTATFNoAmXLXvpbi+DD0oXAsbz2dM/klObY9OSNlJqFpzmGjgRbtSnvCbot8Smg5LreCjmkuHo/sxyynRHGwRHUM6jokm2YGIGATZBIVqtSjM418Gtxx9MZUbwcQTlchk1hSQgbXlAAl5tagle3bq/2GwrwrdaghRH750qLjnBQhzdFnH+GjHTmRl2drQ/2zG1L0GlufipZ1UkWulidox2RtIykv2VxDlBYb77G4PAiiJsSar+wIDAQAB</span></span></code></pre>
<p>This is your public key for DKIM.</p>
<p>Now go to your DNS editor, click on Add TXT Record, the hostname should be <code>mail._domainkey</code> or whatever the first few characters the original example.txt showed.
In the value field copy and paste the public key. Make sure there are no errors.</p>
<h4 id="configuring-postfix-to-use-opendkim">Configuring postfix to use OpenDKIM</h4>
<p>Set up postfix to process outgoing E-mails with OpenDKIM</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">postconf</span><span> -e</span><span style="color: #A6E3A1;"> &quot;milter_default_action = accept&quot;</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">postconf</span><span> -e</span><span style="color: #A6E3A1;"> &quot;milter_protocol = 6&quot;</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">postconf</span><span> -e</span><span style="color: #A6E3A1;"> &quot;smtpd_milters = local:opendkim/opendkim.sock&quot;</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">postconf</span><span> -e</span><span style="color: #A6E3A1;"> &quot;non_smtpd_milters = local:opendkim/opendkim.sock&quot;</span></span></code></pre>
<p>Add this to your <code>/etc/default/opendkim</code> file to set the socket for postfix</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>SOCKET=&quot;local:/var/spool/postfix/opendkim/opendkim.sock&quot;</span></span></code></pre>
<p>And then create the socket directory</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="fish"><span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">mkdir</span><span> /var/spool/postfix/opendkim</span></span>
<span class="giallo-l"><span style="color: #89B4FA;font-style: italic;">chown</span><span> opendkim:postfix /var/spool/postfix/opendkim</span></span></code></pre><h4 id="testing-if-dkim-is-working">Testing if DKIM is working</h4>
<p>Wait for the DNS records to propagate (shouldn't take long!) and send an email with your SMTP server, on the receiving end, your email client should have an option
to "view source" or "show email headers", open that, you should see a <code>DKIM-Signature:</code> field there.</p>
<p>You can now send a test email to a GMail account, and on the GMail web app you can view the email's source.
It will show detailed information about your DKIM and SPF setup. GMail is by far the best test to verify
that your authentication mechanisms (SPF, DKIM, etc) are working properly.</p>
<h2 id="use-dmarc-to-tell-receiving-servers-how-to-handle-your-email">Use DMARC to tell receiving servers how to handle your email</h2>
<p>Domain-based Message Authentication, Reporting and Conformance, short for DMARC can be used to specify a set of instructions for the receiving email servers on how
to handle the email. You can use it to specify which authentication mechanism (SPF, DKIM or both) is in place, what to do with emails which fail authentication
(you can reject, send, or quarantine them), how to check the <code>From: </code> field of the email. It can also be used by receiving servers to report back to your own server,
in case any of the checks fail.</p>
<p>All DMARC records start with <code>v=DMARC1</code>, and the <code>p=</code> field would specify what to do with emails that fail the SPF or the DKIM test. <code>p=</code> can have these three values:</p>
<ul>
<li>none: do nothing</li>
<li>quarantine: quarantine the email (e.g send it to the spam folder)</li>
<li>reject: reject the incoming email</li>
</ul>
<p>It is best to use <code>p=none</code> while testing your SPF and DKIM records, after that you can choose between <code>p=reject</code> or <code>p=quarantine</code>.</p>
<p>You can also optionally use <code>rua=mailto:your_email</code> to get DMARC fail reports to your email. Just replace <code>your_email</code> with your E-mail.
You can specify multiple E-mail addresses seperated with a comma.</p>
<p>Here's what an example DMARC record should look like:</p>
<pre class="giallo" style="color: #CDD6F4; background-color: #1E1E2E;"><code data-lang="plain"><span class="giallo-l"><span>v=DMARC1; p=quarantine; rua=mailto:user@example.com</span></span></code></pre>
<p>Add this to your domain's TXT records and set the hostname to <code>_dmarc</code> and you should be good to go!</p>
<p>Use <a rel="noopener external" target="_blank" href="https://appmaildev.to/en/dkim">this</a> DKIM test to test your SPF, DKIM and DMARC configuration.</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Authenticating Your Mailserver With SPF and DKIM">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>My Failed Attempt at Installing Gentoo</title>
        <pubDate>Tue, 02 Aug 2022 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/my-failed-attempt-at-installing-gentoo/</link>
        <guid>/blog/my-failed-attempt-at-installing-gentoo/</guid>
        <description xml:base="/blog/my-failed-attempt-at-installing-gentoo/">
          
            <![CDATA[<p>After using Arch Linux for slightly more than 2 years I decided to move to Gentoo.
I managed to install it (well it wasn't hard) but still way too many things went wrong;
and I'm gonna share my suffering with you guys by talking about it.</p>
<h2 id="why-i-moved-back-to-arch-linux">Why I moved back to Arch Linux</h2>
<p>Gentoo is actually really interesting, waiting 2 hours for portage to install your terminal really is a feel.
Though turns out that compiling the terminal didn't take that long, THAT SHIT ALSO COMPILED THE FUCKING PROGRAMMING LANGUAGE.
Yeah, I compiled rust THEN compiled alacritty because that's what pro hackers do.
(I really thought it'd automatically pull the binary, apparently that's rust-bin not rust)</p>
<p>I like this, you compile things with the support for only what you need, and disable what you don't. It's not like Arch,
you literally don't have support for the stuff you don't need, which is even faster!
But I guess I still am not fit for that kind of pro gamer level stuff, so I'll stick to arch.</p>
<h2 id="not-even-an-x-server-worked">Not even an X server worked</h2>
<p>Maybe it's just because I'm a dumbass, but I can't even get an X server running. Also wifi refused to work.
I ran 2 floors to get an ethernet cable at 3 am and that also refused to work! I re-compiled my kernel with networking support and it didn't work!
I guess I should have read the logs but no, like any smart arch user would do, I re-installed it! How fun!</p>
<p>Over the course of 4 days I installed Gentoo 4 times. 2 of those 4 attempts even occoured in the same day.
I guess getting everything to work would've been easier, but I realised that too late.
If you're planning to install gentoo, remember that it's easier to fix gentoo, a re-install would take too long.</p>
<h2 id="installation-wasn-t-hard-at-all">Installation wasn't hard at all!</h2>
<p>Okay, to me, the installation part really wasn't too hard. I mean on Arch you just need to copy-paste a couple of commands,
it's really the same with gentoo but.. easier somehow. I didn't have to run many shell commands, I just had a bunch of config files to play around
to fine-tune my system. It was time consuming, but not harder than Arch. I'd say some things were <em>easier</em> because instead of setting some variables myself
I just used the <code>eselect</code> command to set locales and stuff, I guess that's kinda interactive and "less boring"</p>
<p>Overall I'd say, no installing gentoo is not hard at all. Especially if you've installed Arch before. BUT using it was pretty hard..
I had to deal with a lot of masked packages, and had to wait more than an hours just so I can install Xorg; I didn't even bother getting XMonad to work,
just installed dwm because that compiles within seconds.</p>
<p>Also, while compiling a kernel isn't hard at all (I mean you just get an ncurses program with shit loads of options), but figuring out what I need to get
various things to work was pretty tricky, not to mention that I wasn't able to even do that successfully!</p>
<h2 id="i-will-go-back-to-gentoo-but-not-now">I will go back to gentoo but not now..</h2>
<p>Okay, I quit because I had wasted a lot of my time, and was tired and fed up of it. I <strong>will</strong> go back to installing gentoo on my main machine.
To anyone reading this interested in gentoo, I am NOT saying that gentoo is a bad distro. I'm just saying that it's very frustrating to install,
takes an incredibly long time, and by the time you install it you don't get left with any mental energy to fix any bugs.</p>
<p>I hope next time I try (maybe in a few months) I will be able to set up XMonad and polybar and all that cool stuff just like I have on Arch
or maybe have an even better setup, and maybe never even look back to Arch! But not now, I'm tired and will work on other stuff for now.</p>
<h2 id="a-little-gentoo-wallpaper-i-made">A little gentoo wallpaper I made</h2>
<p>I made this funny wallpaper to use with my gentoo installation (while my kernel was compiling in the background!)</p>
<p><a href="/pics/Gentoo_Wallpaper_OreImo.png"><img src="/pics/Gentoo_Wallpaper_OreImo.png" alt="Funny Gentoo Wallpaper" /></a></p>
<p>But sadly I wasn't able to use it. <em>Some day...</em></p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: My Failed Attempt at Installing Gentoo">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Why I Try to Customize Everything About My System</title>
        <pubDate>Tue, 19 Jul 2022 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/why-i-customize-everything-about-my-system/</link>
        <guid>/blog/why-i-customize-everything-about-my-system/</guid>
        <description xml:base="/blog/why-i-customize-everything-about-my-system/">
          
            <![CDATA[<p>I love customizing things. I always go out of my way to make sure my phone, or my laptop, is doing what I want, the way I want.
Recommended usage? Pre-defined shortcuts? Don't tell me how to use my computer. I tell my computer how I want to use it. And make it adapt to that!</p>
<p>I like to make my desktop/phone look good (doesn't matter if other people find it pretty though), and I love it when everything is easily accessible and all that.
Moreover, I like when all my devices look similar, and work similarly. It starts from my laptop and my phone having an anime wallpaper to radiate max weeb energy,
but also includes everything being of my favourite color, etc.</p>
<h2 id="it-s-actually-a-learning-experience">It's actually a learning experience</h2>
<p>Going out of the way to customize software is actually a learning experience, if you're very serious about it, that is.
I learned to flash phones in like 2018 because I wanted to install a newer version of android on my phone, and now I only run custom ROMs on my phone.
And that's for a very good reason.</p>
<p>All phones are built differently, and nowadays phone manufacturers add new features and remove old features for various reasons that I won't cover,
but basically 2 phones both running the same OS still have many differences. I don't like it because when I use a device (i.e a phone), I don't want to waste my
time learning some new system or missing some (software) feature because the manufacturer decided to remove it. This is why always use LineageOS
(or another AOSP-based operating system, but Lineage is my preferred choice) on my phones. Really because I'm used to the UI, I love the Trebuchet launcher,
and the default ringtone is awesome (literally the only default ringtone that isn't cringe)</p>
<p>And this has taught me how to work with fastboot, twrp, etc to flash phones and install different operating systems on it. It's not very hard
(but kinda dangerous for your device, I will say) to do but spending hours putting different OSs on my phone has helped me understand how
phone operating systems really work.</p>
<p>Similarly, on the desktop side, my quest to get the best desktop experience, with an interface which works hand-in-hand with my thought process,
and everything being plastered with my favourite color, purple, I learned a lot about the command line, linux, etc.</p>
<p>So if you want to learn more about computers, I highly recommend trying to customize them. I.e tweak your desktop to your liking, try out different programs,
or (if you want to learn programming), try to build alternatives to the programs you already use, with a different UI or colorscheme that you like.</p>
<h2 id="it-boosts-my-productivity">It boosts my productivity</h2>
<p>I use tiling window managers and CLI apps, because these are very configurable/extensible. This not only helps me understand how my operating system really works,
but also lets me tweak everything to my liking and "match how I really think". What that means is if I like to work with the keyboard I can configure my system to
be as keyboard-driven as possible so not only it tires my mind less, it really boosts my productivity. And this isn't something you can achieve with proprietary
software since it's not very configurable. This is a very good reason to use only free and open source software since it boosts your productivity.</p>
<p>I'm not saying that oh you should use XMonad and spend hours configuring it. I'm saying you should try out different things, window managers, apps, whatever.
You should find out what suits your workflow and use that. Or, you can even fork/create one of your programs that fulfil one specific requirement you have.
Trying out different things is always a good thing. And it really teaches you about the different ways a task can be performed on a computer.</p>
<p>Those "things" can be anything, right, maybe just switch to firefox if you use chrome (seriously, don't use chrome/opera/edge), or if you're on firefox install icecat.
Play around with different software, tweak it to your liking. See what differences the alternatives have.
Maybe install a different operating system, try dual booting, just try out different stuff! And learn from it!</p>
<h2 id="conclusion">Conclusion</h2>
<p>I just want my phone/computer to do what I want. And I want the UI to match my tastes. And I think this kinda adds "personality" to my devices!
I think anyone who wants to learn computers should play around with the different settings, etc because this in my opinion is one of the best ways to
understand how your system actually works.</p>
<p>Also, if you're a programmer (doesn't matter if you're learning) it could inspire you to work on different projects. Which is always helpful.
Personally, I learned shell scripting just because I wanted to share my linux desktop audio and mic input on discord at the same time, and I
created a shell script for that! It solved my problem, and added shell scripting to my skill set!</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Why I Try to Customize Everything About My System">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>Why Social Media Should Be Avoided</title>
        <pubDate>Fri, 15 Jul 2022 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/why-social-media-should-be-avoided/</link>
        <guid>/blog/why-social-media-should-be-avoided/</guid>
        <description xml:base="/blog/why-social-media-should-be-avoided/">
          
            <![CDATA[<p>Welcome to Vidhu Kant's Based and Redpilled Blog. Enjoy your time here.<br />
If you have any opinions to share I'd be more than happy to hear.</p>
<p>This one's gonna be the legendary, shitting on social media blog post.</p>
<h1 id="social-media-is-evil-and-is-using-you">Social media is evil and is using you.</h1>
<p>Okay, I will try my best to not be extreme and try to explain this topic in layman's terms.
Basically, there are way too many bad things with social media. And I don't see those flaws going away anytime soon.
There is no "one flaw" there are many and you need to look at these said flaws in different perspectives to understand what I mean.</p>
<p>I won't be covering much about the "privacy" part (I'd love to but that's what everyone does),
I'll be explaining how social media usage is bad for your mental health and is very bad for the society.
There are many more arguments one can make but I'll leave that up to those people who are smarter than me (especially in the fields I don't cover here)</p>
<p>For clarification I will say, I'm not including messaging apps with my reasoning though many things (especially in the privacy section) do apply there.
I personally think they <em>are</em> somewhat important. I don't like using them but you can't just leave some of these services.
(You can take that as an excuse, but I stand with my point)</p>
<h2 id="glossary">Glossary</h2>
<ul>
<li>SNS: Social Networking Service</li>
<li>PII: Publically Identifiable Information</li>
</ul>
<h2 id="social-media-can-manipulate-your-views">Social media can manipulate your views.</h2>
<p>Social media is very good at manipulating your views. You won't realise but your thinking gets greatly affected by <a href="/blog/why-social-media-should-be-avoided/#glossary">SNS</a>.</p>
<h3 id="their-recommendation-system-plays-with-your-mentality">Their recommendation system plays with your mentality</h3>
<p>These social networking sites are really good at analysing your likes and dislikes, and manipulate the recommendations shown to you based on that.
It's a very convenient and honestly kinda cool system. But it's also very dangerous.</p>
<p>This kind of system that adapts to your recommendations would make you fall into a rabbit hole and would make you believe in this one thing and one thing only.
You'd watch some kind of conspiracy videos and YouTube would recommend more of them. If you're not being careful and are in a vulnerable state of mind
you'd really start believing in those kinds of things. This is actually a really dangerous thing. On the surface it might just seem like a cool system
which would help you find something like, music that really matches your tastes. But this kind of system can very easily destroy your mindset.
I'm not saying this has the potential to do this kind of thing. If you pay attention you might spot victims of this <em>pretty easily</em>.</p>
<h3 id="our-mind-seeks-validation-social-media-provides-that-in-excess">Our mind seeks validation, social media provides that in excess</h3>
<p>Seeking validation is a human trait, and I'm not saying that it's a bad thing. When you do some task you'd try to seek others to
give you a compliment, or to praise you.
Which is a basic human instinct, but social media gives us an incredible amount of validation, which is literally like a trap.
They want to give you the dopamine rush you need. It doesn't seem too bad at the start but soon you'll realise that you are addicted to it.
All these "challenges" and "social experiments" and other trends that require your participation, they try to keep you in the community and make sure that you
don't leave.</p>
<p>This system is designed in this way because they want user retention. You are literally generating the big tech companies money by using their platform.
And in return you really are not getting anything useful. They try to understand what you like, and collect your data, to fine-tune the ads shown to you.
To all these big social media companies you're just a slave that can't leave their product, and generates you money and fame.</p>
<h3 id="social-media-forces-you-to-follow-what-s-mainstream">Social media forces you to follow what's mainstream</h3>
<p>This goes with many things. Some brand that manufactures something, some k-pop group, whatever.
Social media has made it so that you just have to follow mainstream things. It keeps <del>shilling</del> promoting all these products,
and these "influencers" promoting random garbage makes you think that you really need to spend money on this thing that you really don't need.</p>
<p>I'm not saying either of these "influencers" or the advertisers are wrong, this is just how social media works, and they know it.
Everything seems to be monetised at this point. Most of the popular social media accounts are just dedicated to shilling all this mainstream media,
mainstream products. And, really, pressuring you to spend your time/money on them too. Which sadly seems to be normal at this point, but:</p>
<h4 id="social-media-has-taken-away-most-people-s-personality-at-this-point">Social media has taken away most people's personality at this point</h4>
<p>This is a very, very personal opinion of mine. Most of the social media users I know, (I mean everyone uses SNS at this point, but I'm talking about the hardcore users)
are living this constant fight to consoom as much memes, and as much information they can. It's like if you haven't followed this particular account or don't like this
meme you'd be exiled or some shit.</p>
<p>Also, everyone just wants to copy others. They try to copy some famous YouTuber to become the center of attention, things like that. (copying should not be confused
with taking inspiration and immitating others to learn from them. Which kind of is a thing in the YouTube community)</p>
<p>It almost seems like people don't even have a personality anymore. They are supposed to believe this one opinion. If you don't agree or do something else twitter
is literally going to "cancel" you. This is dumb. And this is a reality.</p>
<h3 id="social-media-takes-away-your-freedom">Social media takes away your freedom</h3>
<p>Most social networking services are owned by private companies, they don't care about you. They care about money. And you are a just a tool to make them money.
To even look at a post they want you to sign up. You need to give your PII (Publically Identifiable Information) in order to register with their services.</p>
<p>You can't just opt out of them not collecting your data. You need to give them some of your most sensitive private info to even use their service.
They put unnecessary regulations on you and demand you to share your personal data. You don't have the freedom to choose what is visible to others and what is
kept private. And then they put up vague rules in their "content policy" to keep you confused. Suppose you post something and it gets removed, they won't
tell you why it got removed. They just give a vague reply like "this post goes against our terms of service/community standards". They don't give you a reason.
They want to keep you confused and afraid that you won't make this mistake again lest they terminate your account.</p>
<p>There are a LOT of platforms that take away your freedom of speech in various ways. They won't allow you to say anything that goes against the moderators' personal
beliefs. This in a way engineers the society to also agree to whatever they want them to believe.</p>
<h3 id="social-media-gives-you-false-hope">Social media gives you false hope</h3>
<p>I've seen this case irl with a few people and it infuriates me.
You might think that these bullshit services teach you life hacks and different things, because "internet is a great way to share information"
which it is, but social media definitely not one of those places.</p>
<p>People absolutely believe that scrolling through instagram would give them access to news, and facts, and various scientific knowledge which also trains their mind
to believe that there's nothing wrong with using instagram (or whatever). It doesn't cross their mind that they might be making use of this particular service/app
a bit too much. And social media is designed that way. Again, it's supposed to keep you on it. It'd brainwash you into believeing that what you are doing is right
and you should never leave this particular service. In my opinion these "big tech" are just abusing their users. Manipulating them into using their service more
and more and get them addicted to it.</p>
<p>I cannot stress this enough. To big tech you are a tool to generate money (and fish personal data out of). You should avoid them whenever you can. You should always
be in moderation of what services you use and what personal data you share. You are much better than this. Don't fall into their trap.<br />
It's your right to be in control of your personal data and they take it away.</p>
<h2 id="social-media-most-of-the-services-on-the-internet-strip-away-your-privacy"><del>Social media</del> most of the services on the internet strip away your privacy.</h2>
<p>Apart from the psychological aspect, they are collecting your data. Which can be considered a massive breach to your privacy.</p>
<p>I like to call the modern internet a "privacy shithole". Every other big website is just after your personal data. And this "I have nothing to hide"
and "Privacy is for criminals" mindset is very toxic towards yourself and is making the situation worse.</p>
<h3 id="before-allowing-a-site-app-access-to-your-device-decide-if-it-really-needs-it">Before allowing a site/app access to your device, decide if it really needs it</h3>
<p>Whenever you install an app on your phone, or visit a website, they ask you for various permissions. Look at them and think about it - does said app/website
really needs that access? And do you want to allow it?</p>
<p>Take facebook for an example, when you install the app, it (at least on android) asks for a bunch of "App Permissions". Those include things like</p>
<ul>
<li>Microphone access</li>
<li>Location access</li>
<li>Camera access</li>
<li>Filesystem access</li>
<li>Gyroscope access</li>
<li>many more (I don't use fb so I don't fully know)</li>
</ul>
<p>This seems pretty normal, most people are familiar with the "allow ____ access to ____?" message. Many even click allow without even reading it.
Which is by far one of the worst things you can do with your phone.</p>
<p>When you see such message, think. <em>Do you really want facebook to have access to your microphone? Why would it use the mic?</em>
Surely if you are using the calling or video recording feature you might need mic access. <em>But are you even using it?</em><br />
If not, do NOT give mic access. It's your right to decline mic access to them. They are spying on you and you should take an initiative to go against them.</p>
<p>I'm saying this a lot, but this is a really effective way how facebook fishes out your data. It's listening to you.
While you are using their app they would record your audio and analyse that, to generate better ad recommendations for you.
It's totally a system designed to act against you. It's a very dangerous thing that they are recording your personal data.
Things you might not want anyone to know, they are recording it all. You should not use such apps. It's a dangerous concept.</p>
<p>Your data needs to be private. Even if you think you "have nothing to hide", hear me out:<br />
<strong>They are making money with YOUR personal information.</strong>
And you aren't even getting anything in return! What did they give to you? Mental stress? Jealousy? Desire to spend money/time/mental energy on something useless?<br />
Trust me, social media is not worth it for its downsides.</p>
<h1 id="but-how-are-we-supposed-to-exchange-information-on-the-internet">But how are we supposed to exchange information on the internet?</h1>
<p>Normally I'd explain how easy it is to set up a website (without even knowing any programming!) but this is supposed to be an article for <em>everyone</em>,
wether you understand tech or not. (<a href="/contact/">tell me</a> if I managed to do that!) So while I don't 100% agree with it, I'd recommend everyone to use social media under moderation, and try to minimise the usage,
share as little personal information as possible. But really I'd just say - don't use social media! Don't base your lifestyle around it.
There are better things out there. There are many more things to explore on the internet!
The internet is full of very informative websites without the garbage monetization and useless features included with social media.
But you need to explore. Try out <a rel="noopener external" target="_blank" href="https://wiby.me">https://wiby.me</a>, it's a search engine which only allows personal, small websites without many ads, etc.
If you know other websites without unnecessary trackers, etc, you can also submit them to <a rel="noopener external" target="_blank" href="https://wiby.me">wiby</a>!</p>
<h2 id="advice-for-organisations-businesses">Advice for organisations/businesses</h2>
<p>Also, this is advice for organisations/businesses, etc. Set up your own websites. You can totally do that. It doesn't have to be one with a very modern UI.
Focus more on the content, not aesthetics (but also don't make it an eyesore!).
Make your users want to re-visit your website. Host all the useful info related to your brand on the website.
When someone asks, just give them your website. You are free to do whatever with your site, you don't have to comply with any other service's terms of use,
and it just looks MUCH more professional!</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: Why Social Media Should Be Avoided">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
      <item>
        <title>I Created a Blog!</title>
        <pubDate>Tue, 12 Jul 2022 00:00:00 +0000</pubDate>
        <author>vidhukant@vidhukant.com (Vidhu Kant Sharma)</author>
        <link>/blog/i-created-a-blog/</link>
        <guid>/blog/i-created-a-blog/</guid>
        <description xml:base="/blog/i-created-a-blog/">
          
            <![CDATA[<h2 id="yos-i-have-finally-done-it">Yos I have finally done it</h2>
<p>This is sort of like a test for my blog, generated with hugo, pog stuff.
This has been a journey. This is like the third iteration of my blog. First one was blog.vidhukant.xyz which no longer exists.
It was not a static site, it was a server side rendered web app written in go. It looked awesome but I got bored pretty quickly.
(also writing markdown is better)</p>
<p>Second time I decided to just write my blog in plain html which was a horrible, horrible idea and now on third iteration now we have this! A static site built with hugo.</p>
<h2 id="the-philosophy-behind-this-blog">The "philosophy" behind this blog</h2>
<p>Seems cool doesn't it?</p>
<p>Yea that's it. I like talking to likeminded people online, but social media is tiring <del>(and evil!)</del> so I just created my own blog!
Hopefully I write at least a few useful posts. I totally see this going into either a doujin review site or me just shilling free software.</p>
<h2 id="what-are-these-gifs-on-the-bottom">What are these GIFs on the bottom?</h2>
<p>This seems to be a trend from the 90s, you'd add different GIFs linking to other websites that you like.
I wasn't even born at that time so I obviously haven't seen this trend in all of its glory, but hey these things are fun so I'll add it.
If you also have a website (preferably a "minimal" one) (wait does this one count as minimal?) do add my "web button" to your site!</p>
<h2 id="thanks-to-landchad-net">Thanks to landchad.net</h2>
<p>I learned many things from landchad.net, like setting up a nginx frontend server, firewalls, rsync and stuff. Really neat site, I recommend checking out.
Also lol check out my <a rel="noopener external" target="_blank" href="https://youtube.com/@_VidhuKant">youtube channel</a> because why not. At this moment there aren't any videos because
I deleted my old channel and this is a brand new one. But stay tuned for some quality content!</p>
<h2 id="check-out-the-latest-projects-i-ve-been-working-on">Check out the latest projects I've been working on</h2>
<p><a href="/docs/mal2go/v4">MAL2Go</a> is a very neat API Wrapper that lets you use the MyAnimeList API using Go.
<a href="/docs/macli">macli</a> is an awesome CLI-Based BASED MyAnimeList unofficial client so you don't have to look at a web page (eww)</p>
<p>And I'm already shilling software.</p>
<p><a href="mailto:vidhukant@vidhukant.com?subject=Post Reply: I Created a Blog!">Reply to this post via email</a></p>]]>
          
        </description>
      </item>
  </channel>
</rss>

