<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Rahul Vishwakarma (rahulxf)</title><description>Technical articles on software supply chain security, in-toto, aflock, Kubernetes, Go, and open source.</description><link>https://rahulxf.com/</link><language>en</language><item><title>Introducing aflock: package-lock.json, but for AI agents</title><link>https://rahulxf.com/blog/introducing-aflock-package-lock-json-but-for-ai-agents/</link><guid isPermaLink="true">https://rahulxf.com/blog/introducing-aflock-package-lock-json-but-for-ai-agents/</guid><description>A short introduction to aflock, a system for constraining AI agents with signed policies and verifying their behavior with cryptographically signed in-toto attestations.</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate><category>AI Security</category><category>AI Agents</category><category>MCP</category><category>Open Source</category><category>Attestations</category></item><item><title>Why I Joined TestifySec and Contribute to Witness &amp; Archivista</title><link>https://rahulxf.com/blog/why-i-joined-testifysec-and-contribute-to-witness-archivista/</link><guid isPermaLink="true">https://rahulxf.com/blog/why-i-joined-testifysec-and-contribute-to-witness-archivista/</guid><description>Why I decided to join TestifySec, explore software supply chain security more deeply, and contribute to Witness and Archivista under the in-toto ecosystem.</description><pubDate>Sat, 11 Oct 2025 00:00:00 GMT</pubDate><category>Software Supply Chain</category><category>DevSecOps</category><category>in-toto</category><category>TestifySec</category></item><item><title>Creating an Alpine package for a Go application — APKBUILD</title><link>https://rahulxf.com/blog/creating-an-alpine-package-for-a-go-application-apkbuild/</link><guid isPermaLink="true">https://rahulxf.com/blog/creating-an-alpine-package-for-a-go-application-apkbuild/</guid><description>A practical walkthrough for packaging a simple Go application for Alpine Linux using APKBUILD, from setup and checksums to building and submitting.</description><pubDate>Wed, 27 Aug 2025 00:00:00 GMT</pubDate><category>Linux</category><category>Alpine</category><category>Go</category><category>Packaging</category><category>DevOps</category></item><item><title>Introduction to Witness: Verifying Software Supply Chain Attestations</title><link>https://rahulxf.com/blog/introduction-to-witness-verifying-software-supply-chain-attestations/</link><guid isPermaLink="true">https://rahulxf.com/blog/introduction-to-witness-verifying-software-supply-chain-attestations/</guid><description>A practical introduction to Witness: generating keys, recording attestations, signing policy, and verifying a simple Go binary against supply chain requirements.</description><pubDate>Sat, 23 Aug 2025 00:00:00 GMT</pubDate><category>in-toto</category><category>Witness</category><category>Software Supply Chain</category><category>Security</category><category>Attestation</category></item><item><title>Alpine Linux Package Manager: apk Commands, Install, Update &amp; Search</title><link>https://rahulxf.com/blog/alpine-linux-package-management-practice/</link><guid isPermaLink="true">https://rahulxf.com/blog/alpine-linux-package-management-practice/</guid><description>A hands-on overview of Alpine package management with apk, including update, add, delete, search, inspect, verify, and graphing package dependencies.</description><pubDate>Mon, 28 Jul 2025 00:00:00 GMT</pubDate><category>Linux</category><category>Package Management</category><category>Alpine Linux</category><category>Systems</category></item><item><title>CRUD K8s Deployment Implementation using client-go and k8s io api</title><link>https://rahulxf.com/blog/crud-k8s-deployment-implementation-using-client-go-and-k8s-io-api/</link><guid isPermaLink="true">https://rahulxf.com/blog/crud-k8s-deployment-implementation-using-client-go-and-k8s-io-api/</guid><description>A practical walkthrough for implementing create, read, update, and delete operations for Kubernetes Deployments using client-go, Gin, and YAML input handling.</description><pubDate>Thu, 20 Feb 2025 00:00:00 GMT</pubDate><category>Go</category><category>Kubernetes</category><category>client-go</category><category>API</category><category>Controller</category></item><item><title>Websocket and Informer Implementation in Golang (Custom K8s Controller)</title><link>https://rahulxf.com/blog/websocket-and-informer-implementation-in-golang-custom-k8s-controller/</link><guid isPermaLink="true">https://rahulxf.com/blog/websocket-and-informer-implementation-in-golang-custom-k8s-controller/</guid><description>A walkthrough of using Kubernetes informers and a workqueue to stream deployment changes over WebSocket in a custom Go controller.</description><pubDate>Tue, 18 Feb 2025 00:00:00 GMT</pubDate><category>Go</category><category>Kubernetes</category><category>Informer</category><category>WebSocket</category><category>Controller</category></item><item><title>Informer implementation with the NewSharedInformerFactoryWithOptions</title><link>https://rahulxf.com/blog/informer-implementation-with-newsharedinformerfactorywithoptions/</link><guid isPermaLink="true">https://rahulxf.com/blog/informer-implementation-with-newsharedinformerfactorywithoptions/</guid><description>A focused look at scoping Kubernetes informers to a specific deployment and streaming targeted workload updates over WebSocket.</description><pubDate>Tue, 18 Feb 2025 00:00:00 GMT</pubDate><category>Go</category><category>Kubernetes</category><category>Informer</category><category>WebSocket</category><category>client-go</category></item><item><title>Understanding WebRTC: Building a Real-Time Interactive Portal</title><link>https://rahulxf.com/blog/understanding-webrtc-building-a-real-time-interactive-portal/</link><guid isPermaLink="true">https://rahulxf.com/blog/understanding-webrtc-building-a-real-time-interactive-portal/</guid><description>A guide to building a WebRTC-based collaborative portal with video, screen sharing, messaging, file transfer, Monaco, and Yjs-powered collaboration.</description><pubDate>Sun, 15 Dec 2024 00:00:00 GMT</pubDate><category>WebRTC</category><category>JavaScript</category><category>Real Time Communication</category><category>P2P</category><category>Tutorial</category></item><item><title>WebScraping Using Puppeteer</title><link>https://rahulxf.com/blog/webscraping-using-puppeteer/</link><guid isPermaLink="true">https://rahulxf.com/blog/webscraping-using-puppeteer/</guid><description>Notes from experimenting with Puppeteer, stealth plugins, randomized user agents, and scraping tweet content in a more resilient way.</description><pubDate>Sun, 15 Dec 2024 00:00:00 GMT</pubDate><category>Puppeteer</category><category>Web Scraping</category><category>TypeScript</category><category>Automation</category></item><item><title>Generate Random User Agent - Custom Script</title><link>https://rahulxf.com/blog/generate-random-user-agent-custom-script/</link><guid isPermaLink="true">https://rahulxf.com/blog/generate-random-user-agent-custom-script/</guid><description>A small custom TypeScript utility for generating newer, randomized browser user agents instead of relying on stale package defaults.</description><pubDate>Thu, 19 Dec 2024 00:00:00 GMT</pubDate><category>TypeScript</category><category>Automation</category><category>NPM</category><category>User Agent</category></item></channel></rss>