5 ms·
The weird thing is that they claim it's to avoid duplicate activities, but they totally know how to recognize duplicates already. Every so often, there's some s
by notacoward 5y ago
The weird thing is that they claim it's to avoid duplicate activities, but they totally know how to recognize duplicates already. Every so often, there's some sort of glitch in one of my activities getting from Garmin to Strava. If I'm feeling impatient, I download the .fit file from Garmin and upload it to Strava myself, and I never get a duplicate that way. Happened for the first time in a while just last week. Clearly, whenever Garmin does send the data, Strava is perfectly capable of recognizing an activity it already has, and it does the right thing. I'm just not buying that excuse.
BTW and a bit OT, I find it very impressive that Strava can retroactively create a leaderboard going back years for a newly created segment, meaning that they must evaluate potentially millions of nearby activities for overlaps, often in just a few minutes. That's a hell of a query. Anybody know of more information on how they do it?
- whimsicalism 5y agoI thought they meant duplicate activities on the Apple Health side. If they can't read what the other services are writing to Apple Health then they have no way of avoiding duplicates.
- deleted 5y ago[deleted]
- notacoward 5y agoDoesn't that suggest that Apple is failing to detect and coalesce duplicates, like Strava and (AFAIK) other similar services like Garmin Connect or old MapMyRun do? That seems pretty damning, and also not Strava's problem.
- whimsicalism 5y agoIt might be substantially easier to detect duplicates coming from the same device (ie. the Strava case) than duplicates that might have been repackaged by any number of N third parties (ie. the Apple case).
- mulmen 5y agoMillions of activities is approximately zero activities. That's an inconsequential amount of data. Even if it is a couple orders of magnitude larger than I think geographic partitioning can keep the volume small enough to easily fit in RAM.
- mdoms 5y agoIncredibly ignorant statement. An activity can have thousands of data points across dozens of metrics. A record of your route to 1 meter or smaller precision for a 5 hour bike ride is alone thousands of data points. Along with hundreds or thousands of time series points for heart rate, elevation, cadence, power, respiration, etc etc... Millions of activities means tracking tens of billions of data points and perhaps an order of magnitude more than that.
- mulmen 5y agoThere’s no reason all that granular data would be used to calculate a leaderboard. It can be rolled up in advance and for leaderboard purposes most of it can be ignored. Parallelism along the location, customer and activity dimensions makes this an easily reducible problem.
- notacoward 5y agoIt's not the size (though as mdoms explains it's more than you might think); it's the complexity of matching activities to segments at the necessary level of precision. I know what a consequential amount of data looks like, having worked on a storage system that routinely fed multiple petabytes of data to each of many analytics pipelines simultaneously. Geographic partitioning is only what gets you to millions of activities instead of billions. There's still a computational component involved in delivering those answers so quickly, and that's what I'm curious about. There might be some interesting algorithms involved. Your blithe dismissal of any part other than the one you think you understand shows that you either can't understand the whole thing or didn't bother to try.
- mulmen 5y ago