Sign in

Zsolt Ero

@hyperknot.com
3.5K followers 2.7K following 338 posts

Building openfreemap.org and maphub.net Writing on blog.hyperknot.com Loves paragliding

PostsRepliesMedia
Zsolt Ero @hyperknot.com · 07/04/2026
So it turns out, users are sending all their authorised session data to Chinese companies, who offer Free endpoints but read/train on our data.
030
Zsolt Ero @hyperknot.com · 07/04/2026
Many of the free / cheap Chinese endpoints explicitly say that "model collects prompt and completion data that can be used to improve the model". Now, users use OpenClaw to manage their most private data, like Gmail and give explicit permissions to OpenClaw after they've authorised 2FA.
240
Zsolt Ero @hyperknot.com · 07/04/2026
And this is how people happily gave all their 2FA authenticated email sessions to Chinese companies.
160
Zsolt Ero @hyperknot.com · 02/03/2026
It can happen that an update is skipped. If you make an automated script, don't hard-code to last weeks' days, simply use the last version available.
010
Zsolt Ero @hyperknot.com · 02/03/2026
The Wikidata SPARQL endpoint was timing out and not available on that day. It'll be picked up with this week's run.
000
Zsolt Ero @hyperknot.com · 02/03/2026
The current headers say 20260218, I'll have to look into what happened with the 0225 one. Thanks for the report.
210
Zsolt Ero @hyperknot.com · 12/12/2025
It's only providing source data for your app/website. You implement whatever you want in your app, using MapLibre libraries for example. But yes, you can absolutely make this app you describe using OpenFreeMap data.
110
Zsolt Ero @hyperknot.com · 06/12/2025
This is the state of the art on ChatGPT when asked to create a map (topic was hot springs in Cyprus). I guess interactive maps are safe for now.
070
Zsolt Ero @hyperknot.com · 29/09/2025
I don't know the source code, but OpenFreeMap is probably always the underlying basemap. Some styles add symbols, some do not. You can always copy-paste the symbol layers and make your own JSONs. Have a look at the Custom Styles section here: openfreemap.org/quick_start/
010
Zsolt Ero @hyperknot.com · 27/08/2025
It's processed inside planetiler. Can you open an issue on planetiler? github.com/onthegomap/p...
github.com
GitHub - onthegomap/planetiler: Flexible tool to build planet-scale vector tilesets from OpenStreetMap data fast
Flexible tool to build planet-scale vector tilesets from OpenStreetMap data fast - onthegomap/planetiler
100
Zsolt Ero @hyperknot.com · 11/08/2025
Yes, I posted this as a reply to a comment here. Also, received a lot of bad comments on my blog post, I removed some of them.
000
Zsolt Ero @hyperknot.com · 11/08/2025
This is amazing, a beautiful, global terrain layer in PMTiles format! Thank you for making this Oliver @oliverwipfli.ch!
071
Zsolt Ero @hyperknot.com · 11/08/2025
Look, this is the 1st Google result for wplace live, just below the main website. Maybe the majority of users didn't use scripts, but the ones who did are definitely responsible for the load:
160
Zsolt Ero @hyperknot.com · 10/08/2025
Just by donations. Currently they are at $500 per month, which is just enough to cover the infrastructure costs, and a tiny bit more.
010
Zsolt Ero @hyperknot.com · 10/08/2025
OpenFreeMap uses OpenStreetMap data, to allow you to add an interactive map to a website or mobile app. OpenStreetMap doesn't allow unconditional usage of their rendered map tiles.
010
Zsolt Ero @hyperknot.com · 10/08/2025
Good to know this exists. I wonder what will be the solution in our case.
010
Zsolt Ero @hyperknot.com · 10/08/2025
openfreemap.org
openfreemap.org
OpenFreeMap
OpenFreeMap – Open-Source Map Hosting lets you display custom maps on your website and apps for free.
330
Zsolt Ero @hyperknot.com · 09/08/2025
I log into Cloudflare and I see THIS for the last 24 hours. What? 3 billion requests in 24 hours? What on Earth is that? Also, 215 TB of traffic from tiny, 70 kB files? The article continues on my blog: blog.hyperknot.com/p/openfreemap-survived-100000-requests
traffic
4206
Zsolt Ero @hyperknot.com · 09/08/2025
2025/08/08 23:08:16 [crit] 1084275#1084275: *161914910 open() "/mnt/ofm/planet-20250730_001001_pt/tiles/8/138/83.pbf" failed (24: Too many open files) ... This is weird. I've never seen anything like this. I check nload, and it shows huge traffic.
170
Zsolt Ero @hyperknot.com · 09/08/2025
serving tiles from Btrfs proved to be a great choice, nginx is amazing, and life is good. Then, out of the blue, I'm getting reports that some tiles are not loading, which normally means tile generation bugs, but not this time. I look into the nginx logs and see this:
150
Zsolt Ero @hyperknot.com · 09/08/2025
OpenFreeMap survived 100,000 requests per second I was about to post about how nice the last 10 months of OpenFreeMap have been. The architecture has really proven itself to be great, Cloudflare has agreed to sponsor the bandwidth, Hetzner servers are super stable as always,
511818
Zsolt Ero @hyperknot.com · 12/07/2025
Is CSS scrollbar-gutter support like totally broken in almost all browsers? This is Chrome. Safari is broken in a different way. I don't want to add JS based scrollbars, but it's really hard to fix this in a cross-platform way.
screenshot
060
Zsolt Ero @hyperknot.com · 19/06/2025
Ultimate marketing flex by Midjourney: 1. Make every user connect with the "Midjourney Bot." 2. Notify 21 million users of a new launch, for free! (Even if they left ages ago.)
040
Zsolt Ero @hyperknot.com · 18/06/2025
Told them about the situation, now waiting for their reply. There is no other option but to cancel it and have it wired.
030
Zsolt Ero @hyperknot.com · 03/06/2025
From what I found out, now EU bank is doing this either electronically or in person anymore.
020
Zsolt Ero @hyperknot.com · 03/06/2025
What else can I do? Can I send it back to them (by mail) and ask them to send the money by wire transfer / ACH instead?
210
Zsolt Ero @hyperknot.com · 03/06/2025
One US client sent us a USD paper check in the mail, instead of the wire transfer / ACH we'd asked them to use. Now I have this piece of paper for $1100. What can I do with it? I'm in the EU and I have no idea where I can possibly cash or deposit this check.
120
Zsolt Ero @hyperknot.com · 30/05/2025
blog.hyperknot.com/p/investigat...
blog.hyperknot.com
Investigating AI Manipulation in Viral Chinese Paraglider Video
Update: news sites have pulled the video now, confirming parts of it were AI generated.
000
Zsolt Ero @hyperknot.com · 30/05/2025
I think the other two scenes might be real, though, recorded with a 360 camera on a selfie stick - a common setup for paragliding videos. There are definitely some questions though... For the full investigation, read the full article here.
100
Zsolt Ero @hyperknot.com · 30/05/2025
In this scene, the otherwise black helmet is white, and the perspective falls apart in a strange, distorted way, typical of lower-quality AI-generated videos. Also, here, he is using a sitting harness (legs visible) whereas in the real ones, he is in a pod-style harness.
100
Zsolt Ero @hyperknot.com · 30/05/2025
I've been paragliding for 18 years and follow the progress of AI very closely, but even I couldn't say with 100% certainty if this video is real or fake. One scene is definitely fake: the one where the camera makes a move that would only be possible from a drone.
100
Zsolt Ero @hyperknot.com · 30/05/2025
It's literally on every news website: CNN, BBC, The Guardian. Now, what makes this story really interesting is the accompanying video. There is one version from The Guardian, which had 300k views in 17 hours.
100
Zsolt Ero @hyperknot.com · 30/05/2025
Right now, you might have read the news that a Chinese paraglider pilot, Peng Yujiang, got sucked into a cloud and ended up at 8,598 meters / 28,000 feet.
cover
131
Zsolt Ero @hyperknot.com · 29/05/2025
Perplexity – which I thought would give the best answer as it can research online – gave a totally useless but super-long answer.
perplexity
000
Zsolt Ero @hyperknot.com · 29/05/2025
o3 also gave a nice answer, explaining that it's a change introduced in iOS 16:
o3o3-2
100
Zsolt Ero @hyperknot.com · 29/05/2025
Claude was absolutely wrong, recommending I use an Apple Watch and even saying that "Your 'apologize and call back' approach is probably the most reliable solution" :-)
claude
100
Zsolt Ero @hyperknot.com · 29/05/2025
OK, I asked Gemini 2.5 Pro, o3, Claude Sonnet 4, and Perplexity. Gemini gave a perfect answer! It explained why it happens: an accessibility setting was inverted on iOS 16, and many users got caught by this. I personally never touched this, so I'm surprised by its default value.
gemini
110
Zsolt Ero @hyperknot.com · 29/05/2025
It always terminates the call for me. These days, I apologize in advance, explaining that I have to pay and will call back in a few seconds. Apple Pay came out in 2014. Why isn't this a solved problem?
110
Zsolt Ero @hyperknot.com · 29/05/2025
Honest question: How do you pay using your iPhone while on a call? I mean the one where I double-click the side button and pay at a cashier?
120
Zsolt Ero @hyperknot.com · 23/05/2025
so the preview image is displayed correctly. This is good for a start, but this will probably need some kind of config value in the future. Adding scheduling and Frontmatter support is the next step. But most importantly, I think I'm happy with it so far. It's working! It's usable from CLI now!
000
Zsolt Ero @hyperknot.com · 23/05/2025
Different handling for X Premium and X Free accounts. X Premium has 25000 max char limit; X Free has 280. Moving the link on X from the first post to the first reply. If there are multiple links, I currently move everything into the first reply, but it might make sense to have one link per reply,
100
Zsolt Ero @hyperknot.com · 23/05/2025
Crossposter final touches Multi-day threads. I can now continue a post after it has been posted. First, I create post1.md, then later as I progress post2.md, etc. After each post, the status is saved into a JSON, and when the next part is posted, it continues the original thread.
120
Zsolt Ero @hyperknot.com · 22/05/2025
Adapting to Elon's version of free speech. Interesting to observe this progress as someone from Eastern Europe.
110
Zsolt Ero @hyperknot.com · 22/05/2025
Crossposter progress update: I just remembered that I cannot write "Bluesky" on X, the land of free speech. Asked Gemini how to make similar-looking Unicode characters, which look the same but are actually not the same string.
unicode version
220
Zsolt Ero @hyperknot.com · 20/05/2025
I totally recommend doing it! Once you get back in control of your own content it feels so effortless to write. I never got to write content before as by the time I customized to each platform, I lost all the creative energy.
010
Zsolt Ero @hyperknot.com · 20/05/2025
This AST-based rewrite turned out to be the biggest task so far. Every single part of the app had to be rewritten, but now I have Python TypedDicts for LinkTokens and ImageTokens. It was worth the time - the codebase is really nice to read now.
010
Zsolt Ero @hyperknot.com · 20/05/2025
It supports full Markdown-style links, so the link text doesn’t have to be the URL itself (e.g., https://...), but can be proper HTML-style links with actual text. It's funny, because there's no way to do this using the official web client - but it’s definitely possible via the API.
110
Zsolt Ero @hyperknot.com · 20/05/2025
The biggest issue was that LLMs kept hallucinating it as markdown-it, so I had to double-check and write everything by hand. BTW, Bluesky API is amazing!
new AST based tokens in JSON
110
Zsolt Ero @hyperknot.com · 20/05/2025
I decided to go all-in and rewrote everything using a proper Markdown AST parser. I had to make a plugin for @handle support, but the mistune library was actually quite nice to work with.
110
Zsolt Ero @hyperknot.com · 20/05/2025
Crossposter progress update: I was using regex-based parsing for links, images, @handles, etc. It started out simple but became increasingly confusing as I tried to synchronize this regex-based parsing for Bluesky posts with the optimal splitting code.
110