Sign in

James Logan

@ponderingpothos.bsky.social
97 followers 142 following 115 posts

Scientific computing in rust and python, firmware in rust, and the occasional circuit board design & testing. Propulsion engineer in a previous life.

PostsRepliesMedia
Reposted by James Logan
Predrag Gruevski @predr.ag · 21/09/2026
GitHub Actions + Rust's Miri can leak your secrets in CI 🧵 If you run Miri in CI: - upgrade to the 2026-09-22 nightly - clear caches - rotate any secrets that the `cargo miri` CI job had access to GPT-6 Astra helped find this 🦀
GitHub Actions makes it possible to cache directories between runs. Typical setups allow CI runs on main (and other branches) to write to cache, and PRs can only read from cache (preventing cache poisoning). Rust projects tend to speed up CI by caching binaries built by cargo install and sometimes the contents of target/.

PR CI can be triggered by anyone who can open PRs on your repository. GitHub requires maintainer approval for the first PR, but future PRs will rerun CI on every push. Anyone who has previously landed a change can trigger a CI run extracting information from cached target/ and then cover their tracks by pushing a second commit to the PR.

GitHub sometimes hides overwritten commits in its UI, making this kind of attack harder to detect. CI run logs and overwritten commits are also deleted after a few months.

When cargo miri is invoked, Miri needs to retain build-relevant environment variables between runs. The current code to do so achieves this by storing all environment variables to target/. This, of course, persists when target/ is cached.

