19:02:27 <mizmo> #startmeeting hubs-devel
19:02:27 <zodbot> Meeting started Thu Jan 19 19:02:27 2017 UTC.  The chair is mizmo. Information about MeetBot at http://wiki.debian.org/MeetBot.
19:02:27 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
19:02:27 <zodbot> The meeting name has been set to 'hubs-devel'
19:02:38 <mizmo> #chair shillman
19:02:38 <zodbot> Current chairs: mizmo shillman
19:02:43 <mizmo> #topic geo data for users
19:02:51 <mizmo> so a quick summary
19:03:05 <mizmo> we guess based on IP or GPS if available
19:03:16 <mizmo> we show city and country fields overlaid on an openstreetmap
19:03:24 <mizmo> user corrects fields
19:03:25 <mizmo> edge cases
19:03:28 <mizmo> boston MA vs boston NY
19:03:36 <mizmo> cities in more than one state / country / etc at once
19:03:56 <mizmo> VPN access (i'm in boston, vpn makes my IP appear to be in Raleigh)
19:04:47 <shillman> We store city, country, and we're thinking about lattitude and longitude that we figure out from the location info.
19:06:08 <shillman> Current thoughts on the edge cases were that we auto-suggest when people start typing into 'city', with closest relevant cities first.
19:06:23 <shillman> Those suggestions are within the specified country.
19:06:53 <shillman> This does require that we are able to know what cities/counties/provinces/other things exist in a country.
19:07:23 <shillman> Two possible python databases exist that might help with this: https://github.com/scaleway/postal-address/blob/develop/postal_address/territory.py and https://github.com/openvenues/pypostal/blob/master/postal/pyparser.c
19:07:45 <shillman> We were trying to avoid having to know these things, so I don't know if we want to try to figure out something else.
19:08:32 <mizmo> hm
19:09:09 <mizmo> yeh i think it's ok to use one of those libraries to get location info between city and country to distinguish between cities with the same name
19:09:35 <mizmo> on that point i think a developer would have a better idea of what to do -
19:09:39 <shillman> True.
19:09:46 <mizmo> but we have to be able to distinguish between Boston and Boston in the list
19:09:54 <mizmo> i dont see it as being problematic though
19:10:05 <mizmo> okay so we walked through the boston NY case right
19:10:07 <mizmo> and the Boston MA vpn case
19:10:25 <mizmo> so the one issue that came up, if I'm in Boston MA and use VPN in buffalo, Boston NY is closest proximally
19:10:46 <mizmo> if I type boston in the city field, It should go something like Boston NY, Boston MA and i'd just hve to select Boston MA
19:10:46 <mizmo> the map should update to show boston MA
19:11:04 <shillman> Yes. And I have no idea how many bostons there are. But... once someone sees the suggestions, maybe they can just add the state (or whatever) part rather than having to hunt?
19:11:08 <shillman> Agreed.
19:11:19 <mizmo> so we walked thru vpn case and city in two states case
19:11:21 <shillman> (Bostons or other similarly problematic city names)
19:11:45 <mizmo> yeh it should be that they can just start writing the next higher level location and the autocomplete list will filter down to it
19:11:54 <shillman> Yeah, exactly.
19:13:11 <shillman> For the city in multiple places problem, I'm not sure if it's true, but I'd expect that people have opinions on which of the options they live in?
19:14:17 <shillman> So, the example you gave above of Guben, which is in Germany and Poland.
19:14:46 <mizmo> yeh
19:14:47 <shillman> As long as the database we use knows this, they should be able to just select the correct country?
19:14:57 <mizmo> i think so. i dont think it should be a problem.
19:15:01 <mizmo> i think that case is an easy one.
19:15:13 <mizmo> where it might be a problem is if the city is in multiple states bc we don't have a state field
19:15:15 <shillman> Oh. You mentioned that there are some embargoed countries: We'd need checking for that and some sort of relevant error message.
19:15:25 <shillman> Aaah.
19:15:26 <shillman> Yes.
19:15:36 <mizmo> but i think in most cases its the same difference? so it probably doesn't matter whether you're say kansas city MO or kansas city KN?
19:15:56 <shillman> Shouldn't matter, and if someone really cares they can start changing things and the dropdown might suggest useful things?
19:16:10 <shillman> (people often really care about things like this)
19:20:22 <mizmo> yeh
19:20:27 <mizmo> i would consider it a non issue
19:20:29 <mizmo> okay
19:20:32 <mizmo> so is there aything else we'd need?
19:20:38 <mizmo> i think this design holds up
19:20:39 <mizmo> OH!
19:20:40 <mizmo> right
19:20:41 <mizmo> for accessibility
19:21:09 <mizmo> so we need to make sure that the map displays in screen reader friendly text the names of the cities in the map
19:21:10 <mizmo> could be in a caption or alt text or whatever
19:21:18 <shillman> Yessss
19:21:59 <mizmo> i dont think the typeahead will work in that case either, so being able to support just typing city, state / city, province / whatever and making a best guess too will be important
19:22:57 <shillman> *does a quick check to see if it is actually fine*
19:23:09 <mizmo> thats the tricky thing about js libraries is they aren't always accessibility friendly
19:24:39 <shillman> Looks like only ones that specifically say they are are, and it's not clear how usable those are
19:24:59 <mizmo> for typeaheads?
19:25:19 <shillman> Yeah
19:25:25 <shillman> eg: https://github.com/senthilshanmugam/a11yTypeAhead
19:29:02 * mizmo looks
19:29:30 <mizmo> ah thats angular, i think we aren't doing angular but react?
19:29:33 <mizmo> f we could find a react one...
19:29:34 <shillman> Aaah.
19:30:05 <mizmo> https://www.npmjs.com/package/react-typeahead-component
19:30:07 <mizmo> maybe that one
19:31:14 <shillman> Yeah, but it's not in devel.
19:32:00 <shillman> https://www.npmjs.com/package/react-pick and https://github.com/reactjs/react-a11y
19:32:03 <shillman> also might work.
19:32:38 <shillman> But then, none of those seem recently worked on.
19:33:08 <mizmo> well, we'll have to figure this out
19:33:23 <mizmo> #action figure out an a11y friendly typeahead library for city field
19:33:32 <mizmo> i dont think its impossible
19:33:35 <mizmo> anything else we need to cover?
19:33:36 <shillman> Agreed.
19:34:11 <shillman> Like addresses, names and phone numbers have assumptions in them.
19:34:56 <shillman> Like number of names in a valid name. I'm currently leaning toward having a single 'name' field, and a 'use name' field.
19:35:20 <shillman> But I'm not sure if I can figure out how to make it required that you fill out at least one of those but not care which one.
19:35:52 <shillman> I think phone numbers is less immediately important, but also relevant. Country codes, structure of the number, etc.
19:36:33 <shillman> Names: https://www.formulate.com.au/blog/the-name-riddle/
19:37:18 * mizmo looking
19:37:52 <mizmo> we dont have to validate phone number
19:37:57 <mizmo> so i think phone number isn't a hard problem
19:38:01 <mizmo> let people structure it how they want
19:38:08 <mizmo> if we want them to look neat and clean we could limit to () and - beyond numbers
19:38:32 <shillman> OK, re phone number.
19:38:33 <mizmo> or we can even limit to just numbers and just allow spacing if they want to space out the stanzas
19:38:34 <mizmo> oh and + should be allowed
19:38:45 <mizmo> for names... that really turns into a rat hole
19:38:52 <shillman> (I like using . also in phone numbers)
19:39:06 <shillman> Yes. Which is why I'm thinking a general name field, and a use name field.
19:39:13 <shillman> Or something like that.
19:39:15 <mizmo> yeh i think we shuldn't allow . tho bc it makes them inconsistent
19:39:20 <shillman> k
19:39:22 <mizmo> space is probably the best separator
19:39:37 <mizmo> the problem is "general name" vs "use name" aren't going to make sense to most people
19:39:45 <shillman> Yeah. Words are hard.
19:39:55 <mizmo> also, note that if the UI is translated, these fields will be translated appropriately
19:40:09 <mizmo> so firstname / lastname in japanese is going to be translated lastname / firstname :)
19:40:13 <mizmo> but in japanese
19:40:41 <mizmo> i think probably lastname shouldn't be required, for those who only have one name
19:40:46 <shillman> Right.
19:41:04 <mizmo> for people who have mutliple names just make sure each field has enough characters and supports spaces and they can break up how they like, i'm sure they are accustomed already
19:42:07 <shillman> So maybe 'given name' and 'family name' with only the first being required?
19:43:32 <mizmo> i think given and family are the most accurate but i also think they are so uncommon that people will be confused
19:43:50 <mizmo> is first / last a problem?
19:44:04 <shillman> If you are not in the US, it's not what is used, I'm pretty sure.
19:44:06 <mizmo> for the cultures that go last / first, i'm assuming they would be localized
19:44:48 <mizmo> well our main concern would be english speaking non us countries
19:45:49 * mizmo checking something
19:45:59 <shillman> I'm not positive, but I don't think it's last name in most other english speaking countries
19:46:32 <mizmo> yeh so Ireland is first name last name
19:46:52 * mizmo looking up forms
19:47:54 <mizmo> UK is first name last name
19:47:57 <shillman> Ah, cool. You have forms to look at!
19:48:48 <mizmo> Australia uses first/last
19:48:56 <mizmo> what i did was find a prominent newspaper in each country and pull up their sign up form
19:48:59 <shillman> Aaah.
19:49:01 <shillman> cool
19:49:02 <mizmo> because they need postal info
19:49:15 <shillman> *nod* Ok, it sounds like last and first is fine. Except reversed.
19:49:24 <mizmo> first / last is the most common, i think if people have to stop and think about what a form field is asking them it's a prob
19:49:37 <mizmo> yep!
19:49:58 <shillman> Yes, agreed!
19:50:01 <mizmo> #agreed first name, last name are appropriate labels internationally for english strnigs
19:50:24 <mizmo> anything else?
19:50:32 <shillman> nothing else comes to mind?
19:52:34 <shillman> Darn you location information, you are complicated! ;)
19:52:36 <mizmo> well what do we need from this
19:52:56 <mizmo> i think probably the location mockups you did shold be updated right? the welcome to hubs, ehres what we think your location is?
19:53:01 <shillman> Agreed.
19:53:06 <shillman> That's what I was planning to adjust.
19:54:06 <shillman> It was needed anyway because I didn't know what the existing creation interface looked like. :)
19:54:09 <mizmo> #action shillman to adjust user location setting mockups accordingly
19:54:37 <mizmo> ok cool
19:54:51 <mizmo> okay so that was a lot of discussion for a simple question but i think the direction is clear now?
19:55:08 <shillman> I think so, yes. And it was _not_ a simple question, evidently. ;)
19:57:57 <mizmo> this is par for the course btw, a lot of UX work is digging into this kind of stuff
19:58:03 <mizmo> nobody ever tells you that
19:58:11 <shillman> So if someone wants to enter in the info themselves...
19:58:29 <shillman> Should they have the map interface with nothing in country or city?
19:58:43 <shillman> I don't know if anyone can outright refuse to share even the IP info?
19:59:27 <shillman> I actually did know that digging into stuff was a lot of UX, I just didn't consider that that might have been a place that it was needed!
20:00:26 <mizmo> hm
20:00:51 <mizmo> so i dont know as much about it, but i do believe theres a way to request location info and the user can refuse it based on a browser dialog
20:00:52 <mizmo> have you ever seen one of those?
20:00:56 <mizmo> i dont know the mechanics of it though
20:01:12 <mizmo> https://www.mozilla.org/en-US/firefox/geolocation/
20:01:40 <mizmo> https://matrix.org/_matrix/media/v1/download/matrix.org/btOUgTdtNAaApBXXVIXvkPHE - mizmo_2017-01-19_20:01:39.txt
20:01:44 <mizmo> oh dear lord
20:01:49 <mizmo> i had assumed it was solely ip based
20:01:50 <mizmo> eek
20:02:17 <mizmo> https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation
20:02:40 <shillman> (your paste was a matrix.org link rather than content)
20:02:54 <mizmo> oh weird
20:03:10 <mizmo> By default, Firefox uses Google Location Services to determine your location by sending:
20:03:13 <shillman> BUt it does look like we may not have any info about someone's location if they are on a computer.
20:03:27 <mizmo> your computer’s IP address,
20:03:28 <mizmo> information about the nearby wireless access points, and
20:03:28 <mizmo> a random client identifier, which is assigned by Google, that expires every 2 weeks.
20:03:29 <mizmo> how so?
20:03:35 <mizmo> we always have ip
20:03:40 <shillman> If they refuse the...
20:03:41 <shillman> Ah.
20:03:43 <shillman> Ok.
20:04:22 <mizmo> https://facebook.github.io/react-native/docs/geolocation.html
20:05:05 <mizmo> even if they refuse we still have IP. refusing the browser geolocation thing means it won't connect to the google API to see what wifi APs and google metadata is available to track you down further
20:05:11 <shillman> I see, ok.
20:05:24 <shillman> Then there is no completely empty state. Noted!
20:06:05 <mizmo> yeh the worst case scenario is a very wrong state
20:06:21 <shillman> *nodnod* Ok.
20:07:24 <mizmo> so the  map should always have some location
20:07:34 <mizmo> if there is no location data, though - which i think happens if theres some error at some point
20:07:35 <shillman> Good. That's less weird.
20:07:38 <mizmo> like a connection error
20:07:53 <mizmo> we could just default to some random point on the map and have blank felds
20:08:05 <mizmo> like, its not a case that should really ever happen but i think it does
20:08:21 <shillman> Yeah, probably especially with low bandwidth places.
20:08:23 <mizmo> which contradicts what i just said sorry :(
20:08:54 <shillman> Eh, that's fine. Rather think about it now than later!
20:09:12 <shillman> Should we show no map, a fully zoomed out map?
20:09:38 <mizmo> yeh that makes sense
20:09:38 <shillman> With the city/country overlays on top.
20:09:46 <mizmo> totally
20:09:47 <shillman> Which one? None or zoomed out?
20:09:50 <shillman> I can't decide.
20:09:59 <shillman> I mean, if we fail to have info, they might be on mobile.
20:10:03 <shillman> So having no map might make more sense.
20:10:11 <shillman> Due to bandwidth
20:10:50 <shillman> empty map...
20:10:57 <shillman> empty map box, I mean
20:12:30 <mizmo> we could always case it
20:12:30 <mizmo> if mobile no map
20:12:35 <mizmo> if desktop map
20:13:13 <shillman> Also, should I be collapsing my location info with a new account into your new account creation issue?
20:13:16 <shillman> Ah, good point!
20:13:23 <shillman> And if we can't tell, no map?
20:13:40 <mizmo> yeh seems fair
20:13:54 <mizmo> re collapsing location info w new account - what do you mean?
20:14:04 <mizmo> what new account craetion issue?
20:14:09 * mizmo sorry, doesnt remember
20:14:14 <shillman> No worries!
20:14:17 <shillman> You made this: https://pagure.io/fedora-hubs/issue/289
20:14:33 <shillman> And I think the part where we need to get their location info, at least for a new account, should go there, too.
20:14:54 <mizmo> ohhh not an actual issue as in problem, a ticket :)
20:14:59 <shillman> yes, sorry!
20:15:10 <shillman> darned overloaded terms
20:15:16 <mizmo> so i actually liked the way you mocked it up better -
20:15:30 <mizmo> collecting the location data as sort of a first run wizard
20:16:40 <shillman> Should I continue with the small modal dialogs, or have it all be on a page (perhaps with bits being added as you go)? You did comment wondering about the modal dialogs. :)
20:17:06 <mizmo> shillman: when you say small modal dialogs, what are you specifically referring to
20:17:08 <shillman> I was mostly trying to not overwhelm people.
20:17:20 <mizmo> the little popup thingys?
20:17:25 <mizmo> or the full screen modal dialogs
20:17:33 <shillman> Popup things.
20:17:41 <mizmo> ah
20:17:51 <shillman> Last part in your review on https://pagure.io/fedora-hubs/issue/286
20:17:56 <mizmo> yeh so, it could just be a pet peeve, but i think small popups are good for reading info but not editing. it depends.
20:18:02 <shillman> Huh!
20:18:04 <shillman> Ok.
20:18:21 <mizmo> but the problem is popups can be finnicky and if you're filling in a field in a popup and the pop up disappears because your mouse cursor moved 1 mm.... it's really irritating
20:18:30 <shillman> Aaaaaaaah. Yes,
20:18:31 <shillman> .
20:18:32 <mizmo> they also tend not to be super accessible
20:18:35 <mizmo> since they are so JS dependent
20:18:39 <shillman> Got it. Ok.
20:18:54 <mizmo> i think though, balsamiq tends to push people towards using them
20:19:07 <mizmo> its something ive noticed in pretty much all basalmiq mockups ive seen
20:19:10 <shillman> Huh!
20:19:25 <shillman> So what do you mean by full screen modal dialogs?
20:19:50 <mizmo> lemme grab one, sec
20:20:47 <shillman> (I do note that most of the time I'm using those, I'm largely doing a quick thing to get an idea out. It's really noodling more than anything)
20:20:49 <mizmo> https://pagure.io/fedora-hubs/issue/283#comment-51544
20:21:02 <mizmo> shillman: so the style we've adopted thus far for modals is to shade the screen and pop the modal up
20:21:29 <shillman> That's actually what I'd been doing when I was more certain about my goals.
20:21:42 <shillman> But yes, I'm likely to forget about changing things like that without them pointed out.
20:21:59 <shillman> And I notice the intentional need to close the modal. Good thing to have!
20:22:51 <mizmo> yeh
20:23:55 <shillman> Given that one can create an account from literally any page, I'm likely going to just make something scribbly and shade that. :)
20:24:18 <shillman> We shoudl probably end the meeting. We got really off track just now. :)
20:25:05 <mizmo> okie doke
20:25:07 <mizmo> #endmeeting