Links For You (8/24/25)

So yeah… not a great two weeks or so since my last Links post. If you missed the announcement, my time at Foxit was unceremoniously cut short which came as a complete shock. This may end up being the year I spend more time without a full time job than with. To be honest, I’m a really, really bad place right now, but, trying to maintain, and trying my best to once again find a job in the worst market I’ve seen in my career. One way or the other I’ll get through this again, but I’m really, really tired of this. Let me pretend to think positive for a moment and maybe in the next Links post I’ll have better news. Maybe. Ok, enough complaining, let’s get to... more →
Posted in: JavaScript

Unit Formatting with Intl in JavaScript

It’s been a little while since I last blogged about my favorite web platform feature, Intl. I think it was maybe two or so years ago when I was prepping for my first conference talk on the topic and using that as an opportunity to dig much deeper into the spec then I had before and wow, I was unprepared for how flexible, and powerful, this functionality is in the browser. I blogged about localized relative timings back in March of 2024 (ah, I remember March 2024, I had a job then), and discussed how to dynamically handle different quantities of time differences. More recently, I blogged about dynamic time durations and how best to select the right duration for the formatter object. In both... more →
Posted in: JavaScript

Using AI to Search Maps

The magnificent David Rumsey Map Collection now has an AI Search Assistant that can help you find maps, learn more about individual maps, and even query specific elements within maps.The David Rumsey Map Collection is one of the largest online collections of maps, and its new AI Search Assistant is a fantastic resource. It not only helps you search and discover maps in the collection Maps Mania… more →
Posted in: Interactive Maps

First Stab at a BoxLang Log Viewer

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

The Cold Case Murder Map

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

Using StringBind in BoxLang

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

Building a File-Based Router in BoxLang

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

Love Story 2 – Dressed to Kill!

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
1 3 4 5 6 7 220