If your environment contained secrets, these can now be accessed by PRs via the cache.
1389
Reposted by James Logan
TheZoq2 @thezoq2.mastodon.social.ap.brid.gy · 20/09/2026
One of the coolest things to happen in Spade yet 👀 @breakingtaps wrote and taped out a Transport Triggered Architecture processor from scratch in a month with 0 prior experience! This video is also one of the better intros to digital hardware design I've seen, certainly much better than some of […]
mastodon.social
Original post on mastodon.social
0213
Reposted by James Logan
Adam Chalmers @adamchalmers.com · 12/09/2026
If anyone is curious, I'm considering generalizing KCL's UoM support: docs.google.com/document/d/1...
docs.google.com
KCL 3.0 UoM
Proposal: Dimensional analysis in KCL 3.0 Background Current Units of Measurement (UoM) system as of KCL 2.0 is documented here. But I'll give you a quick summary: KCL numbers currently all have a uni...
121
James Logan @ponderingpothos.bsky.social · 12/09/2026
Anyway, glad to see interest in this problem. I'd like to see it solved well and soon. hmu if you want to discuss perspectives from mechE or scientific computing!
000
James Logan @ponderingpothos.bsky.social · 12/09/2026
- How would you handle user-defined unit systems like currency, rates compounded at different intervals, "dimensionless" counts that refer to different quantities, etc? (number of koalas vs number of neutrons vs ADC count) - How would you handle nonlinear units like dB?
001
James Logan @ponderingpothos.bsky.social · 12/09/2026
- Would you handle arbitrary exponents of dimensionless quantities? Rationals are a great solution for mildly cursed dimensional values like gpm/ft^(3/4), but dimensionless might need special treatment - How to handle reading user exprs where intermediate states' units are unknown at compiletime?
000
James Logan @ponderingpothos.bsky.social · 12/09/2026
Some conspicuous design decisions to add to the pile - Do you apply scalings at every operation or lazily only when data is indexed? - How do you handle different flavors of dimensionless? (angles do not have real units! they are dimensionless fractions of a circle... but also necessary to track) 1/
100
Reposted by James Logan
Eris ⌬ @eriskii.net · 10/09/2026
New favorite painting discovered Symphony of the Sixth Blast Furnace (1979), Sedukhin
619527
Reposted by James Logan
Adam Chalmers @adamchalmers.com · 07/09/2026
As usual I enjoyed a @jyn.dev post: jyn.dev/simple-is-no...
jyn.dev
simple is not small
small programs hide coupling
0243
Reposted by James Logan
Oxide Computer Company @oxide.computer · 01/09/2026
With Oxide, your compute gets more valuable over time, not less. The same Rack Model 0 we launched in 2023 now supports more than 2x the vCPUs per rack with our latest compute sleds and system version 21 which adds support for Zen 5c processors.
0495
Reposted by James Logan
reto @galactic-forensics.space · 28/08/2026
This week I received a Deimos DAQ Rev7 from @deimoscontrols.bsky.social It acquires precision measurement, here from two thermocouples, and can use these to control outputs, here a GPIO pin. All controllable from #Rust (or python). Thanks @ponderingpothos.bsky.social for all your help!
A Deimos DAQ Rev7 data acquisition and hardware control module with two thermocouples plugged in. A volt meter is connected to a GPIO output pin and shows a signal of 3.291V.
142
Reposted by James Logan
Matt Keeter @mattkeeter.com · 23/08/2026
New blog post for the WebGPU aficionados! WGSL layout rules are annoying, and I got tired of mismatched CPU/GPU layouts (because the failure mode usually required rebooting my entire laptop) As it turns out, it's not too hard to automatically cross-check them, with the power of runtime reflection!
mattkeeter.com
Testing WebGPU data layouts with Facet
Using Facet's run-time reflection to check the layout of structs against their definitions in WebGPU shaders
34910
James Logan @ponderingpothos.bsky.social · 02/08/2026
no
100
Reposted by James Logan
reto @galactic-forensics.space · 30/07/2026
InstrumentRs just got a derive macro to let you derive InstrumentParameter, i.e., how your new types get transformed into instrument commands. You can read all about it here: blog.galactic-forensics.space/blog/10-deri...
blog.galactic-forensics.space
InstrumentRs: #[derive(Parameter)]
Thoughts and ideas...
121
James Logan @ponderingpothos.bsky.social · 28/07/2026
I use that pattern like this (line 8) to make invalid const parameters a compile error! play.rust-lang.org?version=stab...
play.rust-lang.org
101
Reposted by James Logan
James Munns @jamesmunns.com · 28/07/2026
"We have generic parameters from outer item at home" play.rust-lang.org?version=stab... I feel like I keep re-discovering that this works, and forgetting why it's more limited than I actually want it to be in the general case, but it does print what you'd expect it to print :)
Screenshot of code at the playground link
3305
Reposted by James Logan
AstraKernel 💫 @astrakernel.bsky.social · 22/07/2026
✨ Programming languages & Open Source - based on GH search Repository created in: 2026 Stars: Greater than 100 1. Python - 5000 2. JS - 1300 3. Rust - 1000 4. Go - 775 5. Swift - 431 6. C++ - 413 7. C - 319 8. Kotlin - 260 9. C# - 223 10. Java - 167 -- PHP - 56 Ruby - 22 #programming #rustlang
052
Reposted by James Logan
austin (eeek!/ackkk! 👻) @thebadcode.com · 04/07/2026
i agree with conputer dipshit: looking at what's coming and not thinking it's going to raise the water line for shipped software is nuts
2836
Reposted by James Logan
Oxidize Conference @oxidizeconf.bsky.social · 29/06/2026
Hiring or being hired in Rust? A panel with Till Adam (KDAB), Julius Gustavsson (Volvo Cars), Thomas Fleischmann (Accenture), Julia Sommer (Ferrous Systems) and Liran Aloni (JetBrains) on navigating the maturing Rust job market. 🔗 oxidizeconf.com/sessions/pan... #Oxidize2026 #RustLang #RustJobs
Promotional graphic for a panel titled “Navigating the Rust Job Market: Hiring and Being Hired" at the Oxidize applied Rust conference in Berlin, Sept 14–16, 2026. The image features the names of the panelists: Till Adam (KDAB), Julius Gustavsson (Volvo Cars), Thomas Fleischmann (Accenture), Julia Sommer (Ferrous Systems) and Liran Aloni (JetBrains). The background is light blue with abstract curved shapes, and the Oxidize logo appears at the bottom left.
064
Reposted by James Logan
poorly drawn cats @poorlycatdraw.bsky.social · 27/06/2026
a poorly drawn cat that looks like zubat, the pokemona picture of a black cat yawning and stretching, but it looks like it has a weirdly large mouth!
91296305
Reposted by James Logan
Cat Hicks @grimalkina.bsky.social · 22/06/2026
I have been watching the dialogue on this one closely. To everyone who is saying "OP is special, no one could use AI this way" well, I have spent 18 months doing significant amounts of scicomm in patient communities and they are ALL using AI this way. wrote this to help: github.com/DrCatHicks/i...
github.com
GitHub - DrCatHicks/informed-patient: A Claude Skill to create an evidence review to inform specific health questions
A Claude Skill to create an evidence review to inform specific health questions - DrCatHicks/informed-patient
921548
Reposted by James Logan
Predrag Gruevski @predr.ag · 21/06/2026
The parallels between the rise of CNC and AI are astonishing. We went from "this will de-skill machinists" to the modern marvels of engineering that we all take for granted, like the one I'm typing on. Another excellent video from @asianometry.bsky.social www.youtube.com/watch?v=OgXm...
youtube.com
Fanuc and the Numerical Control Revolution
YouTube video by Asianometry
121
Reposted by James Logan
The Rust Foundation @rustfoundation.org · 16/06/2026
We're building the Rust Commercial Network: A free community where the companies running Rust in production work together and with Rust community members to advance language adoption. First public meeting: June 22, 4pm UTC. All welcome. More info: rustfoundation.org/media/buildi...
072
Reposted by James Logan
Matt Keeter @mattkeeter.com · 08/06/2026
inside of you there are two wolves
Screenshot of the Github code review screen.

