// writing
Notes and write-ups
everything tagged golang

Building a USB HID Device with Raspberry Pi Pico and TinyGo
This project explores the construction of a custom USB controller using a Raspberry Pi Pico and the TinyGo programming language. By leveraging the Human Interface Device protocol, the device captures physical button presses—such as short, double, and long triggers—and translates them into customizable reports. These events are then processed by a host-side application, which executes user-defined Lua scripts to perform actions like system commands.

Extending your application with Lua scripts
Lua is a lightweight scripting language well-suited for embedding directly into applications to handle custom logic. By integrating a Lua VM, host programs gain the ability to execute user scripts while controlling access to system resources. This approach allows developers to extend application functionality without increasing overall architectural complexity.

Novus just got better (again)
The latest release of Novus introduces a new command designed to streamline administrative tasks by enabling passwordless sudo access with security constraints. This update also adds improved operational transparency, helpful UI feedback for long-running processes, and support for quick domain definitions. These enhancements aim to refine the development workflow for those managing local server environments.

How to use sudo without a password in your programs
Automating tasks that require elevated privileges often leads to repetitive and annoying password prompts. By configuring specific entries in the sudoers file, developers can enable password-less execution for targeted scripts or binaries. This approach requires careful implementation to prevent security vulnerabilities and privilege escalation risks.

Novus v0.0.4 released 🚀
This release of the local HTTPS proxy tool introduces a web-based dashboard and improved service management to simplify development workflows. The update resolves configuration validation issues and refines how background services are monitored and restarted. Users can now enjoy a more robust interface and better error handling when setting up local development domains.

Publishing a Go binary with Homebrew
Making software accessible via package managers like Homebrew streamlines the distribution process for developers. This post covers the workflow to build, release, and distribute Go binaries as a custom Homebrew tap. It also explores automating the entire release lifecycle to simplify version updates.

Introducing Novus - a local HTTPS proxy for better developer experience
Managing multiple local development services often requires complicated handling of ports, DNS settings, and SSL certificates. This utility simplifies that process by automatically configuring local proxies to serve development projects over custom HTTPS domains. It reduces environment configuration overhead, allowing for a more consistent and production-like experience during local testing.