The Big Baguette Index / / No Comments The United States has The Economist’s Big Mac Index to measure purchasing power through burgers, but France now has a more culturally appropriate metric. Enter the Baguette Index, a data project that tracks and analyzes the price of the baguette de tradition to map the true cost of living across l’Hexagone.How the Data Was GatheredTo map out the geographic variations in the cost of France’s most Maps Mania… more → Posted in: Interactive Maps Tagged with: Baguette, Index
My First AI Skill for My Blog / / No Comments I’ve been a professional writer now for thirty plus years, and honestly, it’s one of the things I’m most proud about. When generative AI first exploded on the scene, a lot of people used it to help them write, and frankly, that wasn’t for me. I’m not the best writer, but I damn well know how to write and damn well know my own voice. That being said, I’ve been really interested in how GenAI can help with the process. I first wrote about this over two years ago: Using Generative AI as Your Content Assistant. In that post I talked about using GenAI for two very specific tasks: Helping with my titles Writing the description (which is part of the metadata for a... more → Posted in: JavaScript Tagged with: blog, first, skill
Dang good Office parsing on the web with officeParser / / No Comments A few weeks ago I wrote about using Chrome’s built-in AI support to summarize documents – "Summarizing Docs with Built-in AI". This was a followup on an earlier post that was PDF only and made use of an excellent library, officeParser, to work with Microsoft Office files. This library worked well, but had one issue that made it a bit harder to use. Parsing a doc itself was super easy: const getAST = async (file, config) => (await OfficeParser.parseOffice(file, config)); But the issue I ran into was taking that result and turning it into something meaningful for Chrome’s model to analyze. PDFs supported a toText() method but for other formats I had to do a bit of... more → Posted in: JavaScript Tagged with: Dang, GOOD, office, officeParser, Parsing
PubCrawlr – the Global Pub Crawl Generator / / No Comments If you want to plan your next wild night out then you need my new global pub crawl generator – PubCrawlr.The map lets you click anywhere in the world to instantly generate a walking pub crawl between nearby bars. You can also search for any city, neighborhood, or address using the built-in location search box.After selecting a location the app:Finds nearby barsOptimizes the walking orderDraws Maps Mania… more → Posted in: Interactive Maps Tagged with: Crawl, Generator, global, PubCrawlr
Links For You (5/17/26) / / No Comments Happy Sunday, and I hope your Sunday is going better than mine. One of my kids just went to use the dryer and sparks flew. I don’t mean metaphorically. Nothing like the thought of replacing another major appliance to brighten up your day, amiright?!?! Find Your (Tech) Community First up is a new endeavour by Brian Rinaldi to help fill the gap left behind by Meetup.com (which is still a thing just not a good thing lately) and the lack of smaller and more affordable community conferences. DevRel(ish) is a community site supporting tech groups of all sizes and nature who need help organizing IRL meetups. According to the launch announcement, this is not meant to be a replacement for larger... more → Posted in: JavaScript Tagged with: 5/17/26, links
Drawing Custom Population Polygons / / No Comments Tom Forth’s Population around a Point is one of those wonderfully simple map tools that instantly invites exploration. Click anywhere on the map, choose a radius, and it estimates how many people live within that circle. Under the hood, it uses the Global Human Settlement Layer (GHSL) population grid for 2024, querying population points stored in a massive SQLite database.Now Maps Mania… more → Posted in: Interactive Maps Tagged with: custom, Drawing, Polygons, Population
Is it hotter or colder this year? / / No Comments Where I live could generously be called "warm", but is usually closer to the surface of the sun, especially in late summer. That’s why when the weather is not oppressively hot, I try my best to enjoy it. We’re mid-May now and honestly, this spring has been… pleasant. Suspiciously pleasant but I’ll take what I can get. The last few weeks I’ve been telling myself that the weather must be a good bit cooler than last year, and I finally decided to do something about it. I worked with Claude and created a little web app that: Lets you enter a free form address and then use Geocoding to convert it to a proper longitude and latitude. This is a super simple geocoding... more → Posted in: JavaScript Tagged with: colder, hotter, this, year
Send me a message in a panel… / / No Comments On my birthday a few weeks ago, one of things I got was something I’ve wanted to play with for a while, the Divoom Pixoo64 pixel frame. This is pixel art frame you can hang on your wall and with an app, select art, clock faces, and more. It’s fun, although the app itself isn’t my favorite. But – what excites me is that it has an API you can use to change what’s shown on the frame. I actually built a demo of this with Webflow you can see below: Play Video I was thinking about how else I could play with the API and decided to do something a bit risky – build a tool that lets you (yes, you!) send me a message right to my device. How did I do it?... more → Posted in: JavaScript Tagged with: message, panel..., Send