<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>arisjirat</title>
    <link>https://arisjirat.com/</link>
    <atom:link href="https://arisjirat.com/rss.xml" rel="self" type="application/rss+xml"/>
    <description>Aris Jirat Kurniawan — studies, projects, research, tools and setup. A hand-built split keyboard, a k3d homelab, and computer-engineering coursework.</description>
    <language>en-US</language>
    <item>
      <title>sirna: Destroy the Key, Not the Copy</title>
      <link>https://arisjirat.com/projects/project-sirna</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-sirna</guid>
      <description>The successor to otm. otm keeps a master key on the server, so the server can decrypt everything it holds — not patchable, because it is the shape of the design. sirna never lets the key reach the server at all.</description>
      <pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate>
      <category>rust</category>
      <category>cryptography</category>
      <category>xchacha20-poly1305</category>
      <category>blake3</category>
      <category>webassembly</category>
      <category>self-hosted</category>
    </item>
    <item>
      <title>tmprl: A Temporal Client for the Keyboard</title>
      <link>https://arisjirat.com/projects/project-tmprl</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-tmprl</guid>
      <description>A terminal client for Temporal, aiming at parity with the web UI. Four days old: the gRPC layer exists, the TUI does not. This is what it is honest to claim at that stage.</description>
      <pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate>
      <category>rust</category>
      <category>temporal</category>
      <category>grpc</category>
      <category>tui</category>
      <category>in-progress</category>
    </item>
    <item>
      <title>clowner: Turning a macOS App Into Two Independent Copies</title>
      <link>https://arisjirat.com/gear/tool-clowner</link>
      <guid isPermaLink="true">https://arisjirat.com/gear/tool-clowner</guid>
      <description>One Bash script that copies a .app into a second copy with its own bundle identifier — two Braves, two Slacks, two of anything, running side by side with separate data.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
      <category>macos</category>
      <category>bash</category>
      <category>codesign</category>
      <category>cli</category>
      <category>productivity</category>
    </item>
    <item>
      <title>v-pipeline: Renting a GPU per Job, Not per Hour</title>
      <link>https://arisjirat.com/projects/project-v-pipeline</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-v-pipeline</guid>
      <description>A personal video generation pipeline — the app and its files live in the homelab, the GPU is rented on RunPod Serverless and dies the moment a job finishes. Notes on idempotency, dry runs, and why restarting a worker can make you pay twice.</description>
      <pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate>
      <category>python</category>
      <category>fastapi</category>
      <category>gpu</category>
      <category>runpod</category>
      <category>homelab</category>
      <category>ffmpeg</category>
      <category>sqlite</category>
    </item>
    <item>
      <title>Tombakan: An AR Spearfishing Game That Teaches Fish</title>
      <link>https://arisjirat.com/projects/project-tombakan</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-tombakan</guid>
      <description>A Unity AR game where you place a water surface in your actual room and spear the fish matching a target colour. Seven weekly iterations, a tester report each time, and a scope that grew from a colour drill into a marine-life learning game.</description>
      <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
      <category>unity</category>
      <category>ar</category>
      <category>arfoundation</category>
      <category>csharp</category>
      <category>game</category>
      <category>android</category>
      <category>ios</category>
    </item>
    <item>
      <title>ArkButton: A Wireless Split Keyboard, Printed and Soldered by Hand</title>
      <link>https://arisjirat.com/gear/setup-arkbutton-keyboard</link>
      <guid isPermaLink="true">https://arisjirat.com/gear/setup-arkbutton-keyboard</guid>
      <description>58 keys, two nRF52840s, ZMK, and one thumb position deliberately left empty. Notes from building a wireless split keyboard — including the clock bug that killed the right half and the tenting plate that only printed once it stood upright.</description>
      <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
      <category>keyboard</category>
      <category>zmk</category>
      <category>wireless</category>
      <category>split-keyboard</category>
      <category>nrf52840</category>
      <category>3d-printing</category>
      <category>openscad</category>
      <category>charybdis</category>
      <category>handwired</category>
    </item>
    <item>
      <title>A CNN with No Framework: Pothole Detection with LeNet-5 and NumPy</title>
      <link>https://arisjirat.com/research/research-pothole-detection</link>
      <guid isPermaLink="true">https://arisjirat.com/research/research-pothole-detection</guid>
      <description>Convolution, pooling, softmax and backpropagation derived by hand and written in NumPy — no PyTorch, no TensorFlow, no autograd. From 75.7% to 94.4% accuracy, and how to prove the gradients are actually right.</description>
      <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
      <category>cnn</category>
      <category>numpy</category>
      <category>python</category>
      <category>computer-vision</category>
      <category>lenet-5</category>
      <category>backpropagation</category>
      <category>deep-learning</category>
    </item>
    <item>
      <title>fate-studio: Seeing and Driving Statecharts in the Browser</title>
      <link>https://arisjirat.com/projects/project-fate-studio</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-fate-studio</guid>
      <description>A viewer and live simulator for fate statecharts — send events, fire timers, resolve invocations, and watch the active state change over Server-Sent Events. One static binary, no outbound requests at all.</description>
      <pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate>
      <category>go</category>
      <category>statechart</category>
      <category>sse</category>
      <category>react</category>
      <category>elkjs</category>
      <category>visualization</category>
    </item>
    <item>
      <title>fate: A Statechart Engine for Go</title>
      <link>https://arisjirat.com/projects/project-fate</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-fate</guid>
      <description>Harel statecharts in Go — hierarchy, parallel regions, history, guards and delayed transitions. Zero dependencies, deterministic, and snapshots that restore exactly, including inside Temporal workflows.</description>
      <pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate>
      <category>go</category>
      <category>statechart</category>
      <category>state-machine</category>
      <category>scxml</category>
      <category>xstate</category>
      <category>library</category>
    </item>
    <item>
      <title>Dactyl Manuform: The Board Before ArkButton</title>
      <link>https://arisjirat.com/gear/setup-dactyl-manuform-keyboard</link>
      <guid isPermaLink="true">https://arisjirat.com/gear/setup-dactyl-manuform-keyboard</guid>
      <description>The handwired split keyboard I used before going wireless. Sculpted case, two Pro Micro ATmega32U4s, a TRRS cable — and QMK firmware that, honestly, never shipped.</description>
      <pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate>
      <category>keyboard</category>
      <category>qmk</category>
      <category>handwired</category>
      <category>ergonomic</category>
      <category>dactyl-manuform</category>
      <category>pro-micro</category>
      <category>split-keyboard</category>
    </item>
    <item>
      <title>Homelab: The GitOps That Deploys This Site</title>
      <link>https://arisjirat.com/gear/setup-homelab</link>
      <guid isPermaLink="true">https://arisjirat.com/gear/setup-homelab</guid>
      <description>Kubernetes on k3d at home, exposed through a VPS and a WireGuard tunnel, with ArgoCD pulling changes from Git. Including the page you&apos;re reading.</description>
      <pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate>
      <category>kubernetes</category>
      <category>k3d</category>
      <category>argocd</category>
      <category>gitops</category>
      <category>grafana</category>
      <category>prometheus</category>
      <category>wireguard</category>
      <category>caddy</category>
      <category>vault</category>
      <category>docker</category>
    </item>
    <item>
      <title>Dotfiles: Workstation Bootstrap with GNU Stow</title>
      <link>https://arisjirat.com/gear/setup-dotfiles</link>
      <guid isPermaLink="true">https://arisjirat.com/gear/setup-dotfiles</guid>
      <description>Terminal, editor, and macOS window-manager config managed via GNU Stow + Homebrew Bundle — clone, run one script, machine ready.</description>
      <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
      <category>dotfiles</category>
      <category>stow</category>
      <category>homebrew</category>
      <category>macos</category>
      <category>neovim</category>
      <category>tmux</category>
      <category>ghostty</category>
      <category>aerospace</category>
      <category>zsh</category>
    </item>
    <item>
      <title>Dirty Ceramic Floor Detection</title>
      <link>https://arisjirat.com/research/project-pcd</link>
      <guid isPermaLink="true">https://arisjirat.com/research/project-pcd</guid>
      <description>This project aims to distinguish between **clean** and **dirty** ceramic floor conditions using digital image processing techniques.</description>
      <pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate>
      <category>image-processing</category>
      <category>computer-vision</category>
      <category>python</category>
    </item>
    <item>
      <title>Lemme</title>
      <link>https://arisjirat.com/projects/project-lemme</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-lemme</guid>
      <description>Lemme is an AI-assisted quiz app. Users upload screenshots of quizzes, OCR extracts the question text, and multiple LLM providers generate candidate answers along with their reasoning...</description>
      <pubDate>Sat, 20 Sep 2025 00:00:00 GMT</pubDate>
      <category>go</category>
      <category>fiber</category>
      <category>solidjs</category>
      <category>ocr</category>
      <category>llm</category>
      <category>redis</category>
      <category>mysql</category>
    </item>
    <item>
      <title>gostudentubl</title>
      <link>https://arisjirat.com/projects/project-gostudentubl</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-gostudentubl</guid>
      <description>Automated attendance runner for Moodle-based courses with scheduled execution.</description>
      <pubDate>Fri, 29 Aug 2025 00:00:00 GMT</pubDate>
      <category>go</category>
      <category>automation</category>
      <category>moodle</category>
      <category>docker</category>
      <category>cron</category>
    </item>
    <item>
      <title>A Plane-Geometry Android App (CLI-friendly)</title>
      <link>https://arisjirat.com/projects/project-tugas_mp</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-tugas_mp</guid>
      <description>A simple Android app built for educational purposes. Calculates the area and perimeter of basic 2D shapes like squares, rectangles, and triangles.</description>
      <pubDate>Sun, 06 Jul 2025 00:00:00 GMT</pubDate>
      <category>android</category>
      <category>mobile</category>
      <category>java</category>
      <category>gradle</category>
    </item>
    <item>
      <title>Workspacebook: A Campus Mobile Client in Flutter + Supabase</title>
      <link>https://arisjirat.com/projects/project-workspace-mobile-kampus</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-workspace-mobile-kampus</guid>
      <description>A Flutter app for campus use with Supabase for auth and backend — including the OAuth flow that has to be reconfigured every time the environment moves.</description>
      <pubDate>Fri, 04 Jul 2025 00:00:00 GMT</pubDate>
      <category>flutter</category>
      <category>dart</category>
      <category>supabase</category>
      <category>oauth</category>
      <category>mobile</category>
    </item>
    <item>
      <title>wa-bot-notif</title>
      <link>https://arisjirat.com/projects/project-wa-bot-notif</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-wa-bot-notif</guid>
      <description>WhatsApp notification service — Go + whatsmeow.</description>
      <pubDate>Mon, 23 Jun 2025 00:00:00 GMT</pubDate>
      <category>go</category>
      <category>whatsapp</category>
      <category>whatsmeow</category>
      <category>notifications</category>
      <category>rest-api</category>
      <category>sqlite</category>
    </item>
    <item>
      <title>otm: One-Time Messages</title>
      <link>https://arisjirat.com/projects/project-otm</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-otm</guid>
      <description>Paste a message, get one link, and the link dies once it&apos;s opened. Go + chi + SQLite, with layered encryption: a random key per message, and that key itself encrypted with a master key.</description>
      <pubDate>Sat, 14 Jun 2025 00:00:00 GMT</pubDate>
      <category>go</category>
      <category>chi</category>
      <category>sqlite</category>
      <category>aes-gcm</category>
      <category>encryption</category>
      <category>self-hosted</category>
    </item>
    <item>
      <title>busgo: A Bus Ticket Booking Flow in Flutter</title>
      <link>https://arisjirat.com/projects/project-busgo</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-busgo</guid>
      <description>A UI prototype for booking bus tickets — search, pick a bus, pick a seat, enter passenger details, pay, ticket. Flutter with Riverpod and go_router, no backend.</description>
      <pubDate>Fri, 13 Jun 2025 00:00:00 GMT</pubDate>
      <category>flutter</category>
      <category>dart</category>
      <category>riverpod</category>
      <category>go-router</category>
      <category>ui</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Attendance App</title>
      <link>https://arisjirat.com/projects/project-aplikasi_absen</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-aplikasi_absen</guid>
      <description>This app was built by the Mobile Programming group using Flutter.</description>
      <pubDate>Wed, 04 Jun 2025 00:00:00 GMT</pubDate>
      <category>attendance</category>
      <category>mobile</category>
    </item>
    <item>
      <title>A Course Management System in PHP and MySQL</title>
      <link>https://arisjirat.com/projects/project-php</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-php</guid>
      <description>A simple web app for managing course data using PHP and MySQL. Supports **CRUD (Create, Read, Update, Delete)** operations with a si...</description>
      <pubDate>Tue, 13 May 2025 00:00:00 GMT</pubDate>
      <category>php</category>
      <category>mysql</category>
      <category>crud</category>
      <category>tailwind</category>
      <category>coursework</category>
    </item>
    <item>
      <title>Marcom Services: The Bun + Elysia API Behind the Marcom Dashboard</title>
      <link>https://arisjirat.com/projects/project-marcom_services</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-marcom_services</guid>
      <description>The Marcom dashboard&apos;s backend — Elysia on the Bun runtime, MySQL, JWT, Socket.IO on a separate port, and an expiry cron triggered over HTTP.</description>
      <pubDate>Fri, 25 Apr 2025 00:00:00 GMT</pubDate>
      <category>bun</category>
      <category>elysia</category>
      <category>typescript</category>
      <category>mysql</category>
      <category>rest-api</category>
      <category>socket-io</category>
    </item>
    <item>
      <title>Marcom: A Marketing Communications Material Dashboard</title>
      <link>https://arisjirat.com/projects/project-marcom</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-marcom</guid>
      <description>An internal dashboard for tracking marketing communications material by brand, cluster, feature, and type — with expiry reminders and realtime updates. Next.js 15 + React 19 on the front, Bun + Elysia behind it.</description>
      <pubDate>Tue, 11 Feb 2025 00:00:00 GMT</pubDate>
      <category>nextjs</category>
      <category>react</category>
      <category>typescript</category>
      <category>dashboard</category>
      <category>tanstack-query</category>
      <category>zustand</category>
      <category>socket-io</category>
    </item>
    <item>
      <title>beepresent: A CLI and API for the Campus Course Portal</title>
      <link>https://arisjirat.com/projects/project-beepresent</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-beepresent</guid>
      <description>A course-portal scraper wrapped as an API and a CLI — course lists, assignments, quizzes, and attendance submission, with a one-week cache because the data barely moves.</description>
      <pubDate>Wed, 06 Nov 2024 00:00:00 GMT</pubDate>
      <category>typescript</category>
      <category>bun</category>
      <category>cheerio</category>
      <category>scraping</category>
      <category>cli</category>
      <category>rest-api</category>
    </item>
    <item>
      <title>Module 7: Exploring Computer Input and Output</title>
      <link>https://arisjirat.com/research/study-device-input-output</link>
      <guid isPermaLink="true">https://arisjirat.com/research/study-device-input-output</guid>
      <description>Exploring computer input and output devices and peripherals</description>
      <pubDate>Mon, 09 Oct 2023 00:00:00 GMT</pubDate>
      <category>input-output</category>
      <category>peripherals</category>
      <category>keyboard</category>
      <category>mouse</category>
      <category>printer</category>
      <category>monitor</category>
    </item>
    <item>
      <title>Module 5: Digital Security, Ethics, and Privacy in Introduction to Information Technology</title>
      <link>https://arisjirat.com/research/study-digital-security</link>
      <guid isPermaLink="true">https://arisjirat.com/research/study-digital-security</guid>
      <description>Digital security, ethics, and privacy in information technology</description>
      <pubDate>Mon, 09 Oct 2023 00:00:00 GMT</pubDate>
      <category>security</category>
      <category>privacy</category>
      <category>malware</category>
      <category>ethics</category>
      <category>phishing</category>
      <category>green-computing</category>
    </item>
    <item>
      <title>Summary: Discussion in the First Chapter</title>
      <link>https://arisjirat.com/research/study-mid-summarize</link>
      <guid isPermaLink="true">https://arisjirat.com/research/study-mid-summarize</guid>
      <description>Summary and review of key topics from the first chapters</description>
      <pubDate>Mon, 09 Oct 2023 00:00:00 GMT</pubDate>
      <category>summary</category>
      <category>review</category>
      <category>hardware</category>
      <category>storage-units</category>
      <category>terminology</category>
    </item>
    <item>
      <title>Module 4: Programs and Applications: Roles, Types, and Security in Information Technology</title>
      <link>https://arisjirat.com/research/study-program-apps</link>
      <guid isPermaLink="true">https://arisjirat.com/research/study-program-apps</guid>
      <description>Programs and applications: roles, types, and security in IT</description>
      <pubDate>Mon, 09 Oct 2023 00:00:00 GMT</pubDate>
      <category>software</category>
      <category>applications</category>
      <category>operating-systems</category>
      <category>open-source</category>
      <category>security-tools</category>
    </item>
    <item>
      <title>Module 6: Computer Components in Introduction to Information Technology</title>
      <link>https://arisjirat.com/research/study-component-of-computer</link>
      <guid isPermaLink="true">https://arisjirat.com/research/study-component-of-computer</guid>
      <description>Computer components inside the casing and data representation systems</description>
      <pubDate>Mon, 02 Oct 2023 00:00:00 GMT</pubDate>
      <category>hardware</category>
      <category>cpu</category>
      <category>memory</category>
      <category>binary</category>
      <category>data-representation</category>
    </item>
    <item>
      <title>Module 8: Data Storage in Computers and Cloud Devices: A Complete Guide</title>
      <link>https://arisjirat.com/research/study-storage</link>
      <guid isPermaLink="true">https://arisjirat.com/research/study-storage</guid>
      <description>Data storage in computers and cloud devices: a complete guide</description>
      <pubDate>Mon, 02 Oct 2023 00:00:00 GMT</pubDate>
      <category>storage</category>
      <category>hard-drive</category>
      <category>ssd</category>
      <category>cloud-storage</category>
      <category>nas</category>
      <category>backup</category>
    </item>
    <item>
      <title>Module 3: Buying Guidelines and Characteristics of Technology Devices — A Module Covering Various Types and Key Aspects</title>
      <link>https://arisjirat.com/research/study-computer-devices</link>
      <guid isPermaLink="true">https://arisjirat.com/research/study-computer-devices</guid>
      <description>Buying guide and characteristics of various technology devices</description>
      <pubDate>Tue, 12 Sep 2023 00:00:00 GMT</pubDate>
      <category>devices</category>
      <category>hardware</category>
      <category>purchasing-guide</category>
      <category>cloud-computing</category>
      <category>maintenance</category>
    </item>
    <item>
      <title>Module 2: Awareness in the Digital Era: Preventing the Spread of Hoaxes and Digital Crime</title>
      <link>https://arisjirat.com/research/study-digital-era</link>
      <guid isPermaLink="true">https://arisjirat.com/research/study-digital-era</guid>
      <description>Awareness in the digital era: preventing hoax and digital crime</description>
      <pubDate>Tue, 12 Sep 2023 00:00:00 GMT</pubDate>
      <category>digital-literacy</category>
      <category>hoax-prevention</category>
      <category>cybercrime</category>
      <category>fact-checking</category>
    </item>
    <item>
      <title>Module 1: Introduction to Basic Computer Concepts and Their Use in Society</title>
      <link>https://arisjirat.com/research/study-basic-computer</link>
      <guid isPermaLink="true">https://arisjirat.com/research/study-basic-computer</guid>
      <description>Introduction to basic computer concepts and their role in modern society</description>
      <pubDate>Mon, 11 Sep 2023 00:00:00 GMT</pubDate>
      <category>computer-basics</category>
      <category>hardware</category>
      <category>internet</category>
      <category>digital-security</category>
    </item>
    <item>
      <title>ALGO3 - Graph (Adjacency Matrix, C)</title>
      <link>https://arisjirat.com/projects/project-algo3</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-algo3</guid>
      <description>This repository is prepared for the ALGO3 teaching pattern based on:</description>
      <category>algorithms</category>
      <category>graph</category>
      <category>c-programming</category>
    </item>
    <item>
      <title>Cisco Packet Tracer Learning Course</title>
      <link>https://arisjirat.com/projects/project-network</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-network</guid>
      <description>This folder is organized as a hands-on course for learning computer networking with Cisco Packet Tracer.</description>
      <category>networking</category>
      <category>cisco</category>
      <category>packet-tracer</category>
    </item>
    <item>
      <title>test_presence: GPS-Validated Employee Attendance</title>
      <link>https://arisjirat.com/projects/project-test_presence</link>
      <guid isPermaLink="true">https://arisjirat.com/projects/project-test_presence</guid>
      <description>An attendance app with geolocation-validated check-in and a leave-request flow. Go + SQLite backend, React front end with a map preview of the office radius.</description>
      <category>go</category>
      <category>react</category>
      <category>sqlite</category>
      <category>geolocation</category>
      <category>attendance</category>
    </item>
  </channel>
</rss>
