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
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 · 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 · 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 · 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 · 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 · 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 · 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
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 · 19/05/2025
Crossposter progress update: Optimal splitting into threads works! It was a big one. Turns out I need dynamic programming to find the optimal splitting points in a thread. What does an optimal splitting point mean?
code
120
Zsolt Ero @hyperknot.com · 18/05/2025
Looking at @astro.build source code be like: returning a template string of JS code, which imports template strings of image paths, which maps regex-parsed HTML matches to async image objects, all while JSON-parsing a stringified regex-escaped string!
code
120
Zsolt Ero @hyperknot.com · 18/05/2025
Crossposter progress update: Posting on bsky works! Amazing DX and super friendly dev community on Discord. Posting on X works! Terrible DX, scary low quota + returns wrong quota information in response headers. I have no idea when it blocks me and for how long.
python_snippet
110
Zsolt Ero @hyperknot.com · 15/05/2025
I'm developing a local-first app and found conflicting information online about how much data I can actually store in localStorage. I found "Browser Storage Abuser", a 12 years old (!) website for stress testing the limits of different local storage options in browsers.
screenshot
120
Zsolt Ero @hyperknot.com · 12/05/2025
OpenAI o3 hallucinations are on a different level compared to anything I've seen before. Here o3 hallucinated a whole ecosystem! Everything here is 100% hallucinated!
screenshot
130
Zsolt Ero @hyperknot.com · 12/05/2025
Here is a small snippet I'm using to 'replace all' across all files in a directory tree. It uses ripgrep so it's super optimised, much faster compared to grep.
code
220
Zsolt Ero @hyperknot.com · 11/05/2025
I love when LLMs make a typo! It's so much out of their character that it feels like catching a shooting star. Here, Gemini wrote "Rable" instead of "Table."
screenshot
130
Zsolt Ero @hyperknot.com · 27/04/2025
Today I learned, sitting on a train: Ping packets can still return after 20 seconds! You'd think that your internet connection is broken, but no, somewhere out there, there is a packet destined for your laptop, arriving 20 seconds later!
terminal
140
Zsolt Ero @hyperknot.com · 16/04/2025
like your date of birth, etc. But you can’t archive them like this; you need to remove the password first. I found the best command-line tool for the job to be github.com/qpdf/qpdf or `brew install qpdf` Here’s how to use it: (2/3)
code
210
Zsolt Ero @hyperknot.com · 15/04/2025
Office 365 isn’t just accidentally messy. Complexity is the product. Of course it's misconfigured. That’s what they’re selling. Meanwhile, I’ll just wait for the client to notice their email silently stopped working. x.com/signulll/status/1908900460771… (5/5)
x post
020
Zsolt Ero @hyperknot.com · 15/04/2025
We cannot reach one of our clients because their Office 365 is configured to "only accept messages from people in its organization or on its allowed senders list." I don't mean I'm trying to cold-email someone - we've exchanged 50+ emails over the years. (1/5)
email screenshot
110
Zsolt Ero @hyperknot.com · 28/03/2025
Thanks to @ahocevar.bsky.social, the developer behind @openlayers.org, OpenFreeMap now has an official example for OpenLayers.
162
Zsolt Ero @hyperknot.com · 03/01/2025
New year, new updates on probably one of the biggest MapHub maps (both in size and effort): UK Bus Map W.I.P by JayCrab note: Technically it's definitely pushing MapHub's client-side code to its limits - it's a 20 MB GeoJSON or 5 MB gzip compressed.
250
Zsolt Ero @hyperknot.com · 20/12/2024
My X timeline is full of "AGI arrived" because of this chart. But please notice: this chart is logarithmic on the X axis and linear on the Y axis! If something, this proves that we'll never get to AGI by adding exponential resources for linear progress!
040
Zsolt Ero @hyperknot.com · 19/12/2024
They seem to be taking a different direction compared to other players, and they also happen to have the best model for coding! Claude Sonnet is actually so good that Microsoft was forced to start offering it in GitHub Copilot; otherwise, developers would have left the platform.
110
Zsolt Ero @hyperknot.com · 19/12/2024
Ironically, this seems to include even the new $200/month Pro plan! One company surprisingly missing from the last 2 weeks' series of announcements was Anthropic, which happens to be the only company that is not training on your data.
110
Zsolt Ero @hyperknot.com · 19/12/2024
allowance of "Advanced voice mode" and have even started 1-800-ChatGPT, a free phone line where you can talk with ChatGPT! The catch? You guessed it - for all consumer plans (aka not Teams or Enterprise), your data is used for model training.
110
Zsolt Ero @hyperknot.com · 19/12/2024
And if that's not enough, you get it entirely free on Google AI Studio and through the API! The catch? When you use the Free version, Google uses your data for model training.
110
Zsolt Ero @hyperknot.com · 19/12/2024
The catch: in all plans under $19 per month, they are training on your data by default. Google releases Gemini 2.0 Flash, one of the most advanced models ever, with real-time audio and video-streaming input!
120
Zsolt Ero @hyperknot.com · 19/12/2024
Ilya Sutskever announced in a NeurIPS talk, that AI labs are running out of data, "The fossil fuel of AI". "We have but one internet" - the data on the internet is limited (also meaning that they've already scraped whatever they could).
182
Zsolt Ero @hyperknot.com · 18/12/2024
@solidjs.com the command in your hero section acts like a newline character, trying to paste it as two separate commands.
120
Zsolt Ero @hyperknot.com · 13/12/2024
I don't mean 98% reliability, I mean under 50%! So 1 in 2 requests fails. If you run a business depending on these models, how do you handle this? Screenshots from OpenRouter.
000
Zsolt Ero @hyperknot.com · 13/12/2024
Interesting side effect of this "AI Launch Week" is that all providers' APIs have their worst uptime ever. Yesterday, OpenAI's API was down for like 4 hours. Today, Gemini's API is basically unusable. Even Anthropic - who is otherwise having a quiet week - is extremely unreliable.
130
Zsolt Ero @hyperknot.com · 11/12/2024
Everything they do is the most overcomplicated, architecture-astronaut level stuff. Like here, just the "packages" subdir is 73 thousand lines of code. For an API wrapper!
110
Zsolt Ero @hyperknot.com · 09/12/2024
Looking into wood vs plastic chopping boards and I keep finding research stating "per-person annual exposure of ... 49.5 g of microplastics from a polypropylene chopping board". An IKEA plastic chopping board is 210 g. How can you get 50 g of microplastic per year out of one board?
340
Zsolt Ero @hyperknot.com · 29/11/2024
I also made a tiny script that monitors both servers once per minute and sends me a Telegram notification in case one is down. Normally I don't get anything, but in the last few days, I was getting some errors from the Finnish server. Yesterday it was offline for 18 minutes.
110
Zsolt Ero @hyperknot.com · 29/11/2024
Many of you don't know, but OpenFreeMap.org is hosted on 2 different servers in 2 different countries: one in Germany and one in Finland. The DNS setup is configured so that if one server is offline, your browser automatically picks the other one.
1101
Zsolt Ero @hyperknot.com · 28/11/2024
Hetzner cuts traffic from 20 TB –> 1..5 TB on US VPSs Only US locations affected, Ashburn (ASH) and Hillsboro (HIL). Just received by email.
120
Zsolt Ero @hyperknot.com · 27/11/2024
Bluesky is real. I have 2k followers on both platforms, and I cross-posted exactly the same 3 posts today.
120
Zsolt Ero @hyperknot.com · 27/11/2024
Reddit notifications about "MapHub" come up in the most interesting places, today morning I got to know about a map of "stained glass windows". maphub.net/potdom/stained-glass-mas…
250
Zsolt Ero @hyperknot.com · 26/11/2024
Once in while you get an email like this and you just want to frame it. Happy SaaS moments at maphub.net
120
Zsolt Ero @hyperknot.com · 25/11/2024
You need AWS and Kubernetes and automatic load balancing for uptime they say. A $13 Hetzner server tends to disagree.
4250
Zsolt Ero @hyperknot.com · 21/11/2024
Trying a new layout for llmsky feed filter app:
000
Zsolt Ero @hyperknot.com · 21/11/2024
LLMSky works, aka, filter your feed via LLMs. I decided to publish this in a pre-alpha state. #buildinpublic #ATProto
screenshot of LLMSky
130
Zsolt Ero @hyperknot.com · 21/11/2024
Reconstructing all the visible text from a Bluesky post is not simple. So far I think this approach gets most things right. Embed, image alt text, video alt text, embed.media.external, embed.external without media and my favourite, the post.embed.record.record.value.text.
code
021
Zsolt Ero @hyperknot.com · 21/11/2024
And persistSession like this. Then it'll call getSession, not createSession, which is super strictly rate limited.
010