41554 blogs · [ { "id": "01a08721-a07a-7020-879b-fb631b416de8", "title": "Kikitori-bench: A Personal ASR Benchmark for Voice Journaling", "url": "https://ainoya.dev/posts/kikitori-bench-a-personal-asr-benchmark-for-voice-journaling/", "published_at": "2026-09-09T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb631c2b28fb", "title": "Building Ayumi and Kitae: Local-First Apps for Myself", "url": "https://ainoya.dev/posts/building-ayumi-and-kitae-local-first-apps-for-myself/", "published_at": "2026-08-06T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb631d1b795e", "title": "Why Pull Requests Should Be Reviewed the Moment They're Submitted: Four Classical Lenses and the AI-Era Twist", "url": "https://ainoya.dev/posts/pr-review-timing-in-the-ai-era/", "published_at": "2026-04-22T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb631dc984e1", "title": "The Stochastic Bricoleur: What Lévi-Strauss Can Teach Us About Building Software with LLMs", "url": "https://ainoya.dev/posts/the-stochastic-bricoleur-what-l-vi-strauss-can-teach-us-about-building-software-with-llms/", "published_at": "2026-03-28T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb631ddaa3d4", "title": "Building and Maintaining the Pokke Docs with Starlight and LLMs", "url": "https://ainoya.dev/posts/building-and-maintaining-the-pokke-docs-with-starlight-and-llms/", "published_at": "2026-02-26T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb631e29a98b", "title": "A Simple but Powerful Bookmark Feature: Routing Prompts to Your Own AI Subscriptions", "url": "https://ainoya.dev/posts/a-simple-but-powerful-bookmark-feature-routing-prompts-to-your-own-ai-subscriptions/", "published_at": "2026-02-19T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb631e7b5c7e", "title": "Building a Digital Toy for Children Without Writing a Single Line of Code", "url": "https://ainoya.dev/posts/building-a-digital-toy-for-children-without-writing-a-single-line-of-code/", "published_at": "2026-02-15T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb631eb3028a", "title": "The Flow of Invisible Transcription", "url": "https://ainoya.dev/posts/the-flow-of-invisible-transcription/", "published_at": "2026-02-04T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb631ef816b3", "title": "Cursor MCP OAuth Error: Fix 'Invalid OAuth Error Response'", "url": "https://ainoya.dev/posts/fixing-invalid-oauth-error-response-when-connecting-cursor-to-a-custom-mcp-server/", "published_at": "2026-01-12T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb631f086da4", "title": "Turning My Bookmark Service into a Personal AI Librarian with MCP", "url": "https://ainoya.dev/posts/turning-my-bookmark-service-into-a-personal-ai-librarian-with-mcp/", "published_at": "2026-01-12T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb631f0fbc4a", "title": "Pokke: A small bookmarking service for my own use", "url": "https://ainoya.dev/posts/pokke-a-small-bookmarking-service-for-my-own-use/", "published_at": "2026-01-11T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb631f954f78", "title": "The New \"Millionaire Programming\": Throwing Generative AI at the Problem", "url": "https://ainoya.dev/posts/the-new-millionaire-programming-throwing-generative-ai-at-the-problem/", "published_at": "2025-12-23T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb631fae4141", "title": "Google Jules vs. Antigravity: Where Each Coding Agent Fits", "url": "https://ainoya.dev/posts/antigravity-and-jules/", "published_at": "2025-12-20T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb63207464b6", "title": "What Is a Reverse Centaur? AI Automation and the Cost of Verification", "url": "https://ainoya.dev/posts/the-reverse-centaur/", "published_at": "2025-12-16T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb63216263d9", "title": "Digital Folklore: The Unsearchable Origins of the 'Silhouette' Dance", "url": "https://ainoya.dev/posts/digital-folklore-silhouette-dance/", "published_at": "2025-12-13T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb632167385b", "title": "Fix WebM Missing Duration in JavaScript Without FFmpeg", "url": "https://ainoya.dev/posts/webm-missing-duration/", "published_at": "2025-12-07T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb63225c78c2", "title": "Building Small CLI Tools for AI Agents", "url": "https://ainoya.dev/posts/why-cli-instead-of-mcp/", "published_at": "2025-12-06T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb63233424f1", "title": "Cache Satori-generated OGP images in Astro Cactus to speed up builds", "url": "https://ainoya.dev/posts/astro-ogp-build-cache/", "published_at": "2025-08-25T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb63235e9195", "title": "Rethinking State: My Experience with Cloudflare's Durable Objects", "url": "https://ainoya.dev/posts/durable-object/", "published_at": "2025-08-03T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb632453901f", "title": "Beyond \"Just Code It\": Adapting Specification-Driven Principles for AI Agents", "url": "https://ainoya.dev/posts/spec-driven-ai-coding/", "published_at": "2025-08-02T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb6324df8a66", "title": "Marble to LLM", "url": "https://ainoya.dev/posts/marble-to-llm/", "published_at": "2025-04-29T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb6324f4f827", "title": "A Chrome Extension for Local Transcription Processing", "url": "https://ainoya.dev/posts/chrome-extension-for-edge-transcription/", "published_at": "2024-11-20T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb6325e990ec", "title": "Handling Long Responses with VertexAI API", "url": "https://ainoya.dev/posts/vertex-ai-retrieve-continuation/", "published_at": "2024-09-16T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb6326d388c9", "title": "Experiment with LLM for Personal Knowledge Management", "url": "https://ainoya.dev/posts/try-llm-personal-knowledge-management-weekly-review/", "published_at": "2024-09-15T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb6327c2f187", "title": "LocalStack KMS: Use Custom Key Material for Shared Test Data", "url": "https://ainoya.dev/posts/localstack-kms-with-seed/", "published_at": "2024-09-14T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb63288e427c", "title": "Why Still Blog in the Age of Generative AI?", "url": "https://ainoya.dev/posts/why-you-are-still-blogging/", "published_at": "2024-09-04T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb63294fbc6d", "title": "Developing a Web UI for Controlling LLM JSON Output", "url": "https://ainoya.dev/posts/llm-json-output-format-gen/", "published_at": "2024-09-01T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb6329803cce", "title": "Day 0 Operations: Minimizing Risks in Manual Processes for New Products", "url": "https://ainoya.dev/posts/day-0-web-ops/", "published_at": "2024-08-31T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb6329c0eaae", "title": "Automating My Note Tagging with LLMs", "url": "https://ainoya.dev/posts/auto-document-tag-with-vertex-ai-json-schema/", "published_at": "2024-08-25T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb6329f2cad0", "title": "LLM Application Security Practice: Markdown Image Tag", "url": "https://ainoya.dev/posts/llm-application-security-practice-markdown-img-tag/", "published_at": "2024-08-03T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb632a0e9c97", "title": "Web Distiller AI: A Chrome Extension for Summarizing Web Pages", "url": "https://ainoya.dev/posts/web-distiller-ai-chrome-extension/", "published_at": "2024-07-06T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb632aeda51f", "title": "Improving Web Scraping with Readability and Table Support in Markdown", "url": "https://ainoya.dev/posts/use-readability/", "published_at": "2024-06-18T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb632b99061b", "title": "Enhancing Personal Knowledge Management with Pocket and Obsidian Integration", "url": "https://ainoya.dev/posts/distilled-pocket-article-to-obsidian/", "published_at": "2024-06-13T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb632c7a97c9", "title": "Optimizing Model Load Times on EC2 with Pre-loaded AMIs", "url": "https://ainoya.dev/posts/ec2-model-loading-too-slow/", "published_at": "2024-05-18T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb632d077b10", "title": "Accelerating Company Culture And Value Assimilation Among Employees Through Generative AI", "url": "https://ainoya.dev/posts/zapier-openai-accelerate-culture-value/", "published_at": "2024-05-06T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb632d7ab69c", "title": "Using the Web Crypto API for Secure Encryption and Decryption", "url": "https://ainoya.dev/posts/web-crypto-api-encryption-decryption/", "published_at": "2024-05-04T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb632e67b3d6", "title": "Revisiting: Generating OpenAI API Client with Kiota from OpenAPI Spec", "url": "https://ainoya.dev/posts/openaai-java-api-client-again/", "published_at": "2024-02-07T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb632ed7baa7", "title": "Deep Dive into maybe-finance/maybe", "url": "https://ainoya.dev/posts/read-maybe-finance/", "published_at": "2024-02-01T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb632f136a6d", "title": "Where is Dropout Configured in SimCSE?", "url": "https://ainoya.dev/posts/simcse-dropout/", "published_at": "2024-01-28T00:00:00+00:00" }, { "id": "01a08721-a07a-7020-879b-fb632f70060e", "title": "Improving Blog-Writing Workflow with VSCode's DevContainer and Astro", "url": "https://ainoya.dev/posts/astro-blog-with-devcontainer/", "published_at": "2024-01-23T00:00:00+00:00" }, { "id": "01a08721-a07b-72f0-bbf5-000d2d2e6c86", "title": "Using OpenAI's Assistant API with Function Calling in Chatbots", "url": "https://ainoya.dev/posts/openai-assistant-api-and-function-calling/", "published_at": "2024-01-21T00:00:00+00:00" }, { "id": "01a08721-a07b-72f0-bbf5-000d2e22ec83", "title": "JIRA and GitHub Daily Workflow Script", "url": "https://ainoya.dev/posts/jira-github-daily-workflow-script/", "published_at": "2024-01-18T00:00:00+00:00" }, { "id": "01a08721-a07b-72f0-bbf5-000d2ef0427d", "title": "Scheduled Article Publishing in Astro with Cloudflare Pages", "url": "https://ainoya.dev/posts/scheduled-post-astro/", "published_at": "2024-01-16T00:00:00+00:00" }, { "id": "01a08721-a07b-72f0-bbf5-000d2fa849c3", "title": "Securing k8s Service Communication with Envoy", "url": "https://ainoya.dev/posts/envoy-mtls-demo/", "published_at": "2024-01-14T08:00:00+00:00" }, { "id": "01a08721-a07b-72f0-bbf5-000d2fe12d1f", "title": "Enhancing Tools with OpenAI API: Insights from Past Projects", "url": "https://ainoya.dev/posts/chatgpt-prototyping-2023/", "published_at": "2024-01-10T00:00:00+00:00" }, { "id": "01a08721-a07b-72f0-bbf5-000d2ff1c4d6", "title": "Developing an OpenAI Java API Client", "url": "https://ainoya.dev/posts/openai-java-generated-client/", "published_at": "2024-01-08T00:00:00+00:00" }, { "id": "01a08721-a07b-72f0-bbf5-000d30e1a124", "title": "Automating LookML Code Review with lkml and GitHub Actions", "url": "https://ainoya.dev/posts/lookml-test-lkml/", "published_at": "2024-01-07T00:00:00+00:00" }, { "id": "01a08721-a07b-72f0-bbf5-000d310a6e04", "title": "Exploring AI CLI Tool Development with Rust: GIGO", "url": "https://ainoya.dev/posts/gigo/", "published_at": "2024-01-06T00:00:00+00:00" }, { "id": "01a08721-a07b-72f0-bbf5-000d31de619e", "title": "Absence Alert System using SwitchBot", "url": "https://ainoya.dev/posts/switchbot-absence-alert/", "published_at": "2024-01-03T00:00:00+00:00" }, { "id": "01a08721-a07b-72f0-bbf5-000d32417e30", "title": "My first post", "url": "https://ainoya.dev/posts/my-first-post/", "published_at": "2023-12-30T00:00:00+00:00" } ] posts Claim your blog
Back to ainoya.dev
Blog · corpus.blog/blogs/ainoya.dev/posts

ainoya.dev

ainoya.dev

2026

2025

2024

2023