hsn https://hsn.codeberg.page/p/ serially experimenting. en-us 2025年10月22日 19:26:54 +0600 2025年10月16日 00:00:00 +0600 Jekyll RSS Feed 20251016100000 Updates 2025年10月16日 10:00:00 +0600 https://hsn.codeberg.page/a/log/ https://hsn.codeberg.page/a/log/#20251016 Experimenting some things at the moment. Gallery/Artworks page now links to monthly archives and no longer uses radio/tabbing. I have added sketches from october and many other practice pieces and I have organized them in order! <br> Revised Homepage to maintain previous aesthetic! <br>Url handling update: old: /p/:title/ eg /p/rec/index.html new: /post/:title.html eg /post/rec.html 20251016000000 static_files A static site builder and a lazy man's tale. 2025年10月16日 00:00:00 +0600 https://hsn.codeberg.page/post/static_files.html https://hsn.codeberg.page/post/static_files.html <p>Jekyll is a static site builder written in Ruby with focus on blog posts. And this site is totally jekyll dependant. Initially it was hosted in github and Github does the jekyll build process upon push. But I have ever since migrated this site to codeberg pages. Codeberg however didnt have jekyll build proccess like github did. And I have taken it as a challenge to learn jekyll myself instead of relying on github workflow.</p> <p>At first I only intended to do blog posts. But now I share my artwork progress and want to organize them. It is no biggie with javascript to organize static files like images. There are plenty options like tabbing, masonry grid and such but because I avoid javascript like its a plague I looked for and found a good (html only) workaround for tabbing to organize my artwork.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> &lt;div id="gallery-container" class="main-content-wrapper"&gt; &lt;input type="radio" name="tabs" id="tab1" class="tab-input" checked&gt; &lt;input type="radio" name="tabs" id="tab2" class="tab-input"&gt; &lt;nav class="tabs"&gt; &lt;label for="tab1" class="nav-link"&gt;Photographs&lt;/label&gt; &lt;label for="tab2" class="nav-link"&gt;Sketches&lt;/label&gt; &lt;/nav&gt; &lt;section id="photographs-content" class="tab-content" data-content="photographs"&gt; &lt;div class="art-grid"&gt; &lt;div class="art-grid-item"&gt; &lt;img src="/assets/img/photographs/wire.jpg"&gt; &lt;/div&gt; &lt;div class="art-grid-item"&gt; &lt;img src="/assets/img/photographs/branch.jpg"&gt; &lt;/div&gt; &lt;div class="art-grid-item"&gt; &lt;img src="/assets/img/photographs/coucal.jpg"&gt; &lt;/div&gt; &lt;/div&gt; &lt;/section&gt; &lt;section id="sketches-content" class="tab-content pixel-art-image" data-content="sketches"&gt; &lt;input type="checkbox" id="sensitiveToggle" class="sensitive-toggle-input"&gt; &lt;label for="sensitiveToggle" class="toggle-button"&gt; &lt;span class="show-text"&gt;Show nudity&lt;/span&gt; &lt;span class="hide-text"&gt;Hide nudity&lt;/span&gt; &lt;/label&gt; &lt;div class="art-grid"&gt; &lt;div class="art-grid-item"&gt; &lt;img src="/assets/img/sketches/sketch1760524508537.png"&gt; &lt;/div&gt; &lt;div class="art-grid-item"&gt; &lt;img src="/assets/img/sketches/sketch1760525141314.png"&gt; &lt;/div&gt; &lt;/div&gt; &lt;/section&gt; &lt;/div&gt; </code></pre></div></div> <p>(as of October 19, 2k25 I no longer use tabbing instead use monthly archives)</p> <p>I find it tedious to edit a page everytime I add a new photo. I wanted to automate the whole process so that it requires minimal effort. I have thought of creating a new collection in <code class="language-plaintext highlighter-rouge">_config.yml</code> however It’d be much more tedious to use same liquid code used for posts as It’d require me to make a new markdown file for every entry. The liquid code in question:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> {% for post in site.posts %} &lt;div&gt; &lt;h3&gt;&lt;a href="{{ post.url }}"&gt;{{ post.title }}&lt;/a&gt;&lt;/h3&gt; &lt;small&gt;{{ post.date | date: "%d-%m-%Y" }} &lt;/small&gt; &lt;p&gt;{{ post.description }} &lt;a href="{{ post.url }}"&gt; Read &amp;rarr;&lt;/a&gt;&lt;/p&gt; &lt;/div&gt; &lt;hr&gt; {% endfor %} </code></pre></div></div> <p>What it does is look for files(markdown/html) in the <code class="language-plaintext highlighter-rouge">/_posts</code> directory and generates an html page in the specifed address. In my case <code class="language-plaintext highlighter-rouge">/a/ar/:title</code>. Though perfect for posts as is but terrible for something like bunch of images. Luckily there is jekyll function literally called the static_files.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> &lt;div class="art-grid"&gt; {% assign current_dir = page.dir %} {% assign monthly_files = site.static_files | where_exp: "file", "file.path contains current_dir" | where_exp: "file", "file.basename != 'index.html'" | where_exp: "file", "file.extname != '.DS_Store'" | reverse %} {% for file in monthly_files %} &lt;div class="art-grid-item"&gt; &lt;img src="{{ file.path | relative_url }}" alt="{{ alt_text }}" &gt; &lt;/div&gt; {% endfor %} &lt;/div&gt; </code></pre></div></div> <p>AKA the drop and go. It looks for static files in the specified directory and outputs them all. With this I can get away with just storing the image in the directory without having to do any page editing. So as of now this is what I use for my artwork pages.</p> 20250906100000 Updates 2025年9月06日 10:00:00 +0600 https://hsn.codeberg.page/a/log/ https://hsn.codeberg.page/a/log/#20250906 Organized things, navs are on top now, made my button! 20250824100000 Updates 2025年8月24日 10:00:00 +0600 https://hsn.codeberg.page/a/log/ https://hsn.codeberg.page/a/log/#20250824 Homepage has gone under a minor renovation and I also added photographs taken this august. <br> Little inconvenience: I lost jekyll copy of this site and had to use an older backup, meaning, most recent changes were lost which I used upto this point to jekyll build locally. I rewrote the changes so all good.<br> And another thing: I am allowing this site to be indexed!(yes, it was not up until now) 20250807100000 Log Started 2025年8月07日 10:00:00 +0600 https://hsn.codeberg.page/a/log/ https://hsn.codeberg.page/a/log/#20250807 Trying something new: a log to keep track of updates. <br>This site is now part of <strong>Wired Collective Webring!</strong> 20250714000000 Android's Dark Age Critic of Android's current state of freedom and debloating devices with no root access. 2025年7月14日 00:00:00 +0600 https://hsn.codeberg.page/post/droid.html https://hsn.codeberg.page/post/droid.html <nav class="contents-nav"> <ul> <li><a href="#state">State of Android</a></li> <li><a href="#debloat">De-Bloat</a></li> </ul> </nav> <h2 id="state">State of Android</h2> <p>We’re witnessing the enshittification of the Android operating system. Every major contender in the market is trying way too hard to be iPhone, and in doing so, they’ve directly or indirectly contributed to the erosion of what Android was meant to be. If you were not aware: Android is based on Linux. And Linux stands for user freedom, privacy, and, of course, customizability. By dismantling user freedom, companies are spitting in the face of what it was built on.</p> <p>Samsung, OnePlus, Xiaomi, Huawei etc companies are adopting apple-like behaviors: Batshit heavy UI skins, bloatware, making software updates more restrictive and tighter integration with proprietary services.</p> <p>More and more companies now follow the trend of locking the bootloader, and many outright refuse to provide unlock codes. Unlocking the bootloader is a crucial first step toward gaining root access, the very thing that gives users full control over their device. So, naturally, by locking that door, they’re restricting root access altogether. Some devices ironically, like Google’s own Pixel line still allow it. But most don’t.</p> <h2 id="debloat">De-Bloat</h2> <p>Without root access, If you still seek some degree of privacy, your best bet is to "De-google" or more specifically "De-bloat" your android system. And replace google services with Free and Open Source Software(FOSS) alternatives. <code>Note: Free as in freedom, not as in free shwarma.</code></p> <p>Years back, I wrote a <a href="https://gist.githubusercontent.com/nshfm/fb3e3eb49dffe05ef7537046c86eccc8/raw/7f7651417bf61593b9cde8a793121399be1ae938/android_debloat.sh">custom shell script </a> to remove a ton of bloatware from my Huawei device. This naturally included almost everything Google except for <strong>Android installer</strong>. (Do <strong>NOT</strong> remove that. You’ll need it for sideloading apps.)</p> <p>This doesn’t require root access. To debloat your Android device, you’ll need the Android device itself and a PC with Android Debugging Bridge(ADB) installed.</p> <p>But before removing any core Google services, make sure you’ve already replaced them with FOSS alternatives or you might end up breaking functionality. For example: Replace Google Play Store with Aurora Store, Play services with microg, Chrome with Firefox etc.</p> <div class="warning"> <strong>⚠ WARNING</strong><br /><br /> This script uninstalls system apps for the current user (<code>User 0</code>). Some removals may break functionality or cause instability depending on your ROM or device and may even brick it.<br /><br /> If things go south, your only real fallback is a full factory reset. This should return the phone to its stock state and (hopefully) restore removed system apps.<br /><br /> <strong>I say this to save my ass but rest assured that long as you are not uninstalling anything crucial you will be good</strong> </div> <p><strong>Step 0:</strong> Install adb</p> <p>This guide will assume you are on any linux distro. Go to Step 1 if you have adb installed.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># Debian/Ubuntu sudo apt install adb # Arch Linux sudo pacman -S android-tools # Other distros sudo &lt;package_manager&gt; &lt;install_flag&gt; adb </code></pre></div></div> <p><strong>Step 1:</strong> Configure adb</p> <p>In your phone, turn on usb debugging from developer mode. Then check if adb has detected your device <code>adb devices</code></p> <p>If your device is listed, you’re good to go.</p> <p><strong>Step 2:</strong> Create a file with .sh extension for example: debloat.sh <code>touch debloat.sh</code> and Give it executable permission <code>chmod +x debloat.sh</code></p> <p><strong>Step 3:</strong> Copy following content inside it.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>#!/bin/bash # Remove packages packages=( # This is an Example list. # DO NOT REMOVE without understanding the consequences and having alternatives/recovery methods # Always search "safe bloatware list for [your phone model]" # These are for my Huawei device, but your mileage may vary. # Remove # to uncomment # google play services # if you do not have alternative like microg, do not uncomment # "com.google.android.gms" # "com.google.android.gsf" # other google dependency # "com.google.android.ext.services" # "com.google.android.ext.shared" # play Store # removing it is fine in most cases just remember to install a foss alternative like aurora Store # "com.android.vending" # chrome browser # "com.android.chrome" # huawei stock launcher # if you do not have alternate launcher, do not uncomment # same saying goes for your devices launcher, do not remove the launcher without an alternative # "com.huawei.android.launcher" # huawei dependency # com.huawei.android.internal.app # google specifics "com.google.android.gm" "com.google.android.googlequicksearchbox" # other bloats "vStudio.Android.Camera360" "com.android.backupconfirm" "com.touchtype.swiftkey" "com.swiftkey.swiftkeyconfigurator" "com.facebook.services" "com.facebook.system" "com.facebook.appmanager" "com.agoda.mobile.consumer" "com.facebook.katana" "com.facebook.orca" "com.booking" ) for package in "${packages[@]}"; do echo "Removing $package..." adb uninstall --user 0 $package done # Clear package data # Clearing data is optional, you may remove this from the script. for package in "${packages[@]}"; do echo "Clearing data for $package..." adb shell pm clear $package done </code></pre></div></div> <p><strong>Step 4:</strong> Heed absolute caution and run the script <code>./debloat.sh</code></p> <p><strong>Step 5:</strong> Restart your device <code>adb reboot</code></p> <p>Congratulations! You have successfully De-Bloated your device.</p> 20250629000000 Ideal website "Good design is as little design as possible." 2025年6月29日 00:00:00 +0600 https://hsn.codeberg.page/post/ideal-site.html https://hsn.codeberg.page/post/ideal-site.html <p>Personal websites are cool. It’s even better when they’re satisfactory. As in, it’s grained and tuned for your taste.</p> <p>Contrary to schizoid techbro belief, You’re under no obligation to follow the formula of "old web". It doesn’t needs to be full on bare text. Although still viable option, your site deserves a little design as a treat. Look at this site, its beautiful, legible and it doesn’t butcher aestheticism to comply with philosophy of schizoid techbros.</p> <p>However, If your definition of design is cluttering everything for the sake of cluttering everything, making things overly complicated, making navigation a challenge for your visitor then you have failed. What’s your obsession with complicating things? Complicating will not add more depth and personality to your site. Your visitors are here to consume your content, not to take on a side quest to find that bit of information on that sub-sub-sub-directory. You had the option to minimize this clutter-mess of navigation but you chose not to. (I am looking at you, neocities blogs)</p> <p>And please, you have no excuse for making your visitor render 5 megs of hero image and terabytes of js framework dependencies for your silly blog or say, landing page. As if that was not enough, you use remote fonts 5 times the size of your actual content size. What you are doing in the process is form of self-sabotaging. You are not only pissing off your visitors but also risking your site to come off as bland, soulless.</p> <p>I have nein to say to that group of hippies that revolve their life around this idea. It is directed to those who are still oblivous of their sins.</p> <p>The idea that a personal site has to mimic either: the brutalism of "old web" or the bloat of over-design is a false dichotomy. You can make something beautiful, thoughtful, and still lightweight. Like this one, of course.</p> <p>"Good design is as little design as possible." — some German mf(<a href="https://motherfuckingwebsite.com" target="_blank">wink</a>)</p> 20200708000000 Recommendations Programs and other utilities I use and recommend. 2020年7月08日 00:00:00 +0600 https://hsn.codeberg.page/post/rec.html https://hsn.codeberg.page/post/rec.html <nav class="contents-nav" style="background-color: #3d3d3d1b;"> <ul> <li><a href="#operating-systems">Operating systems</a></li> <li><a href="#web-browsers">Web browsers</a></li> <li><a href="#mobile-applications">Mobile applications</a></li> <li><a href="#web">Websites</a></li> </ul> </nav> <h2 id="operating-systems">Operating systems</h2> <ul> <img src="/assets/img/logo.png" width="60%"> <div style="text-align: center;"><small>image: gentoo penguin</small></div> <li> <p>I primarily use <strong>Gentoo Linux</strong>. To quote, "Because I hate myself." Gentoo is a source-based distro meaning the source code is compiled locally on the machine. Another aspect is USE flags, by which you can choose to globally enable or disable optional extra features, dependency, libraries in <code>/etc/portage/make.conf</code> resulting in a tailored system with reduced bloats. Gentoo is super demanding as it requires your willingness, time, patience and learning investment. In return you will be rewarded with a highly performing and fine tuned workstation plus a blazingly fast boot time over the top.<br><br> Here's a <a href="https://nshfm.github.io/Terminal-web" target="_blank">silly homage</a> to gentoo I made years ago as I was learning web development. </p> </li> <li> <p><strong>Debian</strong> is stable, reliable, and a great starting distro. Unlike Arch, Debian is not cutting edge and will likely get major updates once every few years. This is both a drawback and a feature. You're risking latest updates of your favourite softwares for boasting a stable, NASA-level workstation. I use Debian when I don't feel like clinically insane.</p> </li> </ul> <h2 id="web-browsers">Web browsers</h2> <ul> <li>Linux <ul> <li> <p> <a href="https://www.mozilla.org/en-US/firefox/linux/" target="_blank">Firefox</a> is a decent browser as it is, but it comes with telemetry and Google services. I use a custom user.js file of my own based on <a href="https://github.com/nshfm/betterfox" target="_blank">Betterfox</a>. If you don't want to bother with customization, at heart, <a href="https://librewolf.net/installation/" target="_blank">Librewolf</a> is a custom version of Firefox, focused on privacy, security, and freedom. It's quite privacy-centric out of the box. </p> </li> <li> <p> For Chromium experience, I use <a href="https://ungoogled-software.github.io/ungoogled-chromium-binaries/" target="_blank">Ungoogled Chromium</a>. As it removes all Google-specific web services. It is bare metal browser which can be a drawback to many. You will have to customize it to your needs. <a href="https://brave.com/linux/" target="_blank">Brave</a> is another good chromium fork. It replaces google search engine with Brave search engine. They shill NFTs and brave wallet out of the box which I could not care less of so I turn them off. Otherwise it's a fairly decent browser. </p> </li> </ul> </li> <li>Android <ul> <li> <p> <a href="https://www.mozilla.org/en-US/firefox/browsers/mobile/android/" target="_blank">Firefox</a> is the official Firefox for mobile. Complements extensions. <a href="https://f-droid.org/en/packages/org.mozilla.fennec_fdroid/" target="_blank">Fennec F-Droid</a> is a better Firefox for android without proprietary code, telemetry, and ads. I personally prefer Fennec over official app. </p> </li> </ul> </li> </ul> <h2 id="mobile-applications">Mobile applications</h2> <p>also read: <a href="https://hsn.codeberg.page/p/droid/">Android's Dark Age</a></p> <ul> <li> <p><a href="https://f-droid.org/en/packages/com.looker.droidify/" target="_blank">Droidify</a>, the better F-Droid, material you, fast.</p> </li> <li> <p><a href="https://f-droid.org/packages/com.aurora.store/" target="_blank">Aurora Store</a> is a lightweight Play Store alternative. Lets you use Play Store without login by anonymous session, spoof device location to access geo-locked apps. shows trackers in the app.</p> </li> <li> <p><a href="https://f-droid.org/en/packages/org.akanework.gramophone/" target="_blank">Gramophone</a> is a slick and minimal offline music player that can play .mp3, .flac, .ogg, .opus, .m4a, .mka and .wav files.</p> </li> <li> <p><a href="https://apt.izzysoft.de/fdroid/index/apk/com.open.simplesongfinder" target="_blank">Simple Song Collector</a> is a simple app that allows you to download audio from YouTube/YouTube Music. If you care about audio cover: YT Music covers are awfully blurry and YT video covers are clear.</p> </li> <li> <p><a href="https://readera.org/" target="_blank">ReadEra</a>, a beautiful, all-in-one, multi-purpose document and ebook reader. Available on play store.</p> </li> <li> <p>I draw mainly on phone. <a>Pixel Studio: pixel art editor</a> is what I use to draw pixel art. And <a href="https://sketchbook.com" target="_blank">Sketchbook</a> for my sketches! Sketchbook is super intuitive, function rich and feels true to traditional art. Both avialable on play store. </p> </li> </ul> <h2 id="web">Links</h2> <ul> <li><a href="https://wiki.gentoo.org/wiki/Main_Page" target="_blank">Gentoo Wiki</a></li> <p>Gentoo linux wiki contains documentation related to Gentoo linux, linux kernel, Gentoo linux installation handbook, Gentoo troubleshooting and general linux queries. </p> <li><a href="https://wiki.archlinux.org/title/Main_page" target="_blank">Arch Wiki</a> <p>Similar to Gentoo wiki, arch wiki is home for Arch linux documentation. </p> </li> <li><a href="https://www.kernelconfig.io/index.html" target="_blank">Kernel Config</a> <p>Search linux kernel configuration info.</p> </li> <li><a href="https://prism-break.org/" target="_blank">Prism-Break</a></li> <p>Privacy related programs, utility, systems recommendations for various use case. </p> <li><a href="https://www.w3schools.com/" target="_blank">W3Schools</a></li> <p>Web Development Guides for both frontend and backend development.</p> <li><a href="https://welib.org/" target="_blank">WeLib</a></li> <p>Massive library of Free E-books in various file formats including .pdf, .epub, .mobi and so on. </p> </ul> </div> </html>

AltStyle によって変換されたページ (->オリジナル) /