To compare: a tour de france runner outputs 400-500W on mountain climbs while keeping up to 20-25km/h. So a 500W motor (plus 100W power output from yourself) should be enough for smaller climbs!
493 karma · joined December 1, 2013
To compare: a tour de france runner outputs 400-500W on mountain climbs while keeping up to 20-25km/h. So a 500W motor (plus 100W power output from yourself) should be enough for smaller climbs!
This is not true for stability in practice: the action often depends on a specific Node version (which may not be supported by the runner at some point) and/or a versioned API that becomes unsupported. I've had better luck with @main.
uses: actions/checkout@v4
That uses the Node that is provided by GitHub, and that will break in the future.Yet with GHA I need to update actions/checkout@v2 to actions/checkout@vwhatever (or, what I'm doing now, actions/checkout@main because the actual API haven't actually changed) because... some Node version is "out of maintenance"?!
GHA is literally code execution as a service. Why would I care whether the Node runner has a security vulnerability?
Would GitLab have been better? Maybe. But chances are that there is another edge case that is not handled well there. You're in a PaaS world, don't expect the platform to adjust to your workflow; adjust your workflow to the platform.
You could of course choose to "step down" (PaaS to IaaS) by just having a "ci" script in your repo that is called by GA/other CI tooling. That gives you immense flexibility but also you lose specific features (e.g. pipeline display).
I think, however, that starting from the examples might help with good API design: if you design your API to be "core concept first", this will likely lead to an API that _can only be used after you understand the core concepts_, which is not great when people are only occasional users.
Security of NFC applications is complex, and generally a layered approach. Yes, physical distance is a mitigating factor. Using smart cards (rather than keyfobs) and encrypted communication mitigates the risk of skimming. Using sensible financial limits and good monitoring limits the impact of any issue that does occur.
In the end, security is not a black and white 'you need to be at a distance thus things are secure' story. It's about reducing the risk, which is a combination of reducing probability _and_ reducing impact.