jswrenn
Joined 11 years ago
Joined 11 years ago
This has not been my experience since moving to Manhattan last January. Subways, alone, close the gap between regional rail and most destinations astoundingly well. I haven't yet needed to use a bus (but they seem abundant, too), and I haven't even thought of taking a taxi yet.
Here, robust transit has solved the last mile problem for most people.
An excerpt:
> The Clamzorians are animists. They believe every rock and tree and river has its own spirit. And those spirits are legal people. This on its own is not unusual – even New Zealand gives rivers legal personhood. But in Clamzoria, if a flood destroys your home, you sue the river.
A separate number for each account might help. Maybe.
For tracing suspended Futures, I've worked on a few approaches:
1. If you don't mind annotating your async functions, you can use the async-backtrace crate, which provides pretty-printing out-of-the-box: https://crates.io/crates/async-backtrace
2. If you are already using the `tracing` ecosystem, you can use the tracing-causality crate (it doesn't yet include pretty-printing, but it's not too hard to add that on): https://crates.io/crates/tracing-causality
3. If you are only supporting Linux (and maybe MacOS) and you aren't stripping away debuginfo from your binaries, you can build atop the deflect crate (https://jack.wrenn.fyi/blog/deflect/). If your `Future` purely consists of `async` blocks, Tyler Mandry's reflection based approach works well: https://github.com/tmandry/rust-dbg-ext/tree/async-backtrace...
For analyzing stack traces of active futures, I'm not aware of any good ways to reliably filter out irrelevant frames (e.g., frames from the runtime).
I'm optimistic that I can make strides closer to home. I have only ever lived in places that predated the advent of automobiles. At one time, they were very accessible via walking, biking, rail, and trolley. So, last fall, when I moved back to Providence, I made it my mission to get involved in local transit activism. It's been a great source of social and civic satisfaction, and I intend to repeat the exercise when I move again next Fall.
It feels like positive change is (slowly) happening.
[0]: https://doc.rust-lang.org/cargo/reference/profiles.html#rele...
My crate is suitable for cases where you cannot know (or control) the set of types you might need to reflect on in advance. It's primary use-cases are related to debugging.
[ my public key: https://keybase.io/jsw; my proof: https://keybase.io/jsw/sigs/5ksJvZggatSVHFut1Re-QCnEWoPMSWaUvHRHU8hqr5A ]