Jack Harrhy

Linkblog/2025/02/07

Melonland, Placemark Podcast, Chat bad UI for AI, 'vibe coding', Project 2025 Dox, not an optimization problem, `sqlite-page-explorer`, Meta torrents.

Welcome to Melonland

One of the more complex sites on the indieweb I’ve seen.

So much inspo…

Talking about Placemark on the Software Sessions Podcast

Tom MacWright is a prolific contributor in the geospatial open source community. He made geojson.io, Mapbox Studio, and was the lead developer on the OpenStreetMap editor. He’s currently on the team at Val Town.

In 2021 he bootstrapped a solo business and created the Placemark mapping application.

He acquired customers and found steady growth but after spending two years on the project he decided it was financially unsustainable. He open sourced the code and shut down the business.

In this (great) podcast epiosde, Tom talks about building geojson.io during his time at Mapbox, a tool I’ve made ample use of during my time at my last gig, I did actually use it to draw a bounding box before tasking a satellite!

But, because lon lat lat lon lon lon lat lon nonsense, at some point in time something messed up, and we ended up getting a image back very far from our area of interest…

I actually did have some email correspondence with Tom at my last job, since we were using Mapbox similar to Placemark and doing non-standard stuff with it:

Note, a lot of this probably won’t be useful to you if you haven’t messed with Mapbox, however its interactions I’ve had with Tom which the greater internet has never seen, which I think would be nice for others to hear about as well!

Hello Tom,

[…]

I have a question […] regarding your usage of React/Blitz interacting with Mapbox GL JS.

I’ve been brought onto a project already using https://visgl.github.io/react-map-gl/ to interface with Mapbox GL JS, which at times feels like a nice abstraction, but as you dig into more complicated workflows it becomes… less nice.

I guess my question is: how do you usually interface with Mapbox GL JS in the code you write for placemark? is it similar to either of the above approaches? something different?

Thanks, Jack Harrhy

Tom got back to me, with a nice answer:

Hi Jack,

My approach to using Mapbox GL JS with React is much more similar to the one Mapbox outlines. Combining any kind of imperative stateful library with React is a bit of a challenge, and maps are pretty complicated - so, honestly, this is one of the more complex parts of Placemark. I wrote a class that wraps around the map instance and makes certain things more efficient - skipping repeated calls to mapbox gl js functions, memoizing stuff. But the map isn’t abstracted as a component like react-map-gl.

I share basically the same feelings around react-map-gl. It makes the very simplest uses of Mapbox GL accessible, but falls apart pretty quickly. I’d much rather have access to all the raw APIs, even if that requires a bit of extra work.

Hope that helps!

-Tom

We did actually move towards for some projects near the end of my time at my last job doing it in this way, it was very freeing!

Tom also kindly forked mapbox/geo-viewport on my request, the original repo was broken due to crash introduced in the latest version of that repository.

Thank you for what you do for software Tom!

Chat is a bad UI pattern for development tools

I like Cursor, as mentioned in previous linkblog entries., but I tend to agree with this article.

Current AI tools pretend writing software is like having a conversation. It’s not. It’s like writing laws. You’re using English, but you’re defining terms, establishing rules, and managing complex interactions between everything you’ve said.

Cursor feels like its moving towards this with its Rules for AI features, but it seems like Daniel De Laney is pushing for this sort of UX to be more at the core of how you interface with an LLM when it comes to writing software from the start.

When your intent is in a document instead of scattered across a chat log, English becomes a real programming language:

  • You can see your whole system at once
  • You can clarify and improve your intent
  • You can track changes properly
  • Teams can work on the system together
  • Requirements become their own quality checks
  • Changes start from clear specifications

The first company to get this will own the next phase of AI development tools. They’ll build tools for real software instead of toys. They’ll make everything available today look like primitive experiments.

I hear buzz about Windsurf, maybe that will be the first to hop on this, it seems their existing stuff is like Cursor compose with more juice, but Cursor also has wind behind its sales, so we’ll see!

Competition is good :)

There’s a new kind of coding I call “vibe coding” […]

I am totally a vibe coder, I have a project I’m planning on writing a proper post on that I threw together yesterday, and it was very much programmed by vibes… it felt weird.

A reply to that post though:

The amount of LLM assist you receive is clearly some kind of a slider. All the way on the left you have programming as it existed ~3 years ago. All the way on the right you have vibe coding. Even vibe coding hasn’t reached its final form yet. I’m still doing way too much.

Screenshot 2025-02-07 at 3.26.19 PM.png

Project 2025’s Creators Want to Dox Wikipedia Editors

I’ve usually been someone to think those who put their head in the sand and ignore world news are silly.

But I’m starting to feel like stuffing my head into the sand.

you are not an optimization problem

Yet again, my life is not an optimization problem, neither is yours. Yes, we can always aim for continual improvement, but we will never be completely perfect at handling life. This is to comfort you, that the world is far too large and complex to be perfect - be it a routine, personality, or our way of handling challenges.

Simon Willison’s coverage of sqlite-page-explorer

Very cool project, a single binary tool that lets dig into the inner workings of a SQLite file on disk.

I could link right to the repo, but as usual, Simon’s coverage is succinct and to the point as always.

Seeing redbean in the wild is also cool, I currently have no idea what I would use it for, but I would love to also have a project using it someday.

“Torrenting from a corporate laptop doesn’t feel right”: Meta emails unsealed

Seems like meta trained on LibGen / Anna’s Archive, ha!

I mean, yeah, its a huge corpus of human writing in digital form that is designed to be easily accessible to the masses.

Some folks talking about Aaron Swartz, how an individual 12 years ago torrenting large sections of written information was vilified, but you know Meta’s likely going to go scot free here.