Parsing CSV in BoxLang – Maven Style

I recently did some CSV parsing in ColdFusion while working on my ColdFusion 2025 Hackathon submission, and while I didn’t win, I really enjoyed the little utility I built. That tool made use of CSV parsing support in Adobe ColdFusion and I thought I’d take a look at what I’d need to use to support that in BoxLang. This led me to look for a Java tool and gave me a chance to try something new in BoxLang, Maven support. BoxLang runs on the JVM, but doesn’t really require you to know any Java. Which is good. I’ve been "casually" familiar with Java since it came out, but have never done any real work in it nor really spent any time learning the language. I... more →
Posted in: JavaScript

AI with BL

Forgive the somewhat cutesy title. I hate vague titles that only serve to be clickbait, but given the subject, I couldn’t help it. This post is about AI, specifically Generative AI, with BL, AKA BoxLang. This has always been possible with BoxLang and any GenAI service that had a REST API, but recently the team released an impressive AI Module that makes this a lot easier. So what does it do? Much like LangChain, the BoxLang AI module provides a unified interface to work with multiple different AI providers. This makes it a bit easier to switch from one service to another. I don’t necessarily see people doing that willy nilly. Each service has it’s unique strengths and weaknesses... more →
Posted in: JavaScript

Updates to my Table Sorting Web Component

It’s been a while since I touched my <table-sort> web component, but last night I had a few interesting ideas and thought I’d do a quick update. For folks who may not remember, I first blogged about this way back in March of 2023. The basic idea was to take an existing table, wrap it in my web component, and sorting would be added automatically. Nice and simple. As an example: <table-sort> <table> <!-- existing table here --> </table> </table-sort> The only real "feature" was that if you included numeric="X", it would consider the Xth column as numeric and ensure sorting worked properly. X in this context could be one column,... more →
Posted in: JavaScript

Links For You (6/22/25)

Greetings, programs. This has been a quite excellent weekend so far, and today will be awesome for one reason alone – there’s not one dang thing on our calendar. A day with nothing to do is a glorious day indeed. I spent this morning finishing prestige 10 in COD and catching up on my comics ("One World Under Doom" is incredible). Now let’s get to the links… What exactly do I do? I’ve had to explain developer advocacy and evangelism for years now, but I absolutely love this explanation by Ashley Willis, "What Is Developer Advocacy (2025 Edition)". In it, she goes into great detail about the job myself, and many of my friends, love, and talks about... more →
Posted in: JavaScript

Upcoming Webinars

Good morning, programs. I wanted to share some news about two upcoming webinars. The first is my next Code Break show, "Building Desktop Apps with Python and Flet – Part Deux", happening next Tuesday, June 24th, at 12PM CST. As you can tell by the title, I’ll be continuing my look at the awesome Flet project and seeing if I can finish the app I started last time. If you don’t remember, it’s quite deadly… (And be sure to check out the last session for the first part!) Next, on July 23rd, 11AM CST, I’m hosting a free webinar where I’ll live code building a BoxLang application. My plan is to see how far I can get in an hour (which means I need... more →
Posted in: JavaScript

Sorting Out Your Monarchs with BoxLang

I know what you’re thinking right now – a monarch problem? How did Raymond know I had a monarch problem? What can I say, with great age comes great wisdom, or, more likely, random code challenges. I’ve mentioned "rendezvous with cassidoo" before as one of the newsletters I subscribe to. Authored by the very interesting Cassidy Williams, this short and sweet newsletter always has interesting content and always ends with a basic code challenge, what she calls her ‘interview question of the week’. This weeks question was pretty fun: Given an array of strings representing the names of monarchs and their ordinal numbers, write a function that returns the list... more →
Posted in: JavaScript

My ColdFusion 2025 Hackathon Submission – QuickTracker

Earlier this month, the ColdFusion team announced a hackathon that started today, and ends Monday night. Full disclosure, when I saw the announcement, I thought that the date range is when things had to be turned in. I spent a few hours on what I’m going to share below, but when I found out that the intent was to start today, I wrapped up and stopped. My submission only took a few hours, and outside of a quick readme update today, I feel fine with my submission. And heck, it was fun to build, so I don’t really care if I win (ok, that’s a bit of a lie). With that out of the way, let me share what I created, QuickTracker.cfm. QuickTracker.cfm is based on a tool first built by... more →
Posted in: JavaScript

Using BoxLang’s Cache Services

Recently I’ve been looking at BoxLang’s Caching service, mostly because the docs were updated which made it easier to dig into it. 😉 My usual expectation for a caching service is typically a key/value system with APIs to get and set and hopefully a simple way to handle expiration. So for example, I can idealy store a cache value and an expiration values at the same time, and if I fetch it later and it’s expired, I get a nice null value back. As I said, that’s the ‘baseline’ for what I expect, so I was kind of blown away, and a bit overwhelmed honestly, with what you can do on the BoxLang platform. At a high level, here’s some of the details: Out of... more →
Posted in: JavaScript
1 11 12 13 14 15 110