<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>That Arctic Penguin</title>
    <subtitle>Developer, ice cream enthusiast, and penguin lover. This is the personal site of Sabareesh Vinodh.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://thatarcticpenguin.is-a.dev/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://thatarcticpenguin.is-a.dev/"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-10-04T00:00:00+00:00</updated>
    <id>https://thatarcticpenguin.is-a.dev/atom.xml</id>
    <entry xml:lang="en">
        <title>How this site works</title>
        <published>2026-10-04T00:00:00+00:00</published>
        <updated>2026-10-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://thatarcticpenguin.is-a.dev/blog/howthissiteworks/"/>
        <id>https://thatarcticpenguin.is-a.dev/blog/howthissiteworks/</id>
        
        <content type="html" xml:base="https://thatarcticpenguin.is-a.dev/blog/howthissiteworks/">&lt;img class=&quot;theme-aware&quot; src=&quot;&#x2F;site_architecture.png&quot; alt=&quot;Site architecture&quot; style=&quot;width: 100%; max-width: 900px;&quot;&gt;
&lt;h2 id=&quot;intro&quot;&gt;Intro&lt;&#x2F;h2&gt;
&lt;p&gt;I&#x27;ve been building this site for about a year and  in that time, I&#x27;ve redesigned it twice, changed a bunch of things. The stack itself is pretty simple, and honestly, pretty common for static weblogs. Zola, Tera, JavaScript and SCSS. It&#x27;s a static site, and I don&#x27;t really see anything to change about that anytime soon. All I&#x27;m doing is writing things and showing them to people.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-blogs-work&quot;&gt;How blogs work&lt;&#x2F;h2&gt;
&lt;p&gt;In the early versions of the site, I used to write my blogs in plain HTML (yes). Sometime later I switched to Markdown, and for a while I had a small Python script that converted my Markdown into the HTML structure I used on the site. It mostly handled things like headings, paragraphs, the title and a few other small bits.&lt;&#x2F;p&gt;
&lt;p&gt;For this version of the site, I switched to a rusty static-site generator, Zola. Zola basically takes my Markdown files, templates and assets, processes all of them during build time, and gives me the actual site at the end. So instead of manually converting every post, I can just write a Markdown file and let the templates deal with the rest. I can keep the different parts of the site separate without redundancy.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;transitions&quot;&gt;Transitions&lt;&#x2F;h2&gt;
&lt;p&gt;If you haven&#x27;t already, try the theme transition on this page.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s a really small and slightly cheesy addition to the site, and probably one of the only creative parts around here ;-;.&lt;&#x2F;p&gt;
&lt;p&gt;The transition uses the View Transition API, with an animated GIF being used as a CSS mask. When the theme button is clicked, JavaScript prepares the mask GIF and assigns it to &lt;code&gt;--current-mask-gif&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The browser then takes a snapshot of the old page, runs &lt;code&gt;setTheme()&lt;&#x2F;code&gt;, and gets the new page state. The new page is placed behind the GIF mask, and the mask itself is animated using CSS. It expands, plays through the animation, and then grows enough to reveal the entire page.&lt;&#x2F;p&gt;
&lt;p&gt;Top 10 unnecessary ways of changing a theme.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-the-garden-works&quot;&gt;How the Garden works&lt;&#x2F;h2&gt;
&lt;p&gt;The Garden is basically a collection of posters and ratings for movies, TV shows and anime that I like. The idea was a product of inspiration from multiple similar media pages on other people&#x27;s sites.&lt;&#x2F;p&gt;
&lt;p&gt;Originally, the Garden was literally just a bunch of posters sitting next to each other with rating. Sometime later, I added the threshold effect for the posters, which was something I&#x27;d seen on another site and really liked.&lt;&#x2F;p&gt;
&lt;p&gt;The first version of it ran client-side. JavaScript would take the poster, draw it onto a transparent canvas, go through the pixels, check their brightness against a threshold, and turn the darker pixels into the blue colour used by the site. However, running it client side was a bit slow.&lt;&#x2F;p&gt;
&lt;p&gt;So now the thresholding happens during build time using Pillow. The processed PNGs are generated beforehand and the browser just loads those. The original JavaScript canvas implementation is still kept as a fallback.&lt;&#x2F;p&gt;
&lt;p&gt;The posters are also lazy loaded, so we&#x27;re not making the browser download and process everything at once.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;guestbook&quot;&gt;Guestbook&lt;&#x2F;h2&gt;
&lt;p&gt;The Guestbook is probably the least complicated part of the site since I didn&#x27;t have to build it from scratch, it&#x27;s just a third-party integration.&lt;&#x2F;p&gt;
&lt;p&gt;HTMLCommentBox handles the actual comments, posting, likes and all the persistent stuff. Once HCB loads, a small bit of JavaScript cleans up some of its default UI. It hides stuff like the image upload controls, RSS, among other stuff that don&#x27;t really fit the rest of the site.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h2&gt;
&lt;p&gt;And that&#x27;s a wrap.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s a pretty small static-site stack, and I&#x27;m fairly sure it&#x27;s all the site is ever going to need.
Most of the things here aren&#x27;t especially complicated on their own. They&#x27;re just things I thought would be a cool addition.&lt;&#x2F;p&gt;
&lt;p&gt;Now it mostly just comes down to populating the site with more stuff.&lt;&#x2F;p&gt;
&lt;p&gt;See you then.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>About Me</title>
        <published>2026-01-22T00:00:00+00:00</published>
        <updated>2026-01-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://thatarcticpenguin.is-a.dev/blog/about/"/>
        <id>https://thatarcticpenguin.is-a.dev/blog/about/</id>
        
        <content type="html" xml:base="https://thatarcticpenguin.is-a.dev/blog/about/">&lt;p&gt;Hey, I’m Penguin.&lt;&#x2F;p&gt;
