How Poland Drifted to the West

Today’s #30DayMapChallenge is Polygons. At the risk of starting World War III, I’ve created a map of Poland’s Historical Borders. The map uses polygons to show how Poland’s borders have changed at different points in its history. The historical boundaries were downloaded from OpenHistoricalMap. The map includes three snapshots: the semi-autonomous Congress Kingdom of Poland in 1815, the Second Polish Republic immediately before the German and Soviet invasions of 1939, and the post-war borders established in 1945. But rather than simply displaying these three historical boundaries, I thought it would be interesting to use turf.js to calculate how much territory... more →
Posted in: Interactive Maps

Links For You (11/1/26)

Happy Sunday, and happy "Saints have a bye week so they can’t lose" day. That may be bitter and I shouldn’t write off their season yet but… maybe next year? Of course, this is just one more kinda crappy thing going on amongst a giant pile of other crappy things so – let’s just get right to the links, shall we? When job hunting turns into a security lesson Everyone knows the job market is hell now, and to be honest, hell may be a bit too kind. Now imagine you are considering a job, download a take home test, and discover it’s actually a hack attempt. Appaji C. details the attack here: "I Inspected My Take-Home Interview Project. It Was a Whole... more →
Posted in: JavaScript

How to Navigate the Roman Empire

The Tabula Peutingeriana is one of the most remarkable surviving maps from the ancient world. Held at the Austrian National Library in Vienna, it is a medieval copy of a Roman road map, originally drawn on a parchment scroll almost seven metres long and just 34 centimetres high. The map depicts the road network of the Roman Empire, stretching from the British Isles and the Atlantic coast to the Middle East and India. Thousands of place names, roads and distances are recorded along its routes. Unlike a modern geographical map, the Tabula Peutingeriana makes little attempt to represent the world to scale. Its extraordinary elongated shape, with the Mediterranean compressed into a narrow strip,... more →
Posted in: Interactive Maps

How the World Draws the World

I recently shared this map (above) showing the countries of the world as drawn by over 3,000 people playing the Borderline country border game. This combined map brings together all the borders and coastlines drawn by players in Borderline and its companion game, Coastlines. In Borderline, players attempt to draw the outlines of individual countries on a blank map from memory. The results can be surprisingly interesting, which is why, alongside the global map above, you can also explore How the crowd draws every country.  This multiple-map visualization animates between each country’s actual borders and a composite outline created from all the players’ attempts to... more →
Posted in: Interactive Maps

Generating PDF Invoices from Word Templates with officeParser

Last week I shared a demo ("Generating PDFs from Word Templates with officeParser") that made use of the awesome officeParser open source library. That demo was a simple "customer report" web app that took custom data and a Word template. Once the form was submitted, the library converted tokens in the Word template to real data and output a PDF. I decided to build another demo using the library, this time on the server with a simple Node.js script. As I mentioned previously, this new feature mimics Adobe’s Document Generation API. At the time I wrote my blog post, the library just supported simple transformations. So given “ in your Word template, if you passed... more →
Posted in: JavaScript

A Fair Election Map for the Midterms

Will there be fair elections on November 3rd? I can’t promise that, but Karim Douieb can promise a fair election map. His 2026 House Forecast Map replaces the standard geographical congressional district map with one where every district is equal in size. Click the “One seat, one cell” button, and the map morphs from a ‘geographic map into one where each state is resized by its seats and every district gets the same area.’ Reading the Battlefield The interactive map synthesizes data from the Cook Political Report, categorizing all 435 House seats according to race competitiveness ratings: Solid / Likely / Lean Democrats: 214 seats Solid / Likely / Lean Republicans:... more →
Posted in: Interactive Maps

Generating PDFs from Word Templates with officeParser

I’ve been singing the praises of the officeParser library for a while. It’s an open source JavaScript library that can parse, extract, and convert between PDFs and Office documents, as well as OpenOffice, ePub and more. My demos have all focused on client-side examples but obviously the library would work great in a server side workflow as well. I haven’t worked at Adobe for years now, but I still get strangely excited working with documents. I’ll just add that to the long list of reasons I’m a big nerd. A few weeks ago, I reached out to Harsh Ankur about an idea inspired by Adobe’s Document Generation API. This was probably my favorite API in their suite of... more →
Posted in: JavaScript

Building the Unicorn-themed app of my dreams with TinyJS

Everyone likes to talk about light versus dark theme while no one is addressing the real need for our users – a proper unicorn theme. I mean, take a look at this beauty: This is Uninote, a desktop note taking application that – well – takes notes. You create notebooks, write notes, and that’s it. No AI features. Nothing complex, just a note taking app. I’ve had a love/hate relationship with these apps for years. I was a huge Evernote fan until it went to poo. I currently use OneNote and… it’s ok but I wish it was better. And yes, before folks chime in with suggestions, I’m aware I’ve got choices, but I "share" note access with... more →
Posted in: JavaScript
1 2 3 … 249