[{"content":"I write a code in C and Go for fun. I have interests on computer and free software.\n","date":"March 9, 2026","permalink":"https://radhitya.org/about/","summary":"I write a code in C and Go for fun. I have interests on computer and free software.","title":"About"},{"content":"january. i signed up formany subscriptions: three servers and two additional domains, apple music, and chatgpt go. it was fun to be honest like my inner child was fulfilled. what i had been dreaming of had finally come true.\nbut, unfortunetaly, the fun only appeared the beginning. the rest did not.\nalthough i had a budget for that, keeping them would be wasteful. why? because i did not optimize them; for instance, one server was only used for a single purpose. besides, managing so many servers was overwhelming. at some point, i just got tired.\nthen, i decided to cut some subscriptions. the result is simpler than before. i saved a lot of money. indeed, as they say: less is more.\n","date":"February 25, 2026","permalink":"https://radhitya.org/to-keep-simple/","summary":"january. i signed up formany subscriptions: three servers and two additional domains, apple music, and chatgpt go. it was fun to be honest like my inner child was fulfilled. what i had been dreaming of had finally come true.\nbut, unfortunetaly, the fun only appeared the beginning. the rest did not.\nalthough i had a budget for that, keeping them would be wasteful. why? because i did not optimize them; for instance, one server was only used for a single purpose.","title":"To Keep Simple"},{"content":"discovering new website is my hobby, instead of scrolling on media social. i enjoy finding a new inspiration, whether it\u0026rsquo;s in layout, information, and many more. but, honestly, many of website i discover end up dissapointing me.\nads i think we all know about this one. ads have become a serious problem. imagine trying to read something while an ad blocks part of the content and it completely ruins the experience.\ni understand why website owners use ads. but, please, try to put yourself in the visitor\u0026rsquo;s views. i\u0026rsquo;m sure you would agree with my frustation.\n\u0026ldquo;login to continue\u0026rdquo; i countered this while reading on medium.com. i had to login just to continue reading an article that was blocked for anonymous user. seriously?\nautoplay sometimes i use potato device, so any kind of media playback affects my device perfomance. autoplay should be disabled. not people has a great device.\njavascript I have no words for JavaScript. Some website owners or developers harm users through unnecessary or poorly implemented scripts. Besides that, JavaScript can raise serious security warnings.\nI usually disable JavaScript when it’s not needed.\nhigh media Sometimes I browse using mobile data. When a website is full of high-resolution media, it drains my data quickly. I really hate that, so I often end up blocking images (and JavaScript) to save bandwidth.\n","date":"November 2, 2025","permalink":"https://radhitya.org/modern-website-sucks/","summary":"discovering new website is my hobby, instead of scrolling on media social. i enjoy finding a new inspiration, whether it\u0026rsquo;s in layout, information, and many more. but, honestly, many of website i discover end up dissapointing me.\nads i think we all know about this one. ads have become a serious problem. imagine trying to read something while an ad blocks part of the content and it completely ruins the experience.","title":"Modern Website Sucks"},{"content":"recently i got an arduino project to prove my worth as a micro-controller laboratory assistant.\nhowever, at the time, when i was trying to use the sensor, suddenly my arduino became unresponsive because the sensor was producing a negative output.\nthe best way to escape from the problem is to restart the device by itself. luckily, someone had added the function from assembly instruction inside the watchdog library.\nthe functions are wdt_disable and wdt_enable which you can use both like this:\n#include \u0026lt;avr/wdt.h\u0026gt; void myreset(void) { wdt_disable(); wdt_enable(WDTO_15MS); while(1) {} } ","date":"May 25, 2025","permalink":"https://radhitya.org/arduino-self-restart-through-code/","summary":"recently i got an arduino project to prove my worth as a micro-controller laboratory assistant.\nhowever, at the time, when i was trying to use the sensor, suddenly my arduino became unresponsive because the sensor was producing a negative output.\nthe best way to escape from the problem is to restart the device by itself. luckily, someone had added the function from assembly instruction inside the watchdog library.\nthe functions are wdt_disable and wdt_enable which you can use both like this:","title":"Arduino: Self Restart Through Code"},{"content":"Two weeks ago, i discovered about ESP-IDF, the official framework for ESP32 and ESP8266 Microcontroller development.\nDeveloping for the ESP32 with ESP-IDF offers many features:\nSupport for FreeRTOS Writing program in the C language More low level of control, memory management, and hardware options Write a Code in ESP-IDF The workflow between Arduino and ESP-IDF is different, but you dont have to worry because i dont think it will be a big problem.\nThere are no void setup() and void loop() functions in ESP-IDF. Instead, you do everything in the void app_main() function.\nAlso, primary language ESP-IDF is C language, not plus-plus in the end.\nSome people write \u0026lsquo;Arduino-IDE uses C/C\u0026rsquo; which makes others believe C and C++ are the same. In fact, they are not. I wont explain it in here, but you can read about in these article.\nSimple Passive Buzzer with ESP-IDF The first time I tried writing a program with ESP-IDF, i was shocked by the length of code required for a simple program when compared to writing it with the Arduino IDE.\nSo, let me show you how to use GPIO with ESP-IDF. In this context, we will create a simple bassive buzzer.\nI hope you have finished installing ESP-IDF. If not, you should read \u0026ldquo;Get Started - ESP32 ESP-IDF\u0026rdquo;.\nCreate a project directory. I will name it as buzzer.\n$ idf.py create-project buzzer Change the directory to buzzer and start editing the file inside main/ with your favorite text editor.\n$ cd buzzer $ vim main/buzzer.c We will add several libraries and i will explain each of them.\nAs the name suggests, we will use this for GPIO activity.\n#include \u0026lt;driver/gpio.h\u0026gt; With task.h, we will use the vTaskDelay() function which works like delay() in the Arduino IDE.\n#include \u0026#34;freertos/FreeRTOS.h\u0026#34; #include \u0026#34;freertos/task.h\u0026#34; Lastly, we use this library for logging activity when monitoring.\n#include \u0026#34;esp_log.h\u0026#34; The 2 stands for GPIO2. You can change it according your taste.\n#define BUZZER_PIN 2 Now, we will write a code inside void app_main() function.\nThis function sets the direction of the GPIO to be used as an output.\ngpio_set_direction(BUZZER_PIN, GPIO_MODE_OUTPUT); Add while(1) to work like void loop(). Next, we will make the buzzer works inside the while loop.\nwhile(1) { /* writing code in here */ } We will start by turning the assigned gpio with gpio_set_level function, which has two modes:\n1 for active 0 for inactive gpio_set_level(BUZZER_PIN, 1); Add a one-second delay.\nvTaskDelay(1000 / portTICK_PERIOD_MS); Give a sign that the code is working.\nESP_LOGI(\u0026#34;Buzzer\u0026#34;, \u0026#34;Active\u0026#34;); Now, its your turn to imagine how buzzer will turn off :). Make sure to close all code with }.\nHere is the full code:\n#include \u0026lt;driver/gpio.h\u0026gt; #include \u0026lt;stdio.h\u0026gt; #include \u0026#34;freertos/FreeRTOS.h\u0026#34; #include \u0026#34;freertos/task.h\u0026#34; #include \u0026#34;esp_log.h\u0026#34; #define BUZZER_PIN 2 void app_main() { gpio_set_direction(BUZZER_PIN, GPIO_MODE_OUTPUT); while(1) { gpio_set_level(BUZZER_PIN, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); ESP_LOGI(\u0026#34;Buzzer\u0026#34;, \u0026#34;Active\u0026#34;); gpio_set_level(BUZZER_PIN, 0); vTaskDelay(1000 / portTICK_PERIOD_MS); ESP_LOGI(\u0026#34;Buzzer\u0026#34;, \u0026#34;Non-Active\u0026#34;); } } After that, we will flash the code to the ESP32 device.\n$ idf.py flash And monitor the results\n$ idf.py monitor ","date":"February 28, 2025","permalink":"https://radhitya.org/esp-idf-general-purpose-input-output-esp32-buzzer/","summary":"Two weeks ago, i discovered about ESP-IDF, the official framework for ESP32 and ESP8266 Microcontroller development.\nDeveloping for the ESP32 with ESP-IDF offers many features:\nSupport for FreeRTOS Writing program in the C language More low level of control, memory management, and hardware options Write a Code in ESP-IDF The workflow between Arduino and ESP-IDF is different, but you dont have to worry because i dont think it will be a big problem.","title":"ESP-IDF: General Purpose Input Output ESP32 (Buzzer)"},{"content":"This year marks five years since I started using Linux and I\u0026rsquo;m still enjoying it on my device(s). Most of my devices are installed with Unix-like systems (Linux and OpenBSD) for various tasks.\nSadly, I\u0026rsquo;m still keeping Windows on another partition due to college requirements. Before I started my college studies, I was fully running Linux.\nMostly, people ask me about my decision to run Linux while others are using a \u0026rsquo;normal\u0026rsquo; setup. Not infrequently, some of them also comment in a trivial tone because of the \u0026lsquo;complicated\u0026rsquo; nature of my Linux setup.\nBut I dont mind it because what you can expect from people who dont like and understand about computers?\nOperate Everywhere with Good Experience Current-day people believe you need at least 8 GB of RAM and a higher-performing CPU just to complete basic \u0026lsquo;office\u0026rsquo; tasks or to browse the internet.\nIf your hardware is below these specifications, they think you\u0026rsquo;ll experience slow perfomance and a generally bad user experience because of it.\nSadly, people often fail to correctly identify the root cause of these perfomance issues.\nThe experience would be different\u0026ndash;like mine\u0026ndash;if they tried Unix-like systems, which often have lower minimum requirements.\nAt my house, I\u0026rsquo;m using \u0026lsquo;potato\u0026rsquo; devices with Linux and OpenBSD installed on them. Despite their limitations, I\u0026rsquo;m still able to do tasks!\nMost people would complain about a potato device, but I won\u0026rsquo;t!\nUnlike Windows or macOS, Unix-like systems are designed to be lightweight and powerful. You can see the difference in ISO size, memory usage, and disk space! Unix-like systems outperform everything!\nIs Linux more lightweight than Windows\nEffortless I\u0026rsquo;m a lazy person, so I need to reduce every step when I\u0026rsquo;m doing tasks.\nIn Linux, I\u0026rsquo;m using a dynamic window manager, so everything is controlled with the keyboard and shortcuts. I just need a combo or alias in the shell to do something.\nIt\u0026rsquo;s different from Windows and MacOS, where you need to move the cursor with a mouse, click, click, click, and it\u0026rsquo;s very slow compared to my setup.\n","date":"January 18, 2025","permalink":"https://radhitya.org/the-joy-of-using-unix-like-systems/","summary":"This year marks five years since I started using Linux and I\u0026rsquo;m still enjoying it on my device(s). Most of my devices are installed with Unix-like systems (Linux and OpenBSD) for various tasks.\nSadly, I\u0026rsquo;m still keeping Windows on another partition due to college requirements. Before I started my college studies, I was fully running Linux.\nMostly, people ask me about my decision to run Linux while others are using a \u0026rsquo;normal\u0026rsquo; setup.","title":"The Joy of Using Unix-Like Systems"},{"content":"Now, we can expose our localhost service to the public without a public IP or router setting with Cloudflare Zero Trust and it’s completely free. You need a credit card for registration.\nI\u0026rsquo;m not explaining how to register zero trust, and you can read the documentation on the Cloudflare website.\nCloudflared We need CloudFlared, a lightweight server-side daemon, to connect a tunnel between the localhost and the CloudFlare server. You can download it as a Debian package, RPM, Docker, Mac, or Windows. Also, it has different architectures, like 64-bit, 32-bit, arm64-bit, and arm32-bit.\nFor Debian,\ncurl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb \u0026amp;\u0026amp; sudo dpkg -i cloudflared.deb Then, install the Cloudflare service with your token.\nsudo cloudflared service install xxx Go to the Public Hostname menu and click “Add a public hostname”.\nChoose which domain you are using and the port of service. Example: I set localhost:8080 because port 8080 will be a Gotosocial service port.\nGoToSocial Fediverse is not just a mastodon, but more than that, one of them is gotosocial.\nAccording to the project github, GoToSocial is a fast and lightweight activitypub social network server written in Golang. Gotosocial does not have a frontend and you have to use another client, like Tusky, Semaphore, and the others. Don’t worry, you will have the same experience: post, read, and follow other accounts.\nI like to install Gotosocial via Docker Composer because I just paste the script and start the service.\nCreate docker-compose.yml for gotosocial.\nversion: \u0026#34;3.3\u0026#34; services: gts: image: superseriousbusiness/gotosocial:latest container_name: gts user: 1000:1000 hostname: gts environment: GTS_HOST: domain.tld GTS_DB_TYPE: sqlite GTS_DB_ADDRESS: /gotosocial/storage/sqlite.db GTS_LETSENCRYPT_ENABLED: \u0026#34;false\u0026#34; GTS_LETSENCRYPT_EMAIL_ADDRESS: \u0026#34;\u0026#34; GTS_ADVANCED_RATE_LIMIT_REQUESTS: 0 ports: - \u0026#34;127.0.0.1:8080:8080\u0026#34; volumes: - ./:/gotosocial/storage restart: \u0026#34;always\u0026#34; You can change settings using environment variables.\nStart the service\n$ docker-compose up -d You should be able to see your instance in the browser.\nMore information about creating an admin and user is there.\nCongratulations! Now you can build you own GotoSocial Cloudflare Tunnel!\n","date":"December 10, 2024","permalink":"https://radhitya.org/cloudflare-tunnel-gotosocial/","summary":"Now, we can expose our localhost service to the public without a public IP or router setting with Cloudflare Zero Trust and it’s completely free. You need a credit card for registration.\nI\u0026rsquo;m not explaining how to register zero trust, and you can read the documentation on the Cloudflare website.\nCloudflared We need CloudFlared, a lightweight server-side daemon, to connect a tunnel between the localhost and the CloudFlare server. You can download it as a Debian package, RPM, Docker, Mac, or Windows.","title":"Cloudflare Tunnel Gotosocial"},{"content":"You might only know how to use application, but dont know how to be provide. I asked to some of my friend and most of them only know how to use apps without understanding how they works\nSelf-hosting is the activity of running and maintaining a service with our control. When you self-host a service, you understand how the applications works behind the scenes, control the data, and ensure privacy.\nSelf-hosting web services have gained popularity with the rise of free software and open source software projects that provide alternatives to various web-based services and applications, such as file storage, password management, media streaming, home automation, and more.\nThere is also a sizeable hobbyist community around self-hosting, made up of hobbyists, technology professionals and privacy conscious individuals.1\nSelf-hosting is not just an activity; it’s spirit of independence. You can build your own instance and contribute to the community.\nMy Experience with Self Hosting I have been inspired by left-wing movement and their online communication tools, like Riseup , Systemli , Autistici . Not only the left-wing groups, but also the free software community has embraced self-hosting. Instead of relying on big tech platform, they created their own independent spaces.\nSince then, I became interested. In Indonesia, especially in my city, it is rare to find people who self-host. So I often conect with others via IRC and social media.\nNow, I do a lot with self-hosting:\nBlog This blog is not Wordpress.com, Blogspot.com, or Medium. I built my own blog with a self-made theme and powered it with Hugo. That is why the blog layout may look different from typical blogs.\nI write my posts as markdown file and Hugo turns them into html like you are reading now. I also avoid large file sizes to improve user experience; there are no javascript, no ads, and no large images.\nCloud I\u0026rsquo;m not completely sure if it\u0026rsquo;s “cloud”, but i believe cloud is just another computer.\nI usually save my file on my server and I use unix stuff: scp for copying files and rsync for backups.\nWhy not Nextcloud? Because Nextcloud too complicated for me and i prefer simplicity\nNotes I sometimes take notes using memos, a free and open source app that lets you create and share plain text notes with Markdown support.\nI like it because Memos is cross-platform. I can write anywhere as long as I have an internet connection and a browser.\nEmail I wanted an email with a good username radhitya@temanbsd.com so people can easily reach me. So i just self host my email.\nI use Dovecot for IMAP, OpenSMTPD for SMTPD, Rspamd + Redis for prevent spam.\nHow Many Cost I\u0026rsquo;ve Spent? .org domain: $10 / yearly Nevacloud Server: $4 / monthly Time and Effort: Priceless It\u0026rsquo;s cheap; the cost is less than a cup of coffee. However, since the cost depends on the U.S. dollar, I hope the Indonesian government can better control the currency.\n","date":"December 10, 2024","permalink":"https://radhitya.org/on-self-hosting/","summary":"You might only know how to use application, but dont know how to be provide. I asked to some of my friend and most of them only know how to use apps without understanding how they works\nSelf-hosting is the activity of running and maintaining a service with our control. When you self-host a service, you understand how the applications works behind the scenes, control the data, and ensure privacy.","title":"On Self Hosting"},{"content":"You know what have you to do:\nrezhajul.io rizaumami.github.io bluemeda.web.id prehistoric.me nsetyo.me muhammadrefa.wordpress.com ha.hn.web.id ","date":"January 1, 0001","permalink":"https://radhitya.org/blogroll/","summary":"You know what have you to do:\nrezhajul.io rizaumami.github.io bluemeda.web.id prehistoric.me nsetyo.me muhammadrefa.wordpress.com ha.hn.web.id ","title":"Blogroll"},{"content":"straight forward rss.\nenglish rss indonesia rss ","date":"January 1, 0001","permalink":"https://radhitya.org/subscribe/","summary":"straight forward rss.\nenglish rss indonesia rss ","title":"subscribe"}]