First Stab at a BoxLang Log Viewer / / No Comments The BoxLang folks have a proper "administrator" desktop client coming in the future, but lately I’ve been finding myself needing a quick way to work with logs and preferring a web-based tool versus using tail in my terminal (I know, I’m crazy like that). I thought I’d take a stab (Halloween is coming soon, can you tell?) at a simple web application that could do what I wanted – let me quickly view a log. Logs – Just exactly where are they? I had a vague idea of where my logs were, but if I’m building a tool that others may use (I’ll be linking to the repo at the end) than I’d need that to be dynamic. My initial attempt made use of the... more → Posted in: JavaScript Tagged with: BoxLang, first, Stab, Viewer
The Cold Case Murder Map / / No Comments I’m not a huge fan of crime maps. I think in many cases they oversimplify or distort patterns of criminal activity. However, I find Japan’s Unsolved Murder Cases project particularly compelling.According to the map, there are at least 369 homicides in Japan (since 1995) that remain under investigation – because the murderer has yet to be identified. The map was created by The Asahi Maps Mania… more → Posted in: Interactive Maps Tagged with: Case, Cold, Murder
Using StringBind in BoxLang / / No Comments Ok, to be honest, this is going to be a pretty lightweight post as it’s about a simple little string function in BoxLang, but as I discovered it rather recently and was intrigued by what it did. So first off – how did I find this? In the BoxLang docs, there’s a whole section on built-in functions and a subcategory just for string. I was looking it over and realized there were quite a few that I had not known existed. There are some interesting ones in there like pascalCase and snakeCase. I was pretty sure I knew exactly how these worked, but I went ahead and built a quick demo that demonstrates both: Ok, that works well enough, but let’s talk StringBind. StringBind... more → Posted in: JavaScript Tagged with: BoxLang, StringBind, using
Building a File-Based Router in BoxLang / / No Comments Earlier this week I took a look at BoxLang’s new rewriting feature (("URL Rewriting with BoxLang MiniServer")[https://www.raymondcamden.com/2025/08/11/url-rewriting-with-boxlang-miniserver]). It basically boils down to telling the miniserver app, "here is a file I want you to run on a 404", and given that you can write code for anything you would like, it’s really flexible. I like this approach, but it got me thinking, what if BoxLang also supported a non-code based rewriting system, something where you can define paths, and rewrites, in a file? I took a stab at architecting such a feature and thought I’d share. My Inspiration My inspiration for this idea... more → Posted in: JavaScript Tagged with: BoxLang, building, FileBased, Router
Love Story 2 – Dressed to Kill! / / No Comments I have given my Meet Cute map a little romantic make-over. Using MapLibre expressions and a bit of creative styling in Maputnik I have managed to transform my Meet Cute base map into something that feels more appropriate for a procedural love-story map generator.Reimagining Place Names with ExpressionsMapLibre allows you to dynamically change label text with expressions, giving you full Maps Mania… more → Posted in: Interactive Maps Tagged with: Dressed, KILL, Love, Story
On the Market… again (Hire me!) / / No Comments Sadly, I find myself in the same situation I did a few months ago. My time at Foxit has abruptly come to an end. While it didn’t work out, I am incredibly proud of what I was able to achieve in such short time. I’m a bit in shock now, but, I love my work, I love helping developers, and I can’t not work if my kids want to eat. (Rudely they tend to get hungry – like every single day.) As always, if you know me, and know of an opportunity, I’d love any introductions you can give. I got through this once, I can get through it again! Raymond Camden… more → Posted in: JavaScript Tagged with: Again, Hire, market
Earth’s Greatest Hits, Live! / / No Comments Most earthquake apps will show you a map with a bunch of dots. QuakeSound takes those red dots and turns them into sound. That’s right QuakeSound is an earthquake map that actually lets you listen to the planet rumble in near real time. QuakeSound takes data from the USGS Earthquake GeoJSON Feed and represents it in two ways: visually, on an interactive Leaflet.js map, and aurally, via Maps Mania… more → Posted in: Interactive Maps Tagged with: Earth’s, Greatest, hits, live
Adding Programming Language Detection with Built-in Chrome AI / / No Comments As I’ve been playing, and thinking, more and more about how to best add Chrome AI support to web apps, I came across an interesting use-case that I think could be helpful, and like in my previous examples, be completely ok if it didn’t actually work. When I write on the developer blog at Foxit, I make use of WordPress plugin for code samples. This editor has a place for you to both paste in your code, and select the language so the proper highlighter is used: This works well enough, but it gets a bit annoying to have to constantly keep selecting Python in the dropdown. Ideally the form would use the last language (simple enough via LocalStorage), but I was curious how well Chrome’s... more → Posted in: JavaScript Tagged with: Adding, Builtin, Chrome, Detection, Language, programming