Ian Wagner's Avatar

Ian Wagner

@ianwwagner.com.bsky.social

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 ;)

85 Followers  |  61 Following  |  71 Posts  |  Joined: 06.04.2023  |  2.0484

Latest posts by ianwwagner.com on Bluesky

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.

10.10.2025 06:43 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

hmm… the server is GitHub Pages πŸ˜… Maybe they had an outage?

09.10.2025 17:09 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

History repeats.

04.10.2025 06:54 β€” πŸ‘ 11650    πŸ” 5617    πŸ’¬ 276    πŸ“Œ 298
Const Assertions I'm currently working on a project which involves a lot of lower level data structures. By lower lev...

New on the blog: const assertions.

ianwwagner.com/const-assert...

07.10.2025 05:00 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Elecom Deft Pro - First Impressions I recently picked up a new trackball to replace my prematurely aging Elecom HUGE. Here are my first ...

New trackball arrived today. I wrote a bit about it here: ianwwagner.com/elecom-deft-...

27.09.2025 09:38 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Finishing Dragonball in Korean Over the past few days of vacation I finally had the chance to finish reading Dragonball! I started ...

New on the blog: ianwwagner.com/finishing-dr...

08.09.2025 14:12 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Dude, Four Tet is SO GOOD!

08.09.2025 14:11 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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.

πŸͺ„ 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...

01.08.2025 08:12 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

(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)

04.07.2025 00:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

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.

04.07.2025 00:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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-...)

03.07.2025 23:40 β€” πŸ‘ 2    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

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.

02.07.2025 17:31 β€” πŸ‘ 92    πŸ” 45    πŸ’¬ 2    πŸ“Œ 1

The OG DDD 😍

10.06.2025 12:53 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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

In Seoul? You should come to our meetup next month ;)

Wednesday Jul 2 at 7pm. RSVP: www.meetup.com/rust-seoul-m...

#rust #rustlang

10.06.2025 02:41 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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...

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

31.05.2025 07:40 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
A railroad diagram in the style of the original JSON spec showing valid tokens, sequence, and repetition rules.

A railroad diagram in the style of the original JSON spec showing valid tokens, sequence, and repetition rules.

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

18.05.2025 04:00 β€” πŸ‘ 7    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Building a fitness app? Or planning a hill climb? We can help :)

14.05.2025 10:35 β€” πŸ‘ 3    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
A list of search results showing the same restaurant twice. The first result has a different appearance, being comprised of mathematical unicode symbols.

A list of search results showing the same restaurant twice. The first result has a different appearance, being comprised of mathematical unicode symbols.

Today's fun with Unicode, OpenStreetMap, Foursquare OS Places, and giving users useful search results :)

ianwwagner.com/til/unicode-...

#unicode #programming #openstreetmap

09.05.2025 07:05 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
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.

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 ;)

07.05.2025 09:07 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

heh... says the president of the country with one of the world's highest incarceration rates.

05.05.2025 03:31 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
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.

It's been 0 days since it was DNS πŸ˜‚ I learned a few things today, and you can too!

ianwwagner.com/til/edns-cli...

03.05.2025 05:09 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
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

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!

02.04.2025 14:10 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
tempfile - Rust Temporary files and directories.

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)?

21.03.2025 00:23 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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?

21.03.2025 00:21 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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.

20.03.2025 16:11 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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.

20.03.2025 15:26 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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.

20.03.2025 15:22 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

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).

20.03.2025 14:50 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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

18.03.2025 16:01 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Oh man, that's a throwback :D

18.03.2025 07:14 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@ianwwagner.com is following 20 prominent accounts