Hard constraints beat soft self-regulation when an LLM's reasoning converges to a template.
Blog
Technical posts about AI, Web3, and software development.
2025
Why creating ADRs during development, not before it, leads to more honest and valuable documentation of your architectural decisions.
Welcome to my new blog powered by Next.js and Nextra
A debugging session reveals why your gut feeling about 'two sets of items' was right - and how to guide AI toward simpler, better solutions.
Replace style copying with principled search: explore a multi-dimensional voice space and use Pareto-optimal selection to shape an original AI voice.
A technical deep-dive into how we avoided a risky database migration by choosing an additive strategy for adding Simplified Chinese support to our Traditional Chinese implementation.
My experience with Claude Code's productivity gains, the double-edged sword of rapid development, and lessons learned from over-engineering features.
Exploring why Mem0's default LLM prompts are overly restrictive, causing the `infer=True` mode to filter out too much content. Includes root cause analysis and practical solutions for less aggressive memory management.
Quick guide to configure browser-tools-mcp AgentDeskAI with Claude Code - solving connection issues and getting your MCP server properly integrated.
The standard DSPy OpenRouter integration lacks failover and proper app attribution. Here's how to fix it with custom headers to get automatic model failover and your own app name on OpenRouter leaderboards.
A step-by-step guide to integrating RevenueCat Web Billing in a plain React/Next.js app. Covers account setup, SDK usage, code samples, and key gotchas for a smooth subscription experience.
A dive into debugging service worker caching and update notifications for new pages in a Jekyll site, ensuring the 'Content Refresh' toast works as expected.
A technical exploration of 'Futures Thinking,' a potential experimental feature for 8-Bit Oracle, looking at a Triple Hex Mode and AI-driven scenario mapping.
Building the Android frontend for FIDO2 passkeys: tackling CredentialManager, migrating DataStore, and the joys of debugging in Jetpack Compose.
A developer's journey through the challenges of implementing FIDO2 passkeys for an Android app using Python, covering assetlinks.json, data serialization, and Base64URL encoding.
A developer's guide to deploying a CosmWasm smart contract on the Stargaze testnet, covering environment setup, starsd CLI usage, contract uploading, instantiation, and Rust version considerations.
Deep dive into recent Bonsol framework improvements: a new I Ching sample dApp, RISC0_DEV_MODE integration for faster development, and custom S3 URL support for artifact flexibility.
Integrated OriginTrail DKG with Eliza AI and a custom divination backend, enabling on-chain persistence of divinations via a Telegram bot.
An exploration of using the I-Ching's King Wen sequence as a potential framework for self-directed learning in AGI. Details the thought process, key insights, and implications for AI development, including a link to a research paper.
2024
Detailing significant enhancements to the ai16z Eliza AI project, focusing on local-first capabilities, model optimization, and backend stability.
An overview of Zustand as an efficient state management library for React, highlighting its benefits over traditional methods (refs, Context API) for managing user state, simplifying code, and minimizing re-renders.
A guide to minimizing re-renders and optimizing performance in React/Next.js applications with authentication. Covers combining state, memoizing context with useMemo, tracking state changes with useRef, debouncing, and optimizing useEffect dependencies.
A guide to conditionally rendering components, like a footer, in a Next.js 14 (App Router) application by bridging server and client components using React Context API and usePathname.
A developer's experience integrating Shadcn UI components into a Next.js project. Covers project preparation, handling opinionated styling (dark theme, New York style), managing global CSS, and an example root layout incorporating ThemeProvider and Toaster.
A detailed guide to troubleshooting and configuring Fail2Ban with UFW for robust SSH security. Covers iptables rule order, jail.local setup, persistent bans, and ensuring proper cleanup of rules on service restart.
A developer's journey through UI framework choices, from Bootstrap to Next.js with Shadcn/ui. Discusses the pros and cons of component libraries like Shadcn (built on Radix UI and Tailwind CSS) versus traditional UI frameworks, and touches on project MVP plans.
Explores client-side vs. server-side authentication using Supabase with Next.js 14 (App Router). Covers Google OAuth2 (client-side flow with createBrowserClient) and Magic Link (server-side flow with createServerClient), and clarifies Supabase Auth-UI usage.
Details on setting up authentication and database for the 8-Bit Oracle project using Next.js, Supabase (with Auth-UI for OAuth2), and Tailwind CSS. Discusses choices like Supabase over Firebase and future consideration of Web3Auth.
A developer's comparison of using Claude Opus and GPT-4 (via Cursor.sh) as AI coding assistants, particularly when working with Next.js App Router vs. Pages Router and handling framework updates.
A developer's notes and tips on implementing a smooth, multi-paragraph typing effect in React with a skip animation feature. Covers state management, DOM manipulation alternatives, event handling, and internationalization with react-i18next.
An analysis of using Chainlink VRF for I-Ching divination, comparing it to traditional methods and other randomness generation techniques like PRNGs and client-side randomness. Discusses pros, cons, and includes JavaScript examples for hexagram generation with changing lines.
Troubleshooting common Webpack issues, including double script loading due to manual and Webpack config imports, and resolving Flash of Unstyled Content (FOUC) by correctly setting production mode with cross-env and configuring MiniCssExtractPlugin.
A quick developer tip: If your React useEffect hook seems to run twice in Next.js development mode, Hot Module Reloading (HMR) might be the reason. Here's why and how to verify.
A project idea to create Fortune-Telling NFTs by integrating the ancient wisdom of the I-Ching (Yin/Yang, Trigrams, Hexagrams) with modern blockchain technology. I explore the cultural and personal motivations, the envisioned fortune-telling process, and potential Web3 integrations.
My initial thoughts on designing an AI service that can analyze and critique uploaded photos. I explore a multi-stage approach using CNNs, CLIP, and LLMs for metadata extraction, image understanding, and generating constructive feedback.
A step-by-step guide to diagnosing and fixing network connection problems between a Dockerized Spring Boot app on AWS EC2 and an RDS Postgres database. Learn to use nslookup, nc, psql for troubleshooting, and how to configure Docker DNS for private AWS VPC name resolution.
My developer notes on quickly getting to grips with JWT authentication and data persistence in Spring Boot 3. I cover my experiences with Spring Security, the power of JPA annotations for entity management, stateless sessions with JWT, and BCrypt password encryption, contrasting it with older Java EE approaches.
Some brainstorming on using AI to transcribe family stories shared at gatherings. I'm thinking about detecting narrators, mapping complex family relationships, and even visualizing our family history as an interactive graph.
My experience implementing Retrieval Augmented Generation (RAG) and AI Agents with Haystack 1.x. I cover conversational memory, creating custom data pipelines using FAISS DocumentStore, integrating Google Search, and the challenges of incrementally indexing new knowledge.
My practical tips and experiences from working with the Haystack LLM framework. I cover version differences (1.x vs. 2.x beta), the benefits of developing with a forked repository, managing Python dependencies for projects like this, and how to contribute back to open-source.
2023
A guide on dramatically improving GPT-J-6B inference speed. I'll show you how I converted a Hugging Face model from its standard format to GGML, slashing wait times from minutes to seconds on my own machine. Covers the conversion process, memory needs, and running the optimized model.
Exploring the difficulties in finding truly uncensored AI models. I discuss the influence of OpenAI's data and look at methods for fine-tuning base models to remove built-in limitations or refusals, mentioning my experiences with some specific models.
A breakdown of a helpful Reddit discussion on AI model formats like GGUF, GGML, and tools such as Llama.cpp and Hugging Face Transformers. I add my own notes on GGML quantization and summarize the key takeaways for navigating this complex landscape.