Aart Goossens's Avatar

Aart Goossens

@aartgoossens.bsky.social

Founder and Developer of @sweatstack.bsky.social.

129 Followers  |  87 Following  |  93 Posts  |  Joined: 05.10.2023  |  2.3672

Latest posts by aartgoossens.bsky.social on Bluesky

Preview
GitHub - fastapi/fastapi-new: Create a new FastAPI project in one command Create a new FastAPI project in one command. Contribute to fastapi/fastapi-new development by creating an account on GitHub.

A basic FastAPI app in one command πŸš€

Install uv: docs.astral.sh/uv/getting-s...

Run:

uvx fastapi-new awesomeapp

✨ Done! ✨

Thanks @savannah.dev ! πŸ™Œ

github.com/fastapi/fast...

10.11.2025 23:04 β€” πŸ‘ 9    πŸ” 2    πŸ’¬ 0    πŸ“Œ 2

And for those asking "Why not 1.x.x yet?": The API is stable but I'm waiting until the feature set feels truly production-complete. Getting there!
(don't let the version number stop you from using it though)

27.10.2025 12:30 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

πŸ€“

27.10.2025 12:30 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Strava Voluntarily Drops Lawsuit Against Garmin ο»Ώ Strava’s multifaceted legal (and social media) attack on Garmin was short-lived. Just 21 days after filing the original patent infringement case, alongside a Reddit post from their executive team at...

Strava just "voluntarily dismissed" its huge lawsuit against Garmin for patent infringement. The question is, why, and what happens next? www.dcrainmaker.com/2025/10/stra...

22.10.2025 07:04 β€” πŸ‘ 52    πŸ” 6    πŸ’¬ 1    πŸ“Œ 4
Preview
Claude Skills are awesome, maybe a bigger deal than MCP Anthropic this morning introduced Claude Skills, a new pattern for making new abilities available to their models: Claude can now use Skills to improve how it performs specific tasks. Skills …

Claude Skills are awesome, maybe a bigger deal than MCP
simonwillison.net/2025/Oct/16/...

16.10.2025 21:25 β€” πŸ‘ 200    πŸ” 34    πŸ’¬ 22    πŸ“Œ 10
Post image

Exclusive: Strava just sued Garmin, demanding the company stop selling all their fitness devices (watches and bike computers), due to infringing on a patent. I dive into what's being said, a whole lot of history, what it means, and much more: www.dcrainmaker.com/2025/10/stra...

02.10.2025 13:21 β€” πŸ‘ 73    πŸ” 10    πŸ’¬ 12    πŸ“Œ 13
Preview
Blue plaque review series: A.V. Hill, athletic records and the birth of exercise physiology Abstract figure legend Depiction of the world running records from 1925 studied by A. V. Hill and those of 2025 up to and including ultradistance events on a semi-logarithmic plot. These records, in ....

100 years ago this month, AV Hill published 3 papers summarising a lecture on the physiology of athletic records he gave at the British Association for the Advancement of Science. They gave birth to exercise physiology as we know it today. physoc.onlinelibrary.wiley.com/doi/10.1113/...

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

Link to relevant forum post (only accessible for those who have access to the developer program): developerportal.garmin.com/node/2303

25.09.2025 07:52 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Apparently Garmin added OAuth2 to their Connect API: New apps can already use it, existing apps can't migrate yet. More info "this fall".
As a developer, this makes me very happy (maybe more than it should, but OAuth1 really is a pain to work with).
Docs: developerportal.garmin.com/sites/defaul...

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

I'm trying to understand the blog: Does the scanning back approach primarily ensure monotonicity and reduce computational complexity, with max effort detection coming from the 85% filtering? Or does the scanning back mechanism contribute to max effort detection in a way that I might have overlooked?

18.09.2025 07:53 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

You can see exactly where Wightman’s tank emptied, about 5-10 m from the line (by the Honda sign). If you calculate his critical speed and D’ from his outdoor PBs, D’ was gone 6 m before the line.

18.09.2025 06:51 β€” πŸ‘ 5    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

Intervals.icu uses pretty much the same method to find max efforts. Doesn't do any pre-smoothing of the power data. I never tried smoothing.

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

So there you have it. This was our proposed solution to interrogate real-world (messy) MMP data, identify maximal values in that data, and use (only) those to derive CP.

17.09.2025 06:45 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Final question: Do you apply rounding to the 3s smoothed data? (rounding determines how big of a drop will be considered a shoulder)

17.09.2025 07:42 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

Thanks for the extensive answer! Your implementation is simpler than I thought: Because the paper mentioned "deflection points" I actually thought you were using the 2nd derivative with some cutoff.

17.09.2025 07:42 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

@james-spragg.bsky.social Hey James. Is it possible to share the code or detailed explanation of the "shoulder method" in your "An improved methodology..." paper from 2023? I'm considering making a paper playground (paperplayground.app) for it.

16.09.2025 12:47 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

This comment/thread made me realize I had some gaps in my intuition around regression methods for power-duration models.
New blog: gssns.io/posts/same-m...

16.09.2025 12:33 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Joking aside: Of course in some settings this is possible, but there are enough settings (like online training applications, my main clients) where this is not (always) possible/preferred, requiring an unsupervised approach.

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

I tried, but the .csv files refuse to talk to me...

16.09.2025 12:13 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

I do like the shoulder method from Spragg et al. but it needs a cutoff that is very duration specific, making implementation (especially in a wider duration domain) difficult/arbitrary.

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

Thanks for answering.
Fitting on work-duration indeed makes sense. I still tend to plot power-duration because it's more intuitive (to me).
Do you know of any published work on hull/envelope fitting for power duration models?

15.09.2025 19:20 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@rchung.bsky.social any thoughts?

12.09.2025 19:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Some observations:
- Least-squares clearly underfits both W' and CP
- Asym-loss-A overfits Pmax
- Asym-loss-B looks most balanced (my subjective pick), but CP appears overestimated (note: from this data alone, not according to 2-param asymmetric-loss and my own estimations)

12.09.2025 19:58 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Question: Which approach do you think gives the best fit for the 3-param CP model? (Does it matter?)

12.09.2025 19:58 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
The three-dimensional impulse-response model: Modeling the training process in accordance with energy system-specific adaptation Athletic training is characterized by physiological systems responding to repeated exercise-induced stress, resulting in gradual alterations in the functional properties of these systems. The adaptive...

I'm building a new Paper Playground for this paper: arxiv.org/abs/2503.14841
This gives me a chance to revisit asymmetric loss functions for fitting the 3-parameter CP model (following up on my earlier blog here: gssns.io/posts/asymme...)

12.09.2025 19:58 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Mean-max sampling Mean-max sampling tl;dr: Mean-max downsampling can significantly reduce computation and storage requirements for mean-max curves. Mean-max curves show your best sustained efforts across different dura...

New blog: Mean-max sampling
gssns.io/posts/mean-m...

12.09.2025 13:29 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

New tutorial: "One-Off Analysis Scripts: Cycling Torque Example"
developer.sweatstack.no/tutorials/on...

10.09.2025 07:08 β€” πŸ‘ 0    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
SweatStack Console

And by "Vibe Coding" I mean procrastinating from accounting by adding completely unnecessary features to console.sweatstack.no.

05.09.2025 09:38 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Friday Vibe Coding

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

The same approach can be extended to other power duration models (such as the OmPD model) on more detailed mean-max data, showing the same effect of tightly fitting around proven maximal efforts while ignoring submaximal efforts:

03.09.2025 10:33 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@aartgoossens is following 19 prominent accounts