Hi, I'm Raymond Camden 👋

I'm a developer advocate who loves the web platform, APIs, AI, and basically just anything involving code. I love to write about technology and share that with others. I've got fun stuff to show you and I'm so happy you're here!

Welcome to my corner of the internet where I share insights about development, best and sometimes questionable practices, and cat demos.

Profile photo

Building a Document Q&A System with Google Gemini

Document summarization is a powerful and pretty darn useful feature of generative AI, but a proper "question and answer" system can really enable users to interact with a document. This is why you see various document viewing apps, like Acrobat, adding these features to their programs. I thought I'd take a look at building such a system via a simple web app to see how difficult it would be, and honestly, it wasn't that bad. Having this in your own web app, versus an external vendor, gives you more control over the experience as well. Here's what I built.

New Web Thing - Wander

I've built a few web games in the past (IdleFleet and Cat Herder are two examples), but what I'm sharing today doesn't really fit into the category of a game. This is going to sound terribly pretentious and I apologize in advance, but what I'm sharing today is more an "experience" for lack of a better term. It's part technical exploration, and part cathartic dumping, and just kinda weird. But honestly, the web needs more weird and I'm happy to contribute to that.

Testing with BoxLang

One of the fun things about immersing myself in BoxLang these past few months is my expose to other products from Ortus. Most recently, I've been doing some contracting with a client that makes use of ColdBox, which for my non-CFML readers out there is probably the most well known, and probably most popular, framework for building enterprise web applications with ColdFusion. As part of that work, I've been integrating TestBox, a testing and mocking framework that works well with ColdBox, but also (somewhat recently, I think a month or so now), supports BoxLang as well. For the most part, "it just works", but as I was new to it, I did run into a few small issues I thought I'd share a simple walkthrough of how to get started.

Want to read everything? Head over to my giant list of every single freaking post ever!.