WordPress.org

Making WordPress.org

Opened 20 months ago

Last modified 20 months ago

#3476 new enhancement

Kilometers range for the nearest meetup

Reported by: Mte90 Owned by:
Milestone: Priority: normal
Component: API Keywords: 2nd-opinion needs-design
Cc:

Description

Seems that the Widget that show the nearest meetup is not so stable on showing the most near meetup.
Attached you can find few examples of that with Italian cities.
I think that the best way is to find before the meetup in an area of 100km and later the most faraway.

Attachments (2)

Screenshot_20180221_133305.png (33.2 KB) - added by Mte90 20 months ago.
Rome suggest Rome and Bari
Screenshot_20180221_133724.png (48.6 KB) - added by Mte90 20 months ago.
Mantova - Ignore a city in 45km and suggest more faraway

Download all attachments as: .zip

Change History (7)

@Mte90
20 months ago

Rome suggest Rome and Bari

@Mte90
20 months ago

Mantova - Ignore a city in 45km and suggest more faraway

#1 @dd32
20 months ago

The events API returns meetups within a 100km *square* and WordCamps within 400km. That actually means Meetups can be as far away as 140KM and WordCamps 565KM if they were in the far corner of the square around the searched location.

We use a bounded square for performance (Much easier to calculate and query on squares than circles).

The API also only shows the next 3 events, as such, in your Mantova example once the event on the 22nd expires it'll show the Verona event. WordCamp Torino would also be displayed, but is also off the bottom of the list, which https://core.trac.wordpress.org/ticket/41112 will fix
Here's the raw API response for that: https://api.wordpress.org/events/1.0/?location=Mantova

In the case of Italy, it does look like 3 events isn't a good number, especially with the number of cities in a small area with events around the same date. I have 5 meetups around me and the only reason 3 works is because they're spread out over the month.

I can see various arguments which can be made here:

  • Reduce the radius
  • Query by square radius, then apply a circle radius on the results to limit it to 100km
  • Order by distance then date - I don't believe this would have the intended effect for many locations, especially when GeoIP was used for a location rather than a entered location
  • Display at least 3 events, showing all events happening in the next ~10 days
  • Increase the number of events which can be shown - Setting this per-locale wouldn't be out of the question IMHO.

cc @iandunn for ideas.

#2 @Mte90
20 months ago

Maybe after this explanation the best solution is order them by distance and not by day of the meetup.
In that way we are sure that the most near is included in the list of 3 showed in the widget.

#3 @SergeyBiryukov
20 months ago

This makes the most sense to me:

Display at least 3 events, showing all events happening in the next ~10 days

#4 @iandunn
20 months ago

  • Keywords needs-design added
  • Type changed from defect to enhancement

Related #wp41442, #2998

I like some of the ideas above, and they may be helpful for other situations, but I'm not sure the situation in this specific ticket is actually a problem. The Verona meetup will appear in the list a full week before it occurs.

I think it’s important to keep in mind that the original purpose of this widget wasn't to help insiders like us keep track of 100% of the events that we’re interested in; it was to introduce new people to their local WP community, when they otherwise wouldn't hear about it.

For people who are already aware of it, the widget can tangentially serve as a helpful reminder, but there are other means of keeping track of the local community, which will always be more effective, like subscribing to email notifications for the meetup.com group.

There are so many competing preferences and circumstances that we're already trying to balance, and I'm leery of making things more complicated.


Having said that, I do think it's valuable and important to make the results more relevant when we have practical options for doing that.

Reduce the radius

If we did this unconditionally, I think that'd have the unintended side-effect of leaving some users with no results found in their area, even though there are still some within driving distance. The 100km / 400km values were chosen based on how how far the average attendee would be willing to drive, so I think it makes sense to keep them close to that practical guideline.

Obviously there are lots of situations where that breaks down -- what about people who bike or bus instead of drive? What about cities where it takes an hour to travel 5k by car? etc -- but I'm leery of introducing more complexity.

We could do it with some conditions, but that'd increase the complexity.

Query by square radius, then apply a circle radius on the results to limit it to 100km

I like this, because it actually makes the results more accurate to the intended 100k / 400k radius, and we often get feedback about some events being too far away. It also seems like it'd be a relatively simple API-side change.

Order by distance then date - I don't believe this would have the intended effect for many locations, especially when GeoIP was used for a location rather than a entered location

I think it'd also make the widget less intuitive and useful. I think people expect to see the events sorted chronologically, and silently changing that would probably cause people to miss events.

Display at least 3 events, showing all events happening in the next ~10 days

I like this idea too, but I think it might be good to cap the total number at 5 or 6, to avoid cluttering the UI. I'd also like to get some design-feedback on that.

Pairing this with the circle-radius refinement seems like it would compound the effectiveness.

Increase the number of events which can be shown - Setting this per-locale wouldn't be out of the question IMHO.

I don't like the idea of doing anything per-locale, because that adds a maintenance burden to keep those up to date, and things can change somewhat frequently, as different communities grow, shrink, and change. We're coming up on 600 meetup groups in the chapter program, which could result in a lot time spent tweaking per-locale settings as people report issues. I can also imagine different people in the same group wanting different settings based on their personal preferences.

#5 @dd32
20 months ago

To clarify a few points:

Reduce the radius

I don't think this is something we should consider.

Query by square radius, then apply a circle radius on the results to limit it to 100km

I think I may have originally said "square is fine, if a few events fall too far from the center we can revisit that later".
I'm not 100% sure that limiting it to a circle would help greatly though.

Display at least 3 events, showing all events happening in the next ~10 days

I like this idea too, but I think it might be good to cap the total number at 5 or 6, to avoid cluttering the UI.

Capping it seems reasonable.

Increase the number of events which can be shown - Setting this per-locale wouldn't be out of the question IMHO.

I don't like the idea of doing anything per-locale, because that adds a maintenance burden to keep those up to date,

I was thinking of a translation - _x( '6', 'The number of meetups to show' ) but upon second thought I don't really like that idea here, it's not going to help any actual problems.

Note: See TracTickets for help on using tickets.