Building a Document Q&A System with Google Gemini / / No Comments 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. The Stack The web app lets you drag and drop a PDF into the page, it then renders a preview of the PDF on the left... more → Posted in: JavaScript Tagged with: building, Document, Gemini, Google, system
ColdFusion (2025)’s CFOAUTH Tag / / No Comments Back in May of last year, I wrote up a blog post on ColdFusion’s oauth tag. This was based on a feature from way back in ColdFusion 11 that I thought I’d take a look at to see if it was useful. I’m not going to repeat the entire previous blog post, but in general… it was almost something I’d recommend. The tag did a good job of handling creating the right oauth link for you. So you could (after setting stuff up with your provider of course) drop the tag on a page, and when the user hit it, they would be prompted to login with the third party provider. When returned, the tag would handle getting the access token and such and giving you a nice little structure of data... more → Posted in: JavaScript Tagged with: 2025's, CFOAUTH, ColdFusion
New Web Thing – Wander / / No Comments 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. As with most of the things I’ve built, I think it’s more interesting if you experience it first before taking a look at what’s behind it, so with that in mind, click this... more → Posted in: JavaScript Tagged with: thing, Wander
Recognizing Abundant, Deficient, and Perfect Numbers / / No Comments Ok, this post falls into the "I’ll never actually use this again" category, which frankly, my normal readers know happens all the time, but it was a fun little diversion and a reminder of why I used to love math so much. Yesterday I found out that one of my kids’ homework was to look at a set of numbers and determine if they were abundant, deficient, or perfect. Right now you are probably (at least I know I was) asking, "what in the actual heck is that???" A quick bit of Googling turned up this explainer that basically boils it down to a simple principal. Given a number, find all the divisors of that number, excluding the number itself, and add them up. If the... more → Posted in: JavaScript Tagged with: Abundant, Deficient, numbers, Perfect, Recognizing
Using Chrome AI to Summarize Comic Books / / No Comments A few weeks back, I blogged about analyzing comic books with gen ai, and honestly, it worked really darn well. I extracted the pages with Python, and send them to Google Gemini to create the summary. I was naturally curious to see if this could be done entirely on device, using Chrome’s AI support. Here’s what I found. First, a reminder – a few days ago I updated my web-based comic book reader and described that process. The code I’m sharing today is built upon that first application, so if you missed that post, I’d strongly suggest reading it first. (And if you don’t want to miss any of my posts, don’t forget to subscribe!). How It Works Alright –... more → Posted in: JavaScript Tagged with: Books, Chrome, Comic, Summarize, using
Testing with BoxLang / / No Comments 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... more → Posted in: JavaScript Tagged with: BoxLang, Testing
Integrating Algolia with BoxLang / / No Comments I’ve been using Algolia for my search on this blog for years and absolutely love the service. At a high level, Algolia is a hosted search service that lets you easily create search indexes (think of it as a search optimized version of your content) while also providing easy libraries to add a search UI to your page itself. If you type in the search bar on top and perform a search, you’ll see this yourself. My site here is static, all simple flat files with no database, so a solution like Algolia is vital. I thought I’d take a look at integrating Algolia’s REST APIs with BoxLang and was able to build a quick demo in less than an hour. Here’s what I did. Initial Setup As... more → Posted in: JavaScript Tagged with: Algolia, BoxLang, Integrating
My Experience Asking GenAI to Design My Blog / / No Comments What was my experience using GenAI tools to design my blog? Well, you’re looking at it! As I mentioned last week, my new design came from one of my experiments using GenAI to help me design a new theme, but I wanted to share a bit more about the experience when I had time, and that time is now. About two or so months ago, I had the idea of testing out GenAI to create themes for small web apps. While my blog is actually huge (near seven thousand pages), design wise it’s basically: A home page A post page A "everything else" page That’s just three basic pages, all sharing a main layout with slight differences in what’s the main content of the page. I thought... more → Posted in: JavaScript Tagged with: Asking, blog, design, Experience, GenAI