&lt;p&gt;I’m a first-year university student who likes building things, things that not only benefit me, but maybe another two people at the very least. I must say I am not someone who is overkill in computer science and has such passion towards coding that I can make complicated systems in weeks just by curiosity.&lt;&#x2F;p&gt;
&lt;p&gt;If I can build something that makes my own life easier, or helps another two people along the way, I&#x27;d call that a success.&lt;&#x2F;p&gt;
&lt;p&gt;I don&#x27;t think of myself as a programmer yet. I think of myself as someone who wants to become one, maybe the thought is wrong, but that&#x27;s for others to say.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-i-build-things&quot;&gt;Why I build things?&lt;&#x2F;h2&gt;
&lt;p&gt;I am not the guy with a lifelong pact towards programming, or because I fell deep in love with the web of computer science when i was 10. My only aim is to try and make an idea, for example, I once spent a week making a google sheets for me and a bunch of friends to gamify habit tracking, I just had an idea, and I felt like doing it. It was far from something people sell for $29.99 on notion, but it did the job, and it taught me a lot more about how useful spreadsheets can get. IJust that one project made me real good at making cool spreadsheets and creating tables or managing spreadsheet data, although i will still need to google formulas and macros, I atleast know the logic behind it.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s not that I want to make hundreds of projects or make a project that changes the world or looks good in a resume, I just wanna make something cool and useful. Building something just &#x27;cause a course told me to is quite boring, I try to create a bigger idea that really puts the concept to a practical use, and that&#x27;s a great way to learn to build things. For example, learning lists in python can make you a system that stores student details and grades marks relatively, and when you learn pandas and matplotlib, you can plot them.&lt;&#x2F;p&gt;
&lt;p&gt;Half the time, I don&#x27;t know what to even build, and that might be because I try to find a project for a concept, and not the other way around (project that needs me to learn a concept).&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s not that you have to master all concepts needed for a project to build it, if you try it that way,   you probably wont be able to start the project.&lt;&#x2F;p&gt;
&lt;p&gt;Your projects don&#x27;t have to be structured or anything, just random things that you find interesting, and that&#x27;s better because every project will teach you something the last project won&#x27;t.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;my-relation-with-cs&quot;&gt;My relation with CS&lt;&#x2F;h2&gt;
&lt;p&gt;Every CS guy I have seen remembers when he started coding, well I don&#x27;t... It was probably when I figured out how to install an APK, that&#x27;s when I learnt to get around a phone, or when I tried to install a mod in minecraft that i got to know how games work and where game data is stored.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s not that child me wanted to code a lot, child me just wanted to get the thing i wanted working, be it installing a mod, or cracking an app from the play store (😅)&lt;&#x2F;p&gt;
&lt;p&gt;I was fascinated by the idea that almost every piece of software had a reason behind it. Like if something worked, someone had taken their sweet darn time to make it work. If something broke, there was probably a reason for that too.&lt;&#x2F;p&gt;
&lt;p&gt;Sometimes, I feel like I barely know anything related to the field I am in, but looking back at those years, I didn&#x27;t learn as much as I would like, but certainly more than what I credit myself for.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;internet-the-double-edged-sword&quot;&gt;Internet: the double-edged sword&lt;&#x2F;h2&gt;
&lt;p&gt;I well remember the first time i touched a computer. When I was 6 on a boxy computer was the time i first used Windows 7, playing purble place and solitaire (i didn&#x27;t know how to play both).&lt;&#x2F;p&gt;
&lt;p&gt;The internet has a wierd way of inspiring you and making you feel inadequate at the same time.
One video you&#x27;re learning a topic you can get the hang of, and the next, you see someone building an &lt;a href=&quot;https:&#x2F;&#x2F;thatmagicalcat.pages.dev&#x2F;projects&#x2F;&quot;&gt;operating system from scratch&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-does-thatarcticpenguin-even-mean&quot;&gt;What does &quot;thatarcticpenguin&quot; even mean?&lt;&#x2F;h2&gt;
&lt;p&gt;I don&#x27;t know, but I can tell it&#x27;s origin. I once kept a pfp of a penguin as my display pic on social media.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ih1.redbubble.net&#x2F;image.2045295459.1506&#x2F;st,small,507x507-pad,600x600,f8f8f8.jpg&quot; alt=&quot;Original PFP&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;And the time i changed to a different one, a lot of people really liked it, so i just made up a niche username of a penguin&lt;&#x2F;p&gt;
&lt;p&gt;Now, people know me as Penguin more often than my actual name, which is kind of weird when you think about it.&lt;&#x2F;p&gt;
&lt;p&gt;I guess that&#x27;s how the internet works lol.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ego-imposter-syndrome&quot;&gt;Ego &amp;amp; Imposter syndrome&lt;&#x2F;h2&gt;
&lt;p&gt;I do have something that&#x27;s been following me for as long as I can remember: an unhealthy mix of ego and impostor syndrome.&lt;&#x2F;p&gt;
&lt;p&gt;Those two sound like opposites, but for me, they coexist surprisingly well.&lt;&#x2F;p&gt;
&lt;p&gt;On one hand, I genuinely believe I can build something meaningful one day. I want to create things that people use and appreciate. Not because I want to be famous or leave a mark or anything, but because I want to look back years from now and point at something and say, &quot;I made that, y&#x27;all use it now.&quot;&lt;&#x2F;p&gt;
&lt;p&gt;On the other hand, I constantly feel like I&#x27;m nowhere near good enough.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s almost funny. I&#x27;ll watch someone casually explain concepts that I haven&#x27;t even touched yet, and the first thought that enters my mind isn&#x27;t, &quot;That&#x27;s interesting.&quot; It&#x27;s, &quot;How does he know all this at 16?&quot;, every impressive project that I see, becomes less about them, and more about what it says about me and my lack of skill.&lt;&#x2F;p&gt;
&lt;p&gt;I know that thought isn&#x27;t rational. Every student learns at a different pace. Everyone starts somewhere, and everyone was once a beginner. It&#x27;s also not that I am the absolute worst at programming to think that way. Yet, the voice doesn&#x27;t really care about logic.&lt;&#x2F;p&gt;
&lt;p&gt;Because of it, I rarely let myself feel satisfied. Although I&#x27;m slowly realizing that becoming better isn&#x27;t just about writing better code or building bigger projects, it&#x27;s also about making peace with being a beginner, about accepting that competence isn&#x27;t measured by how early you learned something.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h2&gt;
&lt;p&gt;I just know I want to keep making things. Maybe they&#x27;ll have ten users or a hundred. As long as I can keep looking at something and say, &quot;I made that, it&#x27;s cool&quot;, I&#x27;ll probably be happy.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