@jamesmunns has approved the PR with "Let's go"
@hawkw has approved the PR with "sure fine whatever"
121111
Reposted by James Logan
Adam Chalmers @adamchalmers.com · 01/06/2026
C++ programmers really will say 'you use borrow checkers? that pales in effectiveness to my strategy, properly de/allocating memory' and then not properly de/allocate memory
720827
Reposted by James Logan
nia (cia asset) @nia.is.fckn.gay · 24/05/2026
WHEEEEEEEEEE github.com/rust-lang/ru...
github.com
alloc: stabilise `Allocator` by nia-e · Pull Request #156882 · rust-lang/rust
Stabilise a bare-minimum (dyn-incompatible, but could be in the future) Allocator trait, alongside Box::new_in(), Vec::new_in(), the System Allocator impl, and a blanket impl of Allocator for T: Gl...
417938
James Logan @ponderingpothos.bsky.social · 22/05/2026
Yeah, it's a great entrypoint to build out math skills! Incidentally, this is what I do for $dayjob, so here's a Rust+Python library that might be helpful in the learning process. It covers most of the magnetics part of the MIT class, generalized to more conditions. github.com/cfs-energy/c...
github.com
GitHub - cfs-energy/cfsem-py: Quasi-steady electromagnetics including filamentized approximations, Biot-Savart, and Grad-Shafranov.
Quasi-steady electromagnetics including filamentized approximations, Biot-Savart, and Grad-Shafranov. - cfs-energy/cfsem-py
020
James Logan @ponderingpothos.bsky.social · 21/05/2026
In school, they made us take it before linear algebra or differential equations, so I can confirm it's possible to get by without
110
James Logan @ponderingpothos.bsky.social · 14/05/2026
Bring back schematics printed on the enclosure
a wind speed meter with the electromech diagram on the front panelan unknown instrument with the electromech diagram on the front panelanother wind speed meter with the electromech diagram on the front panel
011
James Logan @ponderingpothos.bsky.social · 13/05/2026
Bring back pondering the orb
A stokes sphere device for measuring hours of daylight
010
James Logan @ponderingpothos.bsky.social · 05/05/2026
nvm found on nz herald
010
James Logan @ponderingpothos.bsky.social · 05/05/2026
Where is this from? I need to send it to traumatize my caver friend lmao
010
Reposted by James Logan
✧✦Catherine✦✧ @whitequark.treehouse.systems.ap.brid.gy · 08/04/2026
hey wanna see somethng cursed one part of this NIC is downloading UEFI boot options from another part of this NIC over HTTP. (well, failing to do it for some reason) you're welcome
22016
Reposted by James Logan
FerrousSystems @ferroussystems.bsky.social · 02/04/2026
Some fun compiler-adjacent #RustLang reading: How can you make sure [panic!] is unreachable in part of your program? This write-up goes into how we approached callgraph analysis in #Ferrocene – and how you can try it out for yourself! 👉 ferrous-systems.com/blog/callgra...
A colourful box that says: 
New blog post!
Callgraph Analysis
Writing custom lints for fun and profit! Compiler team lead Jynn Nelson dives into the world of static analysis and callgraphs by showing how Ferrocene ensures that only the most strictly tested code is used in safety-critical applications.
Thank you for reading and following us on BlueSky.
0207
Reposted by James Logan
Freya Holmér @freya.bsky.social · 26/03/2026
I'm almost there it's so pretty!! 😭 this is the first time I've made extensive use of complex numbers in shader code, which has been fun! it's an analytic 2D lighting system through piecewise conformal maps representing angular light/"sky" exposure, which means you get fully analytic penumbras!
a partially finished analytic 2D lighting solution, showing both the angular and radial component with a checkerboard pattern and color coding
672064169
James Logan @ponderingpothos.bsky.social · 26/03/2026
Lol I mean explicitly enforce that a loop is unrolled. But yea
020
James Logan @ponderingpothos.bsky.social · 26/03/2026
I found out recently that you can unroll loops at compile time, including ones parametrized on const generics. So now I have a space heater,
120
James Logan @ponderingpothos.bsky.social · 21/03/2026
New gear day!!
Picture of a spectrum analyzer and EMC probe set
010
James Logan @ponderingpothos.bsky.social · 19/03/2026
Deimos DAQ is an interface between hardware and software for industrial and scientific use. Unlike most DAQs, it comes integrated with precision frontends for common sensors. The design is near complete. For project updates, check it out on Crowd Supply! www.crowdsupply.com/deimos-contr...
A snip of mechanical CAD of a circuit board in an enclosureSnip of electrical CAD of a circuit board
151
James Logan @ponderingpothos.bsky.social · 15/03/2026
@jamesjcode.bsky.social @thea.codes This ended up being caused by a broken kicad install, btw - not sure exactly what was broken, but uninstalling and reinstalling kicad 8 fixed the problem. Still nice to have a browser-based option that's immune to my installation mishaps!
021
Reposted by James Logan
Jeremy Morrell @jeremymorrell.dev · 08/03/2026
Cat points out a real problem. Rather than “everyone builds their own custom app” with all the overhead that entails, my working hypothesis is that we’ll see an explosion of what @inkandswitch.com calls malleable software www.inkandswitch.com/essay/mallea... A solid core + ability to extend
Graph showing that there is a long tail of user needs and most apps tend to serve only the needs that most users have. The long tail is under-served
77112
Reposted by James Logan
Adam Chalmers @adamchalmers.com · 26/02/2026
wasm supremacy continues hacks.mozilla.org/2026/02/maki...
hacks.mozilla.org
Making WebAssembly a first-class language on the Web – Mozilla Hacks - the Web developer blog
This post is an expanded version of a presentation I gave at the recent WebAssembly CG meeting in Munich. WebAssembly has come a long way since its first release in 2017. The 1.0 version of WebAssembl...
3293
Reposted by James Logan
Cat Hicks @grimalkina.bsky.social · 25/02/2026
I whipped up another learning related Skill! Smaller than Learning Opportunities, but very complementary: interactive guidance through a quick research-backed psychological intervention that helps improve learning plans, motivation and commitment

 github.com/DrCatHicks/l...
