Free Map Data Grabbers

The Overture Maps Foundation, founded in 2022 by Microsoft, Meta (formerly Facebook), Amazon, and TomTom, aims to provide accessible, interoperable open map data. At the time of its launch I remarked that ‘hopefully in the future the Overture Maps Foundation will develop more user-friendly methods to access the data’. The Overture Maps Explorer (Beta) is exactly that. The Explorer allows Maps Mania… more →
Posted in: Interactive Maps

The Ghosts of London

Beneath the bustling streets and historic landmarks of London lies a city haunted by the spirits of its past. From royal specters in the Tower of London to the chilling echoes of Jack the Ripper’s victims in Whitechapel, London’s dark heritage seems to linger, haunting its present!This Halloween, you’ve been appointed to the position of Ghost Hunter General of London. Using the provided Haunted Maps Mania… more →
Posted in: Interactive Maps

Using Chrome AI for Translation

I’ve done a couple blog posts now on Chrome’s efforts to bring generative AI to the browser. It’s still somewhat of a rough process (remember, you can sign up for access to test and learn more at the intro post from the Chrome engineers), but it’s getting better over time. One thing I mentioned in my last post ("Using Chrome AI to Rewrite Text") was how the Chrome team is shipping focused APIs for specific purposes, not just general Q and A. In that previous post, I demonstrated an example of the Rewriter API. As yet another example of this, you can now test out on device translation. As with everything else I’ve shared in this space, you should consider... more →
Posted in: JavaScript

Geolocating Visual Media in Conflict Zones

Geoconfirmed is a volunteer-based platform focused on geolocating visual content in conflict zones. The organization provides verified geolocation data to support situational awareness, investigative efforts, and combat misinformation. Initially launched in 2022, to document the Ukraine conflict, Geoconfirmed now also documents visual content in other conflict zones. Their tools include detailed Maps Mania… more →
Posted in: Interactive Maps

Using Parallel Requests to Improve Web Performance

Yesterday I blogged about a change I made to my bots page and in it, I mentioned how the performance wasn’t necessarily as good as it could be. I had made the decision to go from server-side and build-time for the page to a purely client-side solution. At the end of the post, I asked folks to let me know if anyone would like to have me work on that performance issue, and, honestly, it kept popping up in my head so I figured I should tackle it. Before I begin talking about what I changed, let me review what I had done, and what the issues are. The Current Solution You can go to the bots page yourself, but in general, this is the process: Given a list of bots… For each one, get the... more →
Posted in: JavaScript

What is Your Climate Risk?

The German Foreign Office has released a new interactive map which visualizes climate and conflict risks around the world. The Climate Conflict Vulnerability Index Map identifies areas around the world where climate change and conflicts are likely to happen, and where people are especially vulnerable to these risks.How It WorksThe CCVI is built on three key factors:Climate: Looks at the risks Maps Mania… more →
Posted in: Interactive Maps

Getting and Displaying a Mastodon Post in Client-Side JavaScript

I’ve got a few pages here that are primarily built for my own use. One of them, my bots page, is a list of all the dumbsuper useful bots I’ve built for Mastodon (and Bluesky). The idea on this page is to show the latest post from each bot. The bots page makes use of two different shortcodes written in Liquid to do this. The first uses the RSS feed of the bot to get their last toot ID: const lastToot = async (instance, user) => { let rssFeedURL = `https://$ {instance}/users/$ {user}.rss`; try { let feed = await parser.parseURL(rssFeedURL); return feed.items[0].guid.split('/').pop(); } catch(e) { console.log(`getting last toot for $ {user} returned an error`); return... more →
Posted in: JavaScript

Take a Code Break Tomorrow

Just a quick note to my faithful readers out there – tomorrow, October 22nd, at 12PM CST (Cool Standard Time), I’ll be hosting my next episode of <Code><Br>: In the previous stream, I talked about charting with JavaScript, specifically using Chart.js. In this followup, I’ll attempt to use another library so we can compare and contrast. I don’t know about you, but that sounds like a lot of fun. (I really enjoyed the last stream.) And with this being the last stream before Halloween – I may even dress up! Raymond Camden… more →
Posted in: JavaScript
1 31 32 33 34 35 220