James Logan
@ponderingpothos.bsky.social
Scientific computing in rust and python, firmware in rust, and the occasional circuit board design & testing. Propulsion engineer in a previous life.
Reposted by James Logan
I might have to borrow this. It's incredibly fitting, given that my GitHub username is obi1kenobi, and I maintain cargo-semver-checks
github.com/obi1kenobi/c...
github.com/obi1kenobi/c...
November 11, 2025 at 3:09 PM
I might have to borrow this. It's incredibly fitting, given that my GitHub username is obi1kenobi, and I maintain cargo-semver-checks
github.com/obi1kenobi/c...
github.com/obi1kenobi/c...
Reposted by James Logan
Scipy is a phenomenal library. It's not every day that one can beat its performance by 1-2 orders of magnitude. Today is that day, though!
Must-read post if you care about any of:
- high performance Rust
- numerical methods
- how Rust can make Python faster
Must-read post if you care about any of:
- high performance Rust
- numerical methods
- how Rust can make Python faster
Take a look under the hood of the state of the art in grid interpolation in Rust and Python!
Come for the compile-time loop unrolling, stay for the profile-guided optimization!
jlogan.dev/blog/2025/11...
Come for the compile-time loop unrolling, stay for the profile-guided optimization!
jlogan.dev/blog/2025/11...
November 11, 2025 at 3:17 AM
Scipy is a phenomenal library. It's not every day that one can beat its performance by 1-2 orders of magnitude. Today is that day, though!
Must-read post if you care about any of:
- high performance Rust
- numerical methods
- how Rust can make Python faster
Must-read post if you care about any of:
- high performance Rust
- numerical methods
- how Rust can make Python faster
Take a look under the hood of the state of the art in grid interpolation in Rust and Python!
Come for the compile-time loop unrolling, stay for the profile-guided optimization!
jlogan.dev/blog/2025/11...
Come for the compile-time loop unrolling, stay for the profile-guided optimization!
jlogan.dev/blog/2025/11...
November 11, 2025 at 3:04 AM
Take a look under the hood of the state of the art in grid interpolation in Rust and Python!
Come for the compile-time loop unrolling, stay for the profile-guided optimization!
jlogan.dev/blog/2025/11...
Come for the compile-time loop unrolling, stay for the profile-guided optimization!
jlogan.dev/blog/2025/11...
Looking forward to putting all our heads together to share learnings and hunt for the most impactful next steps for #RustLang in science and engineering!
Announcing our Scientific Computing track at #RustNYC Unconf 2025!
Join Helmut Carter and James Logan to explore scientific computing in #RustLang. Discuss interoperability, accessibility, best practices, and community. Share experiences and ideas to shape the field.
Waitlist: rust.nyc/unconf
Join Helmut Carter and James Logan to explore scientific computing in #RustLang. Discuss interoperability, accessibility, best practices, and community. Share experiences and ideas to shape the field.
Waitlist: rust.nyc/unconf
November 8, 2025 at 6:08 PM
Looking forward to putting all our heads together to share learnings and hunt for the most impactful next steps for #RustLang in science and engineering!
Reposted by James Logan
New Rust horror beyond human comprehension discovered: *it matters which working directory you use to compile Rust* 🦀😱
```
cd the-dir
cargo check # works fine
cd .. && cargo check --manifest-path ./the-dir/Cargo.toml # explodes
```
or vice versa.
```
cd the-dir
cargo check # works fine
cd .. && cargo check --manifest-path ./the-dir/Cargo.toml # explodes
```
or vice versa.
October 4, 2025 at 11:59 PM
New Rust horror beyond human comprehension discovered: *it matters which working directory you use to compile Rust* 🦀😱
```
cd the-dir
cargo check # works fine
cd .. && cargo check --manifest-path ./the-dir/Cargo.toml # explodes
```
or vice versa.
```
cd the-dir
cargo check # works fine
cd .. && cargo check --manifest-path ./the-dir/Cargo.toml # explodes
```
or vice versa.
Reposted by James Logan
PCB Design Blocks just got merged into @kicad.org nightly, they can be linked together with Schematic Design Blocks.
It's shaping up to be another great release!
forum.kicad.info/t/post-v9-ne...
It's shaping up to be another great release!
forum.kicad.info/t/post-v9-ne...
September 2, 2025 at 7:23 PM
PCB Design Blocks just got merged into @kicad.org nightly, they can be linked together with Schematic Design Blocks.
It's shaping up to be another great release!
forum.kicad.info/t/post-v9-ne...
It's shaping up to be another great release!
forum.kicad.info/t/post-v9-ne...
Reposted by James Logan
August 29, 2025 at 11:33 PM
Reposted by James Logan
Two people to GitHub sponsor if you use Rust: @predr.ag and David Lattimore (Wild linker). They are doing great and hard work! Amazing talks at @rustforgeconf.com
August 30, 2025 at 12:00 AM
Two people to GitHub sponsor if you use Rust: @predr.ag and David Lattimore (Wild linker). They are doing great and hard work! Amazing talks at @rustforgeconf.com
Reposted by James Logan
I'm unreasonably excited about the upcoming cargo-semver-checks release: this month we put some points into "make it a joy to use and build."
- 3x faster at scanning very large crates
- its `cargo test` now takes 1min not 6-7min
- we gracefully handled a massive change in the rustdoc JSON format
- 3x faster at scanning very large crates
- its `cargo test` now takes 1min not 6-7min
- we gracefully handled a massive change in the rustdoc JSON format
August 4, 2025 at 6:40 PM
I'm unreasonably excited about the upcoming cargo-semver-checks release: this month we put some points into "make it a joy to use and build."
- 3x faster at scanning very large crates
- its `cargo test` now takes 1min not 6-7min
- we gracefully handled a massive change in the rustdoc JSON format
- 3x faster at scanning very large crates
- its `cargo test` now takes 1min not 6-7min
- we gracefully handled a massive change in the rustdoc JSON format
#ScientificComputingInRust 2025's last day was today! If you missed my talk about Deimos and data acquisition in Rust, you can find the recording here: youtu.be/_pWZRICQgsg
James Logan - Deimos: open-source scientific data acquisition & laboratory controls
YouTube video by Scientific Computing in Rust
youtu.be
June 6, 2025 at 7:05 PM
#ScientificComputingInRust 2025's last day was today! If you missed my talk about Deimos and data acquisition in Rust, you can find the recording here: youtu.be/_pWZRICQgsg
Reposted by James Logan
#GlasgowInterfaceExplorer is now available at Mouser!
June 1, 2025 at 1:43 AM
#GlasgowInterfaceExplorer is now available at Mouser!
Reposted by James Logan
Excited for day 1 of #RustWeek! So many good talks coming up 🤩
If you like cargo-semver-checks (and especially if you fund it on GitHub Sponsors!), find me in the hallway — I have something for you 👀
If you like cargo-semver-checks (and especially if you fund it on GitHub Sponsors!), find me in the hallway — I have something for you 👀
May 13, 2025 at 5:41 AM
Excited for day 1 of #RustWeek! So many good talks coming up 🤩
If you like cargo-semver-checks (and especially if you fund it on GitHub Sponsors!), find me in the hallway — I have something for you 👀
If you like cargo-semver-checks (and especially if you fund it on GitHub Sponsors!), find me in the hallway — I have something for you 👀
Reposted by James Logan
some people will tell you that you can't capture a docstring in a macro_rules! macro, because the meta fragment captures the entire attribute and you can't destructure it.
those people are all cowards.
play.rust-lang.org?version=stab...
those people are all cowards.
play.rust-lang.org?version=stab...
April 10, 2025 at 5:12 PM
some people will tell you that you can't capture a docstring in a macro_rules! macro, because the meta fragment captures the entire attribute and you can't destructure it.
those people are all cowards.
play.rust-lang.org?version=stab...
those people are all cowards.
play.rust-lang.org?version=stab...
Reposted by James Logan
I don't know who else needs to hear this, but if you find yourself caught in a conspiracy between rustfmt and rustc, `#[cfg_attr(any(), rustfmt::skip)]` may be your way out. HT @steffahn.bsky.social!
users.rust-lang.org/t/rustfmt-sk...
users.rust-lang.org/t/rustfmt-sk...
#[rustfmt::skip] issue
There are situations where it is important to me that the "Format Document" command in VSCode skips certain code areas. I can also do this with the command: #[rustfmt::skip] But when I use it before ...
users.rust-lang.org
March 24, 2025 at 3:45 PM
I don't know who else needs to hear this, but if you find yourself caught in a conspiracy between rustfmt and rustc, `#[cfg_attr(any(), rustfmt::skip)]` may be your way out. HT @steffahn.bsky.social!
users.rust-lang.org/t/rustfmt-sk...
users.rust-lang.org/t/rustfmt-sk...
Some fairly straightforward performance improvements to interpn (https://docs.rs/interpn) yesterday yielded a 2-6x speedup for lower-dimensional methods.
This brings it to parity with even the specialized-dimensionality version of the fortan incumbent!
This brings it to parity with even the specialized-dimensionality version of the fortan incumbent!
March 17, 2025 at 12:44 AM
Some fairly straightforward performance improvements to interpn (https://docs.rs/interpn) yesterday yielded a 2-6x speedup for lower-dimensional methods.
This brings it to parity with even the specialized-dimensionality version of the fortan incumbent!
This brings it to parity with even the specialized-dimensionality version of the fortan incumbent!
Reposted by James Logan
it took a month, but i've reverse engineered this IBM MCGA gate array chip. 17,000 transistors. 768 gates. over 1200 nets.
March 7, 2025 at 4:57 AM
it took a month, but i've reverse engineered this IBM MCGA gate array chip. 17,000 transistors. 768 gates. over 1200 nets.
Reposted by James Logan
🔥 eval-macro
- lets you write inline Rust code that gets evaluated at compile time to generate Rust code
- Combines the power of procedural macros with the ease of `macro_rules!`
Crate:
docs.rs/eval-macro/l...
Discussion:
www.reddit.com/r/rust/s/Wsa...
#rustlang
- lets you write inline Rust code that gets evaluated at compile time to generate Rust code
- Combines the power of procedural macros with the ease of `macro_rules!`
Crate:
docs.rs/eval-macro/l...
Discussion:
www.reddit.com/r/rust/s/Wsa...
#rustlang
March 6, 2025 at 2:39 AM
🔥 eval-macro
- lets you write inline Rust code that gets evaluated at compile time to generate Rust code
- Combines the power of procedural macros with the ease of `macro_rules!`
Crate:
docs.rs/eval-macro/l...
Discussion:
www.reddit.com/r/rust/s/Wsa...
#rustlang
- lets you write inline Rust code that gets evaluated at compile time to generate Rust code
- Combines the power of procedural macros with the ease of `macro_rules!`
Crate:
docs.rs/eval-macro/l...
Discussion:
www.reddit.com/r/rust/s/Wsa...
#rustlang
Reposted by James Logan
PS. I love that a couple of "Springer Didn't Graduate" books made using @christianp.mathstodon.xyz.ap.brid.gy's generator (somethingorotherwhatever.com/didnt-gradua...) show up mixed in with the real books when you Google "springer graduate texts"
March 6, 2025 at 8:25 AM
PS. I love that a couple of "Springer Didn't Graduate" books made using @christianp.mathstodon.xyz.ap.brid.gy's generator (somethingorotherwhatever.com/didnt-gradua...) show up mixed in with the real books when you Google "springer graduate texts"
"The Scientist and Engineer's Guide to DSP" is a solid read - refreshingly grounded and without an ounce of the usual performative obfuscation. Highly recommend http://www.dspguide.com/pdfbook.htm
March 5, 2025 at 10:18 PM
"The Scientist and Engineer's Guide to DSP" is a solid read - refreshingly grounded and without an ounce of the usual performative obfuscation. Highly recommend http://www.dspguide.com/pdfbook.htm
Reposted by James Logan
C-style strings in Rust should come with a disclaimer:
"This string has been handled in a facility that also processes uninitialized memory."
"This string has been handled in a facility that also processes uninitialized memory."
March 3, 2025 at 12:44 AM
C-style strings in Rust should come with a disclaimer:
"This string has been handled in a facility that also processes uninitialized memory."
"This string has been handled in a facility that also processes uninitialized memory."
Reposted by James Logan
10x RPGA Feathers in stock over on @tindie.com get them while they last! (US Only unfortunately)
www.tindie.com/products/347...
www.tindie.com/products/347...
March 2, 2025 at 8:03 PM
10x RPGA Feathers in stock over on @tindie.com get them while they last! (US Only unfortunately)
www.tindie.com/products/347...
www.tindie.com/products/347...
Reposted by James Logan
Need a feature to help you make the move? Even if we don't have it yet, a single seat is usually more than enough to fund most development efforts over here
You should really switch to @kicad.org. As an electrical engineer and biz owner, I cannot imagine how you can justify paying the crazy prices Altium is now quoting people for licenses.
Someone in a private chat shared a quote for over $15000 for a single license. That is crazy pants.
Someone in a private chat shared a quote for over $15000 for a single license. That is crazy pants.
February 27, 2025 at 11:10 PM
Need a feature to help you make the move? Even if we don't have it yet, a single seat is usually more than enough to fund most development efforts over here
Reposted by James Logan
I put together a list of all the booths at Embedded World that are showcasing Rust, in case anyone going wants a list of folks to visit and chat with!
Let me know if you know any companies I missed.
onevariable.com/blog/ew25-gu...
Let me know if you know any companies I missed.
onevariable.com/blog/ew25-gu...
OneVariable : A Rustacean's Guide to Embedded World 2025
onevariable.com
February 24, 2025 at 3:07 PM
I put together a list of all the booths at Embedded World that are showcasing Rust, in case anyone going wants a list of folks to visit and chat with!
Let me know if you know any companies I missed.
onevariable.com/blog/ew25-gu...
Let me know if you know any companies I missed.
onevariable.com/blog/ew25-gu...
Reposted by James Logan
I gave a day 1 closing keynote at DistrictCon yesterday. Surprisingly, it was a security talk about memory safety.
Slides are here:
docs.google.com/presentation...
Slides are here:
docs.google.com/presentation...
Memory Safety
Is this memory safety here in the room with us? Halvar Flake / Thomas Dullien DistrictCon 0 2025
docs.google.com
February 22, 2025 at 11:40 AM
I gave a day 1 closing keynote at DistrictCon yesterday. Surprisingly, it was a security talk about memory safety.
Slides are here:
docs.google.com/presentation...
Slides are here:
docs.google.com/presentation...