Sign in

Ian Wagner

@ianwwagner.com
95 followers 61 following 77 posts

Explorer of 🌏. Originally from the east coast 🇺🇸. 🇪🇪 e-Resident. Living in 🇰🇷. Serial entrepreneur. Current work: cofounder of @stadiamaps.com. Normally @ianthetechie@fosstodon.org but checking this out too ;)

PostsRepliesMedia
Ian Wagner @ianwwagner.com · 14/02/2026
I guess another option MIGHT be to compile the C++ library to WASM with emscripten. That’s not a very easy solution and will have a performance hit but might be a reasonable tradeoff depending on the circumstance.
000
Ian Wagner @ianwwagner.com · 14/02/2026
Yeah unfortunately there isn’t an Amazingly ergonomic solution Beyond what others already suggested with caches, or porting the dependency to Rust. (This has to be one of the most under appreciated things about Rust: if the whole project is Rust you don’t have any issues.)
100
Ian Wagner @ianwwagner.com · 14/12/2025
It's an inherent flaw in a centralized system. And yeah, it's not just the UK. I think Australia and many US states either currently have or are considering bans. Which, to be clear, I COMPLETELY support in principle. But it's just a data honeypot and ripe for abuse by governments.
200
Ian Wagner @ianwwagner.com · 14/12/2025
It seems BlueSky is attempting to start collecting personal data for policing purposes now. I’m Not very active here anyways, but will be less so in the future. Follow me on Mastodon or my blog if you’d like to stay up to date.
230
Ian Wagner @ianwwagner.com · 18/11/2025
Bored of scrolling social media during the CloudFlare outage? Maybe you can suggest an even more ergonomic trackball for me ;) ianwwagner.com/elecom-deft-... (Blog ironically not down as it's hosted on GitHub Pages.)
ianwwagner.com
Elecom Deft Pro - Two Months In
It's not quite two months in, but I said I'd give an update on the Elecom Deft Pro after some use, s...
030
Ian Wagner @ianwwagner.com · 16/11/2025
TBH I don't feel safe returning anytime soon.
010
Ian Wagner @ianwwagner.com · 10/10/2025
huh... anything "interesting" with your network like using a VPN? I tried it just now on my Korean home WiFi and on cell data without issue.
100
Ian Wagner @ianwwagner.com · 09/10/2025
hmm… the server is GitHub Pages 😅 Maybe they had an outage?
100
Reposted by Ian Wagner
Mike Galsworthy @mikegalsworthy.bsky.social · 04/10/2025
History repeats.
266114995525
Ian Wagner @ianwwagner.com · 07/10/2025
New on the blog: const assertions. ianwwagner.com/const-assert...
ianwwagner.com
Const Assertions
I'm currently working on a project which involves a lot of lower level data structures. By lower lev...
110
Ian Wagner @ianwwagner.com · 27/09/2025
New trackball arrived today. I wrote a bit about it here: ianwwagner.com/elecom-deft-...
ianwwagner.com
Elecom Deft Pro - First Impressions
I recently picked up a new trackball to replace my prematurely aging Elecom HUGE. Here are my first ...
010
Ian Wagner @ianwwagner.com · 08/09/2025
New on the blog: ianwwagner.com/finishing-dr...
ianwwagner.com
Finishing Dragonball in Korean
Over the past few days of vacation I finally had the chance to finish reading Dragonball! I started ...
000
Ian Wagner @ianwwagner.com · 08/09/2025
Dude, Four Tet is SO GOOD!
010
Reposted by Ian Wagner
Stadia Maps @stadiamaps.com · 01/08/2025
🪄 Good AI tooling, especially for APIs, isn't automatic or intuitive. 🪄 In fact, our first attempts failed spectacularly. Read the first post in a new series we're writing about how to build great AI tools (including #MCP servers) for #API companies. 👇 stadiamaps.com/news/ai-tool...
stadiamaps.com
AI Tools for API Companies: AI Needs Context, or How Our Auto-Generation Failed Spectacularly
Why our obvious approach to building MCP servers failed spectacularly, and what we learned about AI-native API consumption. This is the first post in our series about AI tools for API companies.
011
Ian Wagner @ianwwagner.com · 04/07/2025
(Or, a more cynical version: "portable" = "it can be ported"... see, we saved you the hand assembly work, so you CAN port it to this other computer :P)
000
Ian Wagner @ianwwagner.com · 04/07/2025
Right?! I've ranted about this several times in the past (offline) and am pretty sure that when C programmers say "portable" they mean "does not require me to hand-write assembly." That's it. Your C program is almost never *actually* portable for any natural usage of the word.
100
Ian Wagner @ianwwagner.com · 04/07/2025
Super proud of this :) It’s been quite a journey the past few months building this. Expect a few more deep dive blogs soon! (And in case you missed it, I wrote about the quirks of Unicode normalization here: ianwwagner.com/til/unicode-...)
ianwwagner.com
Unicode Normalization
Today I ran into an amusingly named place, thanks to some sharp eyes on the OpenStreetMap US Slack. The name of this restaurant is listed as ”𝐊𝐄𝐁𝐀𝐁 𝐊𝐈𝐍𝐆 𝐘𝐀𝐍𝐆𝐎𝐍“.
021
Reposted by Ian Wagner
Michael (compiler-errors) Goulet @errs.io · 02/07/2025
Howdy all. I'm unfortunately not going to be with my employer for much longer due to team relocation. If anyone has any info on roles that would allow me to continue my Rust compiler work (in New York City), they'd be greatly appreciated.
19345
Ian Wagner @ianwwagner.com · 10/06/2025
The OG DDD 😍
000
Ian Wagner @ianwwagner.com · 10/06/2025
In Seoul? You should come to our meetup next month ;) Wednesday Jul 2 at 7pm. RSVP: www.meetup.com/rust-seoul-m... #rust #rustlang
meetup.com
Seoul Rust Meetup, Wed, Jul 2, 2025, 7:00 PM | Meetup
# Welcome to our Meetup! Seoul Rust is a monthly meetup for Rust developers and enthusiasts. Whether you're just learning Rust or are an experienced developer, we hope you
000
Ian Wagner @ianwwagner.com · 31/05/2025
Weekend light blog: Ownership benefits beyond memory safety. Or, how the way you implement APIs in can prevent footguns. Inspired by an old friend's post in a Slack chat about hours wasted on this entirely preventable problem! ianwwagner.com/blog/ownersh... #rust #rustlang
ianwwagner.com
Ownership Benefits Beyond Memory Safety
Rust’s ownership system is well-known for the ways it enforcesmemory safety guaranteees. For example, you can’t use some value after it’s been freed. Further, it also ensures that mutability is explic...
020
Ian Wagner @ianwwagner.com · 18/05/2025
Rust has some pretty baller tooling crates 😀 Generated this railroad syntax diagram for a mustache derived template DSL using github.com/nu11ptr/pest... in just a few seconds 🤯 #rustlang
A railroad diagram in the style of the original JSON spec showing valid tokens, sequence, and repetition rules.
181
Ian Wagner @ianwwagner.com · 14/05/2025
Building a fitness app? Or planning a hill climb? We can help :)
022
Ian Wagner @ianwwagner.com · 09/05/2025
Today's fun with Unicode, OpenStreetMap, Foursquare OS Places, and giving users useful search results :) ianwwagner.com/til/unicode-... #unicode #programming #openstreetmap
A list of search results showing the same restaurant twice. The first result has a different appearance, being comprised of mathematical unicode symbols.
120
Ian Wagner @ianwwagner.com · 07/05/2025
I wrote a few posts in 2025, AND I have RSS ;) ianwwagner.com What's your blog? Didn't see a link in the post / your bio ;)
ianwwagner.com
Welcome
Most people know me as a programmer. I’ve been developing mobile apps since the month the App Store launched. I love startups, and have co-founded a few.
010
Ian Wagner @ianwwagner.com · 05/05/2025
heh... says the president of the country with one of the world's highest incarceration rates.
100
Ian Wagner @ianwwagner.com · 03/05/2025
It's been 0 days since it was DNS 😂 I learned a few things today, and you can too! ianwwagner.com/til/edns-cli...
ianwwagner.com
EDNS Client-Subnet and Geographic DNS
DNS is a complex beast, so it’s little surprise when I learn something new. Today I learned a bit more about the internals of how DNS works at various privacy-centric providers.
000
Ian Wagner @ianwwagner.com · 02/04/2025
Thanks! Not really sure I have any grand plans for it at the moment... just felt like something that needed to exist since MapKit is currently a bit broken 😅 If you're interested in other mappy things though, check out github.com/stadiamaps/f..., which occupies much of my free time these days!
github.com
GitHub - stadiamaps/ferrostar: A FOSS navigation SDK built from the ground up for the future
A FOSS navigation SDK built from the ground up for the future - stadiamaps/ferrostar
010
Ian Wagner @ianwwagner.com · 21/03/2025
Crate in question: docs.rs/tempfile/lat.... Seems like this is appropriate if your use case is served by temp files. Or does it need to be something in memory for performance reasons (more like a message queue or some other form of IPC)?
docs.rs
tempfile - Rust
Temporary files and directories.
100
Ian Wagner @ianwwagner.com · 21/03/2025
Interesting. I mean, it sounds like it's a pretty easy mistake to make, and both of these look like fairly small projects so they probably just work for the author's intended use. Now I'm curious what you're building though which needs a virtual filesystem. Would something like tempfile work?
100
Ian Wagner @ianwwagner.com · 20/03/2025
Yeah, that's what it looks like. And it also appears the readable file just clones the last bytes that were "committed." Agree it's a weird design choice too. I get the vibe that it's an intentionally minimalist project for unit tests and such, so that probably just never came up as a use case.
120
Ian Wagner @ianwwagner.com · 20/03/2025
It looks like there's a custom drop impl: github.com/manuel-woelk.... I'm a bit too lazy to trace all the threads in a browser, but the reader probably doesn't see anything until the writer is dropped. And flush doesn't really behave like you'd expect.
github.com
130
Ian Wagner @ianwwagner.com · 20/03/2025
That doesn't necessarily mean it was designed to support reads from another handle while the file is still "open" (the "trick" is that the block drops the handle). Vfs looks like a minimalist "filesystem" designed for use in unit tests, so I wouldn't expect it to mimic all "usual" behaviors.
000
Ian Wagner @ianwwagner.com · 20/03/2025
I'm not familiar with the vfs crate (and it's sadly not in the rust playground), but I assume what's happening is that the data is not written to the "file" until you flush, some buffer fills up, etc. Most languages do this, and it's often device dependent (ex: a TTY may be line buffered).
120
Ian Wagner @ianwwagner.com · 18/03/2025
I'm definitely doing some crimes with my proc macro implementation, but it's pretty hard to argue with ~200 LOC to replace 456 unit tests and generate a proper data model from a few hundred YAML files at compile time 😂 #rust #rustlang
120
Ian Wagner @ianwwagner.com · 18/03/2025
Oh man, that's a throwback :D
000
Ian Wagner @ianwwagner.com · 10/03/2025
Beautiful!
010
Ian Wagner @ianwwagner.com · 10/03/2025
I missed #SilentSunday but is #MistyMonday a thing?
Morning fog covering an apartment complex. Tall buildings peek out in the background.
131
Ian Wagner @ianwwagner.com · 03/03/2025
As we turn the corner into March, here's a good reminder to be *very* careful if you're ever tempted to use JavaScript for anything ;) ianwwagner.com/til/date-ins... #JavaScript #TIL #Programming
ianwwagner.com
Date Insanity with JavaScript
Earlier today, a friend sent me a joke about boycotting <some big evil tech company> for three days: Feb 29, 30, and 31. I thought this was pretty funny.
141
Ian Wagner @ianwwagner.com · 25/02/2025
Ooh 😍 album.link/t/418331552 #SoundOfTheDay #TranceFamily
album.link
25 Years Of Anjuna Mixed By Luttrell by Luttrell
Listen now on your favorite streaming service. Powered by Songlink/Odesli, an on-demand, customizable smart link service to help you share songs, albums, podcasts and more.
000
Ian Wagner @ianwwagner.com · 18/02/2025
As one might expect, running JS that’s transpiled to WASM without JIT is going to be relatively slow, but that’s another story ;) Using both in the default configurations. It's possible wasmtime has better caching defaults. My v8 embedding was the rust_v8 crate from @deno.land (thanks for that!).
000
Ian Wagner @ianwwagner.com · 18/02/2025
Absolutely wild fact: creating a new V8 isolate (assuming I’m not “holding it wrong”) and compiling a large ES module can take over 100ms. But creating a new component instance in wasmtime is more on the order of 10ms 🤔 I *think* this is roughly apples to apples. #WASM #javascript
231
Ian Wagner @ianwwagner.com · 16/02/2025
This weekend I finally got around to trying something “real” with WASM components. I was able to successfully componentize a sizable library *written in JavaScript* using jco, and then call it from a Rust application! many right edges but it works! Blog post coming. #WASM #rustlang #javascript
030
Ian Wagner @ianwwagner.com · 14/02/2025
Wait, Bluesky doesn't have the ability to save/bookmark a post for later?
130
Ian Wagner @ianwwagner.com · 14/02/2025
Finally found some ski buddies here and had an amazing (but long!) day on the slopes yesterday :) Guess I can also say I've skied an Olympic venue now haha.
010
Reposted by Ian Wagner
A.R. Moxon @juliusgoat.bsky.social · 08/02/2025
“Terrible things are happening outside. Poor helpless people are being dragged out of their homes. Families are torn apart; men, women and children are separated. Children come home from school to find that their parents have disappeared.” -Anne Frank www.democracynow.org/2025/2/6/hea...
democracynow.org
ICE Agents in Colorado Go Door to Door Demanding IDs and Asking People to Turn In Their Neighbors
In Colorado, heavily armed ICE agents carried out large-scale immigration raids at apartment complexes across Denver and Aurora on Wednesday. The Denver Post reports masked agents knocked on doors dem...
32962427
Ian Wagner @ianwwagner.com · 10/02/2025
huh... TIL about Canada being different! Funny enough, there is a Korean riff on the same idea as Costco / Sams called eMart Traders Wholesale Club that's growing really fast. One of their promotional banners for why to shop there says "you can use any card you want" 😆
010
Ian Wagner @ianwwagner.com · 07/02/2025
Exclusivity deals. It used to be Amex-only in some countries previously. Kinda funny, right?
200
Reposted by Ian Wagner
DuckDB @duckdb.org · 05/02/2025
We are happy to announce DuckDB v1.2.0 “Histrionicus”! The new release has several usability, security and performance improvements. It has new features for the CSV and Parquet formats, as well new (opt-in) options for DuckDB's own format. Read more at duckdb.org/2025/02/05/a...
15823
Ian Wagner @ianwwagner.com · 05/02/2025
We’re making it even easier to search the world. Our latest geocoding and search API update brings in a new data source (in beta): Foursquare OS Places. I’ve been using 4sq apps for almost 15 years, and it’s great to see them embracing open data! Try it out and let us know what you think!
020