github.com
GitHub - DrCatHicks/learning-goal: A Claude Code skill for designing learning goals during AI-assisted coding
A Claude Code skill for designing learning goals during AI-assisted coding - DrCatHicks/learning-goal
25619
Reposted by James Logan
EuroRust @eurorust.eu · 25/02/2026
Our CFP is now open! 🦀 Submit your proposal by April 27 and join this year's conference as a speaker. We’re looking forward to seeing you in Barcelona! 🇪🇸 Submit your talk now 👇 sessionize.com/eurorust-2026/ #rustlang #eurorust25
083
Reposted by James Logan
Cat Hicks @grimalkina.bsky.social · 15/02/2026
Key to efficient learning is realizing how we ACTUALLY learn, not just what FEELS like learning. I wrote a Claude Skill for some friends to help them think about this and they've liked it -- see Principles for some directions you could explore github.com/DrCatHicks/l...
github.com
GitHub - DrCatHicks/learning-opportunities: A Claude Code skill for deliberate skill development during AI-assisted coding
A Claude Code skill for deliberate skill development during AI-assisted coding - DrCatHicks/learning-opportunities
925345
Reposted by James Logan
Alice Averlong 🏳️‍⚧️ @alice.averlong.com · 23/02/2026
Outer Wilds, if you haven't played it yet, is one of the best games of all time. It's a fun space exploration game with a timeloop twist, and 90% of all game progress happens in your head, as you learn things about the universe and your situation. Absolutely play it if you haven't yet.
19425136
Reposted by James Logan
Crowd Supply @crowdsupply.bsky.social · 23/02/2026
Coming soon: Ampisu, a full-featured, programmable lab power supply you can take anywhere 💫 www.crowdsupply.com/nessie-circu...
crowdsupply.com
Ampisu
A full-featured, programmable lab power supply you can take anywhere
042
James Logan @ponderingpothos.bsky.social · 23/02/2026
Yeah, in this case, I think it might be more related to tolerating missing libs or old versions of plugins or something than to the file's kicad version (which is indeed kicad 6). Kicad just closes with no error message
100
James Logan @ponderingpothos.bsky.social · 22/02/2026
It been 0 days since @thea.codes 's KiCanvas saved my bacon again by opening an old layout file that was crashing KiCad. If you're using KiCad for PCB design and haven't seen KiCanvas, give it a look! kicanvas.org
kicanvas.org
Interactive KiCad file viewer
1275
Reposted by James Logan
Dion Dokter @diondokter.nl · 17/02/2026
Pssssst, psssst... Hey kids, wanna see the embassy executor running on a GPU?
1475