justin3go Blog and Notes
website·Indexed 33 days ago
https://justin3go.comA collection of technical articles and study notes covering Node.js internals (module loading, memory control, event-driven architecture), Rust programming, Vue 3 reactivity, Three.js, and frontend engineering with Vite. The site also features research on AI Agent memory architectures, the Google Agent2Agent (A2A) protocol, and practical guides on context compaction in CLI Agents like Claude Code and OpenCode.
What's inside justin3go
- nuxtui is a UI library built with Headless UI and Tailwind CSS specifically for Nuxt. It features HMR support via Nuxt App Config, built-in dark mode, LTR/RTL language support, keyboard shortcuts, bundled icons, and full TypeScript support.
Overview of Vue 3 core internal modules
Vue 3 is built upon three primary modules:
- Reactive Module: Responsible for tracking and observing data changes and triggering corresponding updates.
- Compiler Module: Converts HTML templates into JavaScript render functions. This allows browsers to receive and execute render functions directly.
- Render Module: Manages the lifecycle of turning VNodes into actual DOM, consisting of three phases: Render Phase, Mount Phase, and Patch Phase.
Overview of common HTTP request methods
Summary of standard HTTP methods:
GET: Retrieve data from the server.POST: Submit an entity to a resource, typically modifying server state.PUT: Upload files or update existing data.DELETE: Remove a specified resource from the server.HEAD: Same as GET but returns only the response headers, not the body.OPTIONS: Check supported methods or perform CORS preflight.CONNECT: Establish a tunnel to a proxy server for TCP communication.TRACE: Echo the request back to the client for diagnostic purposes.
Overview of radix-vue UI library
radix-vue is an unstyled, accessible UI library for Vue and Nuxt. It is designed for building design systems and web applications where developer experience and customization are priorities. Key features include WAI-ARIA compliance, keyboard navigation, and focus management.Overview of daisyUI Tailwind CSS plugin
daisyUI is a plugin for Tailwind CSS that adds component classes (e.g., for buttons, cards) to the framework. Unlike traditional UI libraries, it does not require JS bundles and works with any JS framework. It reduces the amount of utility classes needed in HTML and provides a theme generator and CSS-variable-based color names for easy dark mode and custom theming.Overview of Greedy Algorithms
A greedy algorithm makes the locally optimal choice at each step with the hope of finding a global optimum. While easy to implement, they are not effective for all problems. For example, in the Classroom Scheduling problem, selecting the course that ends earliest leads to an optimal solution, whereas selecting the course with the shortest duration or the earliest start time does not.Overview of HUNT0 launch directory
HUNT0 is a community-driven launch directory for makers and indie hackers designed to turn product shipping into a structured event. The platform follows a core loop of launch → discover → vote → discuss → recap/reward. Key features include time-based leaderboards, reputation-weighted voting to reduce noise, and a structured submission workflow.Overview of Unit Testing in NestJS with Jest
Unit testing in NestJS involves verifying the smallest testable units of a software system, typically individual functions or methods. By leveraging the 'definiteness' of algorithms—where the same input consistently produces the same output—developers can automate the verification of code logic. This process acts as a quality gate, ensuring that new changes do not break existing functionality (regression testing) and providing a safety net for developers who may not be familiar with the entire codebase.Overview of Greedy Algorithms
A greedy algorithm makes the locally optimal choice at each step with the hope of finding a global optimum. While easy to implement, greedy algorithms are not effective for all problems. For example, in the classroom scheduling problem, selecting the course that ends earliest leads to an optimal solution, whereas selecting the course with the shortest duration or the earliest start time does not.Overview of WebSocket for full-duplex communication
WebSocket is an application-layer protocol providing full-duplex communication between a browser and a server. It is based on TCP and reuses the HTTP handshake process to establish a persistent connection.
Key Characteristics:
- Bidirectional: Both server and client can push messages actively.
- Efficient: Lightweight data format with lower overhead than HTTP polling.
- Flexible: Supports both text and binary data.
- Compatible: Uses default ports 80 and 443 and starts with an HTTP handshake, making it compatible with most HTTP proxies.
- No Same-Origin Restriction: Clients can communicate with any server regardless of origin.
Overview of Access Control Models (DAC, MAC, RBAC, RuBAC, ABAC)
Access control models determine how users (subjects) are granted permissions to access resources (objects). Common models include:
- DAC (Discretionary Access Control): The owner of the resource has full control and can grant or revoke access at their discretion. Flexible but difficult to manage centrally.
- MAC (Mandatory Access Control): Access is centrally managed by a system administrator based on strict policies. High security, but rigid and high administrative overhead for complex permissions.
- RBAC (Role-Based Access Control): Decouples users from permissions by introducing 'Roles'. Users are assigned roles, and roles are assigned permissions. This is the most popular model for modern applications.
- RuBAC (Rule-Based Access Control): Uses specific rules to determine access, allowing for finer-grained control than roles alone.
- ABAC (Attribute-Based Access Control): Grants access based on attributes (user, resource, and environmental attributes).
Overview of the Three.js Animation System
The Three.js animation system acts as an animation mixing board, allowing developers to animate almost any property of an object, including position, scale, rotation, material colors, opacity, skinned mesh bones, and morph targets. It uses keyframes to define specific values at specific times and employs interpolation (tweening) to fill the gaps between those keyframes.