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
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...
Reposted by James Logan
“RP2040 has now been certified to run at a system clock of 200Mhz when using a regulator voltage of at least 1.15 volts.”
github.com/raspberrypi/...
github.com/raspberrypi/...
Release 2.1.1 · raspberrypi/pico-sdk
This is a minor release of the SDK with many bug fixes and documentation improvements, along with some new features.
Highlights are listed below, or you can see the full list of individual commits ...
github.com
February 19, 2025 at 12:25 PM
“RP2040 has now been certified to run at a system clock of 200Mhz when using a regulator voltage of at least 1.15 volts.”
github.com/raspberrypi/...
github.com/raspberrypi/...