URL Rewriting with BoxLang MiniServer / / No Comments BoxLang recently released it’s 1.4 version, and one of the cooler parts of that update was many improvements to MiniServer. MiniServer is a lightweight web server that makes it easy to spin up and test BoxLang web applications. Updates in the last version included automatic .env loading (which is coming soon to the boxlang CLI as well), websocket support, health checks, and more, but the one I care the most about is URL Rewriting support. Rewrite support is fairly simple. To turn it on, pass --rewrites when running boxlang-miniserver. This will use the file index.bxm for any request that doesn’t match a file (no matter what the extension). You can also specify a particular file as... more → Posted in: JavaScript Tagged with: BoxLang, MiniServer, Rewriting
Links For You (8/9/25) / / No Comments Hello friends – another two weeks has gone by which means another links post to share. Sometimes, ok, pretty much every time, I’m shocked at how quickly I have to do these posts. It’s like I blink and half a month has flown by. In my last Links post I mentioned dealing with some frustrations, and they’ve gotten better, but I’m now dealing with the start of school which brings its own challenges. That being said – the family is happy and healthy, I’m employed, so I’ll take that as a win. Let’s get to the links! Why Women in Tech isn’t enough First up is pretty important post from Salma Alam-Naylor, "Why Woman in Tech isn’t... more → Posted in: JavaScript Tagged with: 8/9/25, links
Building a Comic Book Reader in BoxLang / / No Comments I’ve been a comic book reader for just about the same amount of time as I’ve been writing code. Any computer using comic book reader (and there’s probably quite a few) will know that electronic versions of comics let you read comics on your devices. These comics typically come in one of two formats, CBR and CBZ, which are literally just RAR and ZIP files, nothing more. Over the years, I’ve had fun building my own web-based readers for this format, with my last one from a bit over three years ago, "Reading Comic Books in the Jamstack". I thought it would be fun to tackle this in BoxLang and see what worked well and what proved difficult. I’ve got a complete... more → Posted in: JavaScript Tagged with: book, BoxLang, building, Comic, Reader
Using Chrome AI for Sentiment Analysis (Again) / / No Comments Every now and then I get an idea for a blog post/demo, prepare to write about it, and realize I’ve actually covered the topic in the past. Sometimes, though, it works out really well especially when the technology has changed quite a bit. Almost a year ago, I blogged about doing sentiment analysis with Chrome’s AI upcoming AI feature. At the time, it worked…. ok. The biggest issue at the time was the inability to provide a system instruction to the model as well as being able to shape the response a particular way. Thankfully, both of those are now supported. As a reminder, the prompt API for the web is still in an origin trial, see the docs for more information and join the... more → Posted in: JavaScript Tagged with: Again, Analysis, Chrome, Sentiment, using
Progressively Enhancing Product Reviews with Chrome AI / / No Comments While writing up my last blog post I mentioned that a new idea had occurred to me in regards to employing sentimenet analysis with Chrome’s built-in AI support (that, remember, is still way in beta). At lunch today I took a quick stab at a simple demo of what I had in mind and honestly, I’m pretty happy with how it came out. The Initial Demo The idea I had was an "imagined" ecommerce site with product reviews. I went to Google AI Studio and used a prompt to generate a set of product reviews. I used this prompt: Generate a list of 20 product reviews for a cat carrier named Cat Carrier Ultra 1000. The reviews should be a mix of positive and negative, with some being extremely... more → Posted in: JavaScript Tagged with: Chrome, Enhancing, Product, Progressively, reviews
Links For You (7/27/25) / / No Comments Good afternoon, programs. This past week was… frustrating. Incredibly slow. Don’t really want to get into it but luckily I’ve had a very lazy and relaxing weekend. I’m counting my blessings but – like I said – frustrating. Let’s just get to the links, shall we? Importing JSON is Easier Now Normally when importing JSON into my code, I’ll do a fetch and parse the response into JSON. Not a big deal, but, it’s now simpler as explained by Thomas Steiner on the web.dev blog: "JSON module scripts are now Baseline Newly available". This feature is "Baseline" available means it works in modern browsers. Check the post for a full... more → Posted in: JavaScript Tagged with: 7/27/25, links
Getting Image Insights with Built-in Chrome AI and EXIF Data / / No Comments It’s been a busy few weeks for Chrome’s Built-in AI support. Since the last time I blogged about it, four features have gone GA (which still means they are Chrome only but not behind a flag anymore): Translator Summarizer Language Detector Prompt API (for extensions only) And while announced back at the end of May, Gemma 3n as a model is available in Canary, Dev, and Beta Chrome builds. To be clear, the percentage of folks who can use these new features is still really low, but all of these features also work really well in progressive enhancement, and can be backed up by server calls to an API if need be. I continue to be really excited about the possibilities these APIs unlock,... more → Posted in: JavaScript Tagged with: Builtin, Chrome, data, EXIF, Getting, Image, Insights
Using AgentQL and Pipedream to Fix Missing RSS Feeds / / No Comments Last week I blogged about how I used AgentQL to scrape a web page, this blog to be precise, into pure data. If you don’t remember, AgentQL lets you pass a simple query string that is run against a web page and parsed into data. So for example, I was able to use this query on my home page to get a list of entries in pure data: { blogposts[] { url title date } } The REST API was incredibly easy, and I demonstrated in BoxLang how I could use AgentQL to turn my blog’s home page into a much simpler, smaller, HTML version. This of course begs the question, how else could we transform it? What about creating a RSS feed for a blog that doesn’t have one! Of course, if... more → Posted in: JavaScript Tagged with: AgentQL, Feeds, missing, Pipedream, using