#code
- Miko-bench: 65 AI Models Guess My Puppy's Breed Mix
I asked 65 vision models to rank Miko's likely breeds from the same evidence given to humans, then compared their guesses with her DNA results.
- Triaging Gmail with Claude Subagents
A writeup of a small agentic system I built to triage my Gmail inbox, using Claude subagents to organize and assess messages.
- PostgreSQL from Google Apps Script
Connect Apps Script to PostgreSQL via JDBC, including connection strings, JSONB and UUID workarounds, transactions, and PostGIS.
- Fiction AST and GLiNER NER in Rust
How I built a fiction-specific AST and named-entity pipeline with LLM labeling, GLiNER fine-tuning, and ONNX inference in Rust.
- VS Code Git Remote Color
An open-source VS Code extension that hashes each workspace Git remote and colors the status bar to distinguish open repositories.
- Agent Identity for Git Commits
How to configure AI agents to push commits to GitHub using a separate bot identity without modifying local git configuration.
- Extracting Gold from Antigravity's Brain
A workflow for extracting architectural patterns and implementation challenges from AI agent walkthroughs to inform later engineering work.
- Building a MCP Client in Google Apps Script
Learn how to communicate with Model Context Protocol (MCP) servers using Apps Script and UrlFetchApp. Incorporate the MCP client into Vertex AI tool calling.
- Using Gemini in Apps Script
Use Apps Script's Vertex AI advanced service to call Gemini for text, images, structured output, search grounding, and multi-turn chat.
- Currentonly Scopes in Google Apps Script
How Apps Script currentonly scopes limit access to an active file, and why Advanced Services, direct API calls, and openById need full scopes.
- Resolve Chat User IDs to Emails: Least Privilege
Securely resolve Google Chat User IDs to emails without Domain-Wide Delegation. Use Service Account Impersonation and custom Admin roles.
- Apps Script CacheService Limits
Unofficial Apps Script CacheService findings: key and value limits, FIFO batch eviction, edge cases, and practical cache patterns.
- UrlFetchApp: The Unofficial Documentation
The unofficial guide to Google Apps Script UrlFetchApp. Master authentication, fetchAll for parallelism, web scraping, and debugging "Address Unavailable".
- Secure Secrets in Google Apps Script
Avoid hardcoded Apps Script secrets by using PropertiesService for configuration and Google Cloud Secret Manager for sensitive values.
- Protect Gmail AI Agents with Model Armor
Use Model Armor in an MCP tool handler to block prompt injection and redact sensitive Gmail content before it reaches an AI agent.
- Google Workspace Developer Tools MCP Server
Announcing the new MCP server for Google Workspace Developer Tools, providing AI agents with access to official documentation and API snippets.
- React Wrapper for Google Drive Picker
Announcing the new React component for the Google Drive Picker, wrapping usage of the web component for easier integration.
- Google Workspace Developer Tools VS Code Extension
Announcing the new Google Workspace Developer Tools extension for VS Code, working with Antigravity and providing OAuth2 scope linting and MCP support.
- Google Drive Picker TypeScript - Types Updated
A DefinitelyTyped update that replaced community Google Drive Picker types with autogenerated types from the official reference source.
- Google Forms - title vs name vs documentTitle
Recently I had to clarify some confusion around the title and name of a Google Form. Here is a quick explanation of the difference between the two.
- Convert docx to Google Docs with Apps Script
Programmatically convert, open, and edit Microsoft Word .docx files in Google Apps Script using the Drive API and DocumentApp.
- Google Workspace Developer Summits 2024
Save the date for the 2024 Google Workspace Developer Summits in Boston on September 12 and Berlin on September 17.
- Allow Sheets IMPORT and IMAGE URLs
Use the Sheets API to allow external URL access for IMPORT and IMAGE functions without requiring each spreadsheet user to grant consent.
- Apps Script and WebAssembly - A comprehensive guide
You can use WebAssembly with Google Apps Script! This post will cover how to do that and provide a comprehensive guide on how to get started.
- SvelteKit UUID Slugs in a Derived Store
A SvelteKit store pattern that converts URL-safe base64 UUID slugs back to UUIDs in route parameters, with implementation examples.
- google.script.run vs. doGet/doPost
Compare google.script.run vs doGet/doPost endpoints for Apps Script web apps. Choose the best method for simple apps or complex frameworks like React/Vue.
- Drive File Get Blob and Scopes in Google Apps Script
Compare DriveApp, the Drive Advanced Service, and UrlFetchApp for retrieving Drive file blobs in Apps Script while minimizing OAuth scopes.
- Apps Script Storage Benchmarks
Benchmarks comparing CacheService, PropertiesService, and Firestore in Apps Script, including speed measurements and when each storage option fits.
- Google Cloud Region Latency in Google Apps Script
Ping results to Google Cloud regions and short code snippet demonstrating how to measure latency from Google Apps Script.
- Optimizing Parallel Jobs in a Github Workflow
A GitHub Actions pattern that saves a built workspace so preview, test, and matrix jobs can run in parallel without rebuilding.
- Apps Script V8 Runtime Limitations
A comparison of the WinterCG minimum common web APIs and Apps Script's V8 runtime, including UrlFetchApp and sleep workarounds.
- Rust, Python, and WASM in Apps Script
A Google Next 2024 lightning talk on extending Apps Script with Rust, Python, and WebAssembly, with a build demonstration.
- Promises, async and await in Google Apps Script
Understand async/await and Promises in Google Apps Script. Learn why most APIs remain synchronous and how WebAssembly is the exception.
- Cloudflare Workers: Dev, Staging, and Prod
Configure Wrangler environments for Cloudflare Workers, then use GitHub Actions to deploy and promote changes through dev, staging, and production.
- Google Calendar - Usage Limits Exceeded
Understand why Google Calendar reports "usage limits exceeded" for external attendees and notifications, plus practical alternatives.
- Embed images from Google Drive in your website
Google Drive broke the ability to embed images with the /uc path. Here's how to embed images from Google Drive in your website.
- Using Firestore in Apps Script
Use the Firestore REST API from Google Apps Script when CacheService, PropertiesService, or Sheets cannot meet your storage requirements.
- Apps Script Service Account Impersonation
Avoid downloading service-account keys: use impersonation in Apps Script to mint access tokens for Google Cloud APIs.
- Optimized Dockerfile for Rust
A multi-stage Rust Dockerfile that caches dependencies with a dummy main.rs before copying source into a slim Debian runtime image.
- Generating Text with Gemini Pro in Apps Script
A short Apps Script example that calls the Gemini Pro REST API to generate text, then reads the response candidate text.
- Memoization in Apps Script
A generic Apps Script memoization helper that hashes a function and arguments, stores results in CacheService, and explains its limits.
- Using Vertex AI in Apps Script
How to use the Vertex AI API in Apps Script to make predictions on your data or use it in any of your other Google Workspace processes.
- Building a Google Chat App with n8n
How I used an n8n webhook workflow, Google Chat slash command, and Cloud Translation API to build a simple translation chat app.
- Combining Google Workspace Add-ons and Editor Add-ons
Both Add-on types have their own strengths and weaknesses. Combining them could be a powerful way to build Add-ons for Google Workspace but with some caveats.
- Rust Compiler Whack-a-Mole
Notes from a Rust terminal UI prototype for PlexAmp, covering Tokio tasks, channels, select!, and questions left to explore.
- Email Magic Links with Cloudflare Pages
Build passwordless email login with Cloudflare Pages, Functions, KV, and SendGrid: create and validate tokens, then set a session cookie.
- Google User Credentials in non-interactive workflows
Use an OAuth2 offline flow to obtain Google user credentials as application default credentials when service accounts or API keys cannot work.
- Verify a Google access token
A simple endpoint for checking whether a Google OAuth access token is valid, useful when troubleshooting authentication and API requests.
- Automator's Hole
A reflection on the gap between manual work and automation, where a task remains too small to automate but too tedious to keep doing.
- Track all Firestore write activity in Firestore
Capture Firestore writes as per-user activity by routing Audit Logs through a Pub/Sub sink to a Cloud Function that writes Firestore.
- Strongly Typed Yup Schema in TypeScript
A TypeScript pattern that uses generics and conditional types to make Yup schemas strongly typed, with examples that satisfy the compiler.
- Caching Playwright Binaries in GitHub Actions
A GitHub Actions caching strategy for Playwright browser binaries that reduces repeated downloads and speeds up browser-based CI runs.
- Docker Build Secrets in GitHub Actions
Pass a GitHub secret as a docker/build-push-action build argument, then expose it in each needed Dockerfile stage.
- Docker Buildx, GCR, and GitHub Actions Guide
Authenticate and push to Google Container Registry (gcr.io) from GitHub Actions using the docker/build-push-action and Google Cloud Auth.
- Strava Webhooks with Stokehook.com
A Svelte and Firebase app that receives Strava webhook events through Stokehook, built to explore the Strava API.
- Unwatch All Repositories in a GitHub Organization
Use the GitHub CLI to list watched repositories in an organization, filter them, and delete each subscription without manual clicks.
- Archiving Dependabot Emails with Apps Script
Archive Dependabot and Semantic Release emails automatically using Google Apps Script cron jobs to declutter your inbox.
- Auto-Merge Dependabot Pull Requests
A GitHub Actions workflow that approves and auto-merges Dependabot pull requests while relying on branch protection and required checks.
- Rebasing All Dependabot Pull Requests
A shell command using the GitHub CLI search and comment features to ask Dependabot to rebase pull requests across an organization.
- What is DevRel?
DevRel is a lot things: marketing, engineering, product management, support; my experience as a Developer Relations Engineer at Google.
- Eleventy Related Posts Using TF-IDF
Automating related posts in Eleventy with term frequency-inverse document frequency and eleventy-plugin-related.
- GitHub Workflow to Sync Branches
A GitHub Actions workflow pattern for synchronizing branches across a repository without relying on a third-party GitHub Action.
- Eleventy Progressive Web App
A short look at turning an Eleventy site into a progressive web app while chasing better Lighthouse scores and improving offline behavior.
- Google Maps React Wrapper
A React wrapper for loading the Google Maps JavaScript API, keeping map setup and script loading in a reusable component.
- Automate Email Bankruptcy using Apps Script
An Apps Script that archives Gmail threads older than 30 days, respects Gmail's 100-thread batch limit, and runs hourly on a trigger.
- WMS Layer on Google Maps
How to add a Web Map Service layer to Google Maps by converting tiles to Web Mercator bounds and building GetMap request URLs.
- Microservice Logging with Openresty and BigQuery
Log microservice usage and bytes sent directly to Google BigQuery using OpenResty and Lua for accurate billing and analytics.