# Posts





## Pages


- [Introducing ztd; disposable VMs for untrusted agent work](https://www.frobiovox.com/posts/2026/09/10/introducing-ztd-disposable-vms-for-untrusted-agent-work/) — 2026-09-10: Running a coding agent with approvals turned off is only safe if a machine boundary, not a dialog box, protects your host. ztd gives every agent run its own throwaway VM across libvirt, lima, Proxmox, and EC2.
- [Introducing webform relay; forms without a backend](https://www.frobiovox.com/posts/2026/09/08/introducing-webform-relay-forms-without-a-backend/) — 2026-09-08: A serverless form handler for static sites. Point a form at a URL, and it validates the submission and relays it to SES, SMTP, a webhook, or Salesforce Web2Lead. One YAML file, no application code.
- [The joys of unemployment](https://www.frobiovox.com/posts/2026/09/01/the-joys-of-unemployment/) — 2026-09-01: The silver lining of being laid off is time to finish the open source projects that have been waiting for a weekend that never came -- and a reason to keep the work visible.
- [Introducing v; the easiest vendor utility](https://www.frobiovox.com/posts/2026/08/30/introducing-v-the-easiest-vendor-utility/) — 2026-08-30: Sometimes you have to copy a library straight into your project. v records exactly which commit you copied and gives you one command to refresh it.
- [Farewell to the burgundy](https://www.frobiovox.com/posts/2026/08/27/farewell-to-the-burgundy/) — 2026-08-27
- [Moving on](https://www.frobiovox.com/posts/2026/08/18/moving-on/) — 2026-08-18
- [Project Space Game: a ten-year-old idea finally has a build](https://www.frobiovox.com/posts/2026/06/24/project-space-game/) — 2026-06-24: An early look at the space game I'm building — the question that started it a decade ago, what actually runs today, and where it's headed. Very much a work in progress.
- [Content gatekeeping in a GenAI world](https://www.frobiovox.com/posts/2026/05/10/content-gatekeeping-in-a-genai-world/) — 2026-05-10
- [An experienced developers view on writing software in the age of vibe coding and generative ai](https://www.frobiovox.com/posts/2026/04/29/an-experienced-developers-view-on-writing-software-in-the-age-of-vibe-coding-and-generative-ai/) — 2026-04-29: AI agents can build a full-stack app in an afternoon, but should it. The right workflow depends on your experience level. A guide to using generative AI effectively whether you're a seasoned engineer or just starting out.
- [Add a JSON API to Any Static Site Generator](https://www.frobiovox.com/posts/2026/04/23/add-a-json-api-to-any-static-site-generator/) — 2026-04-23: Static site generators output HTML, but they can output JSON too. Here is how to add a JSON API to your Hugo site, and why the technique works with any SSG.
- [Getting XDebug working with the Zed editor, starring Claude](https://www.frobiovox.com/posts/2026/01/05/getting-xdebug-working-with-zed-starring-cloude/) — 2026-01-05: The Zed editor is one of the more interesting new projects in a long while. The only problem is I use PHP and Zed sucks at PHP. One thing that sucks is Xdebug support. I finally got Xdebug working with the help of Claude. Notice, however, that I didn't say Claude got Xdebug working.
- [A Suggested Order for Watching TOS with Your Kids](https://www.frobiovox.com/posts/2019/12/16/startrek-tos-order/) — 2019-12-16: Thirteen essential episodes of Star Trek: The Original Series, picked and ordered by a coworker who knows his Trek. A curated list for introducing your kids to the franchise.
- [How to play gloom with a 52 card deck](https://www.frobiovox.com/posts/2018/03/30/gloom-with-52-card-deck/) — 2018-03-30: I played the Edward Gorey inspired card game Gloom the other day. The game and mechanics are fun, but if the dark humor of the game isn't for you then try these rules on a standard 52 card deck.
- [Why DrupalCon](https://www.frobiovox.com/posts/2018/02/20/why-drupalcon/) — 2018-02-20: Contributing to Drupal allows us to ensure Drupal remains the best and most flexible general purpose Content Management System. Contributing to Drupal is the job of the Drupal Community.
- [Rearchitecting for Drupal 8; a DrupalCon Session](https://www.frobiovox.com/posts/2018/02/15/rearchitecting-for-drupal8/) — 2018-02-15: This is an export of my session from DrupalCon Baltimore 2017. This is here for posterity. The least effort possible was put into transcribing it from presentation format to a web page.
- [Switching to Celsius from Fahrenheit for normal people](https://www.frobiovox.com/posts/2017/04/23/switching-to-celsius-from-fahrenheit-for-normal-people/) — 2017-04-23: For the majority of people who will be switching from Fahrenheit to Celsius, this is all you need to know.
- [My Dilemma; What Technology to Pursue](https://www.frobiovox.com/posts/2016/11/21/my-dilemma--what-technology-to-pursue/) — 2016-11-21: I need to know what to study, not that I am bored or have lots of time. I just need a new tool in my belt.
- [Lets take a look at webVR with AFrame](https://www.frobiovox.com/posts/2016/10/24/lets-take-a-look-at-webvr-with--aframe/) — 2016-10-24: I should continue my series on Machine Generated text or Composer or Drupal, but this just looks like too much fun. WebVR with AFrame.
- [a new simple reading rogue like](https://www.frobiovox.com/posts/2016/09/30/a-new-simple-reading-rogue-like/) — 2016-09-30: With everyone's kids being so smart it is a wonder that we don't have machine generated children's book already. This sounds like an oversight to me because computers are already raising our kids.
- [Basic Hello World with composer and php](https://www.frobiovox.com/posts/2016/08/16/basic-hello-world-with-composer-and-php/) — 2016-08-16: A Hello World style introduction to Composer.
- [Semantic Git](https://www.frobiovox.com/posts/2016/05/27/semantic-git/) — 2016-05-27: Using git-flow as a workflow for semantic versioning. This is a circular dependency that is good.
- [Simplify Drupal 8 field value calls](https://www.frobiovox.com/posts/2016/03/28/simplify-drupal-8-field-value-calls/) — 2016-03-28: Explore a bit of field fetching with Drupal 8
- [Working with Case Sensitive Files in a Case Insensitive world](https://www.frobiovox.com/posts/2016/01/20/working-with-case-sensitive-files-in-a-case-insensitive-world/) — 2016-01-20: How to work with case sensitive files on a file system that is case insensitive
- [What if the bullets cost money?](https://www.frobiovox.com/posts/2015/12/23/what-if-the-bullets-cost-money/) — 2015-12-23: Every "learn to make games" tutorial hands you the same space shooter. I want to make a different one — built around a question instead of a high score.
- [Lets plan a new Arduino based video game console](https://www.frobiovox.com/posts/2015/12/22/lets-plan-a-new-arduino-based-video-game-console/) — 2015-12-22: Why do we need a new game system? Because everything made today does too much.
- [Altering Entity Field Queries for JOINS ORs and Profit](https://www.frobiovox.com/posts/2015/11/11/altering-entity-field-querys-for-joins-ors-and-profit/) — 2015-11-11: EntityFieldQueries are one of the most useful things in Drupal 7, using tags we can get around some of the limitations of using them.
- [Add an API to Your Jekyll Blog](https://www.frobiovox.com/posts/2015/10/25/add-an-api-to-your-jekyll-blog/) — 2015-10-25: Without adding any non-Github pages approved plugins, build a RESTfull api for your blog by adding a json endpoint.
- [Reflecting on Elixir and Phoenix](https://www.frobiovox.com/posts/2015/10/09/reflecting-on-elixir-and-phoenix/) — 2015-10-09: I reflect on what I have seen at ElixirConf 2015, what does this mean for Drupal, and Why use Elixir or Phoenix instead of Drupal or Jekyll.
- [Modern Drupal7 Site Building Tools](https://www.frobiovox.com/posts/2015/09/22/modern-drupal7-site-building-tools/) — 2015-09-22
- [Add Some Style to Your JavaScript Log](https://www.frobiovox.com/posts/2015/09/10/add-some-style-to-your-javascript-log/) — 2015-09-10: Style can be passed as a parameter to the console.log function.
- [Step One on replacing Jekyll, make yaml work](https://www.frobiovox.com/posts/2015/07/26/step-one-on-replacing-jekyll--make-yaml-work/) — 2015-07-26
- [I like Jekyll, but is it necessary?](https://www.frobiovox.com/posts/2015/06/15/i-like-jekyll--but-is-it-necessary/) — 2015-06-15
- [Need a join in an EntityFieldQuery, how about a subquery?](https://www.frobiovox.com/posts/2015/06/10/need-a-join-in-an-entityfieldquery--how-about-a-subquery/) — 2015-06-10: Did you know that EntityFieldQueries can have subqueries? They can.
- [Setting Up Jenkins on 12.04](https://www.frobiovox.com/posts/2015/05/19/setting-up-jenkins-on-1204/) — 2015-05-19: In this post Frank walks through the basics of setting up Jenkins to run on Ubuntu. This is a simple step by step with links to more information.
- [Back from DrupalConLA (A postmortem)](https://www.frobiovox.com/posts/2015/05/18/back-from-drupalconla/) — 2015-05-18
- [Setting a default value for a link or url field in Drupal 7](https://www.frobiovox.com/posts/2015/05/04/setting-a-default-value-for-a-link-or-url-field-in-drupal-7/) — 2015-05-04: Sometimes the best solution is to do something hacky. I am not saying this is the best way to make Drupal forms autosubmit. I am only saying that this is one way.
- [Drupal or Wordpress? Why not Jekyll.](https://www.frobiovox.com/posts/2015/01/27/drupal-or-wordpress-why-not-jekyll/) — 2015-01-27: Are you fed up with the offerings of Drupal, Wordpress, and other big CMSs? Then maybe a return to roots is in order. Let's look at Jekyll
- [WebGL with three.js](https://www.frobiovox.com/posts/2014/11/15/webgl-with-threejs/) — 2014-11-15: Did you know that 3D is possible on the web with WEBGL? You did? Oh, well, go checkout Three.js then.
- [Creating screen-reader friendly read more  links](https://www.frobiovox.com/posts/2014/05/06/creating-screen-reader-friendly-read-more--links/) — 2014-05-06
- [Utilizing Front End CSS Design Paradigms In Drupal](https://www.frobiovox.com/posts/2014/01/24/utilizing-front-end-css-design-paradigms-in-drupal/) — 2014-01-24
- [Creating Auto Submitting Forms with Drupal's Form API](https://www.frobiovox.com/posts/2013/11/26/creating-auto-submitting-forms-with-drupal-s-form-api/) — 2013-11-26
- [css less sass oocss drycss bem front end css design paradigm smacss down](https://www.frobiovox.com/posts/2013/11/21/css-less-sass-oocss-drycss-bem-front-end-css-design-paradigm-smacss-down/) — 2013-11-21
- [Support should not be based on Marketshare](https://www.frobiovox.com/posts/2013/10/06/support-should-not-be-based-on-marketshare/) — 2013-10-06: Some general thoughts on the how and why of Graceful Degradation and Progressive Enhancement. No tutorials here, more philosophical than functional
