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...
@aartgoossens.bsky.social
Founder and Developer of @sweatstack.bsky.social.
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...
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 β π 1 π 0 π¬ 1 π 0Strava 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 π 4Claude Skills are awesome, maybe a bigger deal than MCP
simonwillison.net/2025/Oct/16/...
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 π 13100 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 π 0Link 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 π 0Apparently 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...
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 π 0You 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 π 0Intervals.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 π 0So 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 π 0Final 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 π 0Thanks 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 π 0This 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...
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 π 0I tried, but the .csv files refuse to talk to me...
16.09.2025 12:13 β π 1 π 0 π¬ 1 π 0I 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 π 0Thanks 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?
@rchung.bsky.social any thoughts?
12.09.2025 19:59 β π 0 π 0 π¬ 1 π 0Some 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)
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 π 0I'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...)
New blog: Mean-max sampling
gssns.io/posts/mean-m...
New tutorial: "One-Off Analysis Scripts: Cycling Torque Example"
developer.sweatstack.no/tutorials/on...
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 π 0Friday Vibe Coding
05.09.2025 09:33 β π 0 π 0 π¬ 1 π 0The 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