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
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
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 · 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 · 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
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
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
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
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
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
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
Moving all my blogs over to @astro.build. Substack is getting more and more bloated; it feels like it's becoming another Medium in the long term. @ghost.org is painful with Markdown-based workflows. They started with Markdown but went full-on with a WYSIWYG editor.
121
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 · 17/05/2025
I've started developing my own cross-poster because I don't want to limit my posting to just a single platform. Starting with X, Bluesky and LinkedIn. Later planning to grow it into full-on blog posts and newsletter.
460
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 · 09/05/2025
One more amazing project using OpenFreeMap: Streetview roadtrip simulator by @neal.fun Launched today and instantly became the #1 site using @openfreemap.org ! Neal reached out beforehand and generously provided a $150/month sponsorship via @github.com Sponsors, fully covering usage costs.
141
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
How many times have I received an important PDF by email, only to find it password protected by my bank or insurance company? Of course, the email usually includes instructions on how to determine the password - typically something based on your personal information, (1/3)
120
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 · 14/04/2025
I've just spent 3 days fixing the screenshot infrastructure of MapHub. Somehow, this part has the tendency to break more often than everything else altogether. (1/3)
110
Zsolt Ero @hyperknot.com · 14/04/2025
I've just spent 3 days fixing the screenshot infrastructure of MapHub. Somehow, this part has the tendency to break more often than everything else altogether. At this point, for Puppeteer, I've explored Chrome, Chrome Headless Shell, and even Firefox,
110
Zsolt Ero @hyperknot.com · 30/03/2025
Gemini 2.5 Pro unusable for coding? Something really strange is going on with Gemini 2.5 Pro. On one hand, it's supposedly the smartest coding model ever made. (1/4)
140
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 · 18/03/2025
Dan Snow created a beautiful website, opentimes.org. I love the minimal design, how immediately functional it is, and it even uses OpenFreeMap! At the bottom of the About page, I found: "I was inspired by the OpenFreeMap project and wanted to use my own domain knowledge to do something similar."
opentimes.org
OpenTimes
Free multi-modal travel times between U.S. Census geographies
3163
Zsolt Ero @hyperknot.com · 08/01/2025
HERE maps just became 10x more expensive. Turns out, they've been billing with the wrong unit price before: 0.00000899 vs 0.00008919 Now that's one thing you don't need to worry about with OpenFreeMap.
0132
Zsolt Ero @hyperknot.com · 07/01/2025
MapLibre GL JS v5.0.0 shipped a backwards compatibility breaking change, which will soon results in millions of broken @maplibre.org maps on the internet. I'm asking the dev team to revert this change in v5.0.1. Please join the discussion on GitHub: (1/8)
270
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 · 29/12/2024
I'm fascinated by @obsidian.md 's success. It's a tiny, bootstrapped company, started by two founders during COVID, running a 180K-member Reddit community, a web forum, and a popular Discord server. Do you know any other bootstrapped, non-open-source software that's as successful as Obsidian?
3140
Zsolt Ero @hyperknot.com · 29/12/2024
I wrote a new blog post about: corepack's packageManager field is breaking package.jsons
blog.hyperknot.com
corepack's packageManager field is breaking package.jsons
Today I Learned
030
Zsolt Ero @hyperknot.com · 28/12/2024
How do you deal with User Generated Content (UGC) SEO spam? I think anyone who allows UGC on a web app realizes that they will be targeted by SEO spam at some point. Nofollow definitely doesn't deter SEO spam efforts. My question is, how do big platforms handle this?
110
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
2nd stage of the AI age: AI Labs Need Your Data First stage of the "AI age" was getting inference costs down to "too cheap to meter". The second stage of the AI age is all about your data. I wrote a thread about it:
010
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 · 18/12/2024
Seeing which files are being processed by linter tools is surprisingly difficult. A common use case is when you're trying to debug why your linter is taking ages, and you discover it's trying to lint bundled JS files. Here are the shortest commands I could make for @eslint.org and @biomejs.dev:
210
Zsolt Ero @hyperknot.com · 14/12/2024
Does anyone know how parcel tracking websites like 17track and Parcelsapp make money? It seems like they require huge infrastructure, solving captchas, and a crazy amount of code that needs constant updating for every carrier's website (like FedEx, DHL, DPD, etc.).
100
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
I was looking for a simple universal JS lib that could handle OpenAI/Anthropic/Google responses without having to install each client lib. Considering all these do is JSON requests, those client libs are actually quite big - for example, OpenAI is 87 kB on its own (bundled with Vite), though Google
130
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
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
Reposted by Zsolt Ero
Jeremy Howard @howard.fm · 28/11/2024
Did you know that 99% of email today is spam? Your inbox isn’t 99% spam because AI is used to filter it. The same 99% will happen here too, but if AI researchers continue to get perma-banned for making available the datasets needed to filter it, it’s going to make this platform unusable.
4251064
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 · 28/11/2024
I created this video with this command: # pause 1 sec beginning + 3 sec end ffmpeg -loop 1 -i scroll.png -t 33 -r 30 -vf "scale=1920:-1, crop=1920:1080:0:'floor((ih-1080)*min(1\, max(0\, t-1)/29))'" -pix_fmt yuv420p output.mp4 The interesting thing about it, is that no matter what I tried,
110