18:03 <popey> #startmeeting Weather Reboot meeting
18:03 <meetingology> Meeting started Thu Mar 12 18:03:11 2015 UTC.  The chair is popey. Information about MeetBot at http://wiki.ubuntu.com/meetingology.
18:03 <meetingology> 
18:03 <meetingology> Available commands: action commands idea info link nick
18:03 <popey> Hows thing?
18:03 <popey> *things
18:03 <m-b-o> Fine, tomorrow finally friday :)
18:03 <popey> \o/
18:04 <ahayzen> o/
18:04 <m-b-o> o/ ahayzen
18:04 <popey> heya
18:04 <popey> Couple of things to start
18:05 <popey> I see on twitter that bq said they will start shipping on 20th March
18:05 <popey> So it's finally happening :)
18:05 <ahayzen> \o/ its happening people :)
18:06 <popey> Secondly I wanted to firm up where we are and what we have left for the reboot
18:06 <ahayzen> a good place to start https://blueprints.launchpad.net/ubuntu-weather-app/+spec/weather-reboot :)
18:07 <m-b-o> switch ubuntu-geonames on the backend, GPS for current location
18:07 <m-b-o> "switch to"
18:08 <popey> So for your geonames patch I need to do a bit more testing which I will do tomorrow (as friday is a bit quieter)
18:08 <ahayzen> few UI things left...
18:08 <popey> then file an RT to get it in
18:08 <m-b-o> popey ok!
18:08 * popey edits the blueprint
18:08 <ahayzen> like i'm half way through the clicking a delegate to show sub things
18:09 <m-b-o> ahayzen it's bit messy because of the height of the list, isn't it?
18:09 <ahayzen> then we need todo like we have ui niceness things like swiping the image
18:10 <ahayzen> m-b-o, i've got the UI working :) ...its more the data side as i said before ;)
18:10 <m-b-o> ah, ok :)
18:10 <m-b-o> autopilot tests are comleting missing by now
18:10 <ahayzen> m-b-o, i just haven't had a chance since we last spoke to conditionally show pressure/humidity etc ...
18:10 <popey> right, just moved the things around to put the TODO at the bottom
18:10 * ahayzen shakes fist at university work
18:11 <ahayzen> i plan over the weekend/next week to start doing the autopilot helpers/mocking if no one else starts it ;)
18:11 <m-b-o> I will be around on irc tomorrow and parts of saturday. feel free to ping
18:11 <ahayzen> coolio
18:11 <balloons> ahayzen, m-b-o bugs filed for those?
18:12 * ahayzen actually enjoys writing AP helpers now after balloons taught him what todo :)
18:12 <ahayzen> balloons, this is for reboot ... we have ... no test at all!
18:12 <m-b-o> I will start to migrate the backend for ubuntu-geonames, using the test vps
18:12 <ahayzen> i suspect the mocking of the weatherApi will be fun? ... i haven't looked how th current app does things
18:12 <balloons> ahayzen, right.. so any bugs asking for things? or even a generic bug saying we nee tests? :-)
18:12 <m-b-o> we need then the cpp plugin for calcuation the timezone offset
18:13 <ahayzen> balloons, there is a work item in the blueprint... which i'll probably assign to me to 'set up test framework' ... once we have something that mocks, runs and has helpers then we can write bugs for the tests?
18:13 <ahayzen> balloons, or do you think we need a bug now?
18:14 <ahayzen> m-b-o, \o/ cpp plugin :)
18:14 <popey> We're tracking _all_ the AP requirements with bugs
18:14 <balloons> I mention it.. you could file a bug saying setup test infastructure
18:14 <popey> and tagging as needs-autopilot-tests
18:14 <balloons> the point is without a bug, me nor anyone else knows it's needed
18:14 <balloons> right ^^
18:14 <popey> so we can have an overview of all the ones we need
18:14 <ahayzen> m-b-o, remind me what the geonames is for again ?
18:14 <ahayzen> ah i see
18:14 <m-b-o> searching for locations. by name or lat/long point
18:15 <ahayzen> well if we have a bug then assign it to me and i'll give it a crack over the next few days ... hopefully :)
18:15 <m-b-o> and ubuntu-geonames only responds with timezone name
18:15 <ahayzen> m-b-o, ah :) ... so what are we doing currently in the add location page? or is that using that already?
18:15 <m-b-o> @ahayzen so we need to as QtTimezone(?) to get the current offset
18:15 <meetingology> m-b-o: Error: "ahayzen" is not a valid command.
18:16 <m-b-o> ahayzen currently we are still using geonames.org
18:16 <ahayzen> m-b-o, oh right i understand so we're moving to the ubuntu one :)
18:16 <m-b-o> but I've already rewritten WeatherApi.js of the old app to work with ubuntu.geonames, so I have to copy it over
18:17 <popey> awesome.
18:17 <m-b-o> so I will a branch with mgrated backend and wait with the MP until the changes in ubuntu-geonames have landed
18:17 <m-b-o> "so I will keep a"
18:18 <ahayzen> cool
18:18 <m-b-o> bu to get it work correctly the cpp plugin is needed
18:18 <ahayzen> yup
18:19 <ahayzen> so UI wise what else is left, other than the work items ?
18:19 <ahayzen> i don't think we have missed anything major?
18:19 <m-b-o> a possibility to refresh
18:19 <ahayzen> ah yes...header action?
18:19 <m-b-o> where can I get more detailed data about today?
18:20 <m-b-o> like pressure rain and so on?
18:20 <ahayzen> m-b-o, more detail as in pressure?
18:20 <ahayzen> yeah hmmm
18:20 <ahayzen> the designs show like that expanding delegate for *future* forecasted days...
18:21 <ahayzen> popey, can you see anything in the designs for ^^?
18:21 <popey> was just looking for that
18:21 <popey> https://docs.google.com/a/canonical.com/presentation/d/1qJ4wzwHsHGNb7GDVjrarMUj4lyro-dLR2_4Xu1b5vQU/edit#slide=id.p
18:22 <popey> hmm, you can see for future days (slide 6)
18:22 <ahayzen> is there enough space under the hourly horizontal swiping thing for further info?
18:22 <m-b-o> but nothin gin particular for today
18:23 <ahayzen> nope nothing
18:23 <m-b-o> hmmm, not really
18:23 <ahayzen> like you want it where the "chance of rain" is at the moment...but not there all the time as it would be cluttered
18:23 <ahayzen> <- is no designer though ;)
18:24 <popey> so you can tap the cloud and see the future times for today
18:24 <popey> what about tapping the temp below the cloud
18:24 <ahayzen> yeah
18:24 <m-b-o> that woulb be possible, but cluttered
18:24 <popey> yeah
18:24 <ahayzen> but then are there to many interactions? ...
18:24 <popey> :S
18:24 <popey> yeah
18:25 <m-b-o> perhaps by tapping the cloud also the temp got flipped
18:25 <ahayzen> but then each thing would have 'more info' on a tap ... the top image to show hourly  ... the delegates
18:25 <ahayzen> yeah +1
18:25 <m-b-o> and we see hourly forecast and detaisl for today
18:25 * popey lights the batsignal for gventuri :)
18:25 <ahayzen> *and* when you swipe the image to show the hourly it shows the detail as well?
18:25 <m-b-o> yes
18:26 <popey> hmm, that could work
18:26 <ahayzen> popey, your our resident designer surely ;) hehehe ... but seriously we should probably ask design lol
18:26 <ahayzen> however i like this idea :)
18:26 <popey> haha, lulz, no way
18:26 <popey> I added a comment to the doc
18:27 <ahayzen> cool
18:27 <m-b-o> we can perhaps go with this solution until design tells us how
18:27 <popey> note that the strip is vertically narrower so there is plenty of space for it
18:27 * ahayzen spots jouni in the room
18:27 <popey> I would go for it, and we can present it to the design guys.
18:28 <ahayzen> yup ok is anyone editing the blueprint atm?
18:28 <popey> not me
18:28 <m-b-o> nope
18:28 <popey> you have the token :)
18:28 <ahayzen> ok i'll add a work item
18:29 <ahayzen> anything else we have missed in the UI?
18:30 <m-b-o> hmm... atm I would say nothing ;)
18:30 <popey> Sounds good.
18:30 <m-b-o> a little indicator while loading
18:31 <ahayzen> ...the locations page we are just showing the name atm...not the current temp etc https://docs.google.com/file/d/0B6y7yTV1qivHczljdzZOM25JNFE/edit
18:31 <m-b-o> or for errors
18:31 <ahayzen> yeah error capture ... spinners etc.... 'polish' :)
18:31 <popey> we use a bouncer in reminders
18:31 <popey> going across the top
18:31 <popey> difficult here because we have no header
18:31 <ahayzen> do we want pull to refresh?
18:31 <ahayzen> like force a refresh around the caching?
18:31 <m-b-o> it's tricky
18:32 <popey> i dont think so really. can we not just pull when we notice data is more than N hours old?
18:32 <m-b-o> because there is a lostview and a flickable
18:32 <ahayzen> i thought it was an SDK component for listviews?
18:33 <ahayzen> but like at least a header action for refresh ?
18:33 <m-b-o> yeah at least a header action to start with
18:33 <m-b-o> refreshing is important
18:33 * ahayzen adds work item
18:33 <ahayzen> ...we don't need any other header actions on the home screen do we?
18:34 <m-b-o> nope
18:34 <popey> ok
18:34 <ahayzen> ...we need empty state code :)
18:34 * nik90 was reading the backlog,
18:34 <ahayzen> nik90, o/
18:34 <popey> hey nik90
18:35 <m-b-o> o/
18:35 <popey> yeah, empty state right now is a bit bare
18:35 <nik90> ahayzen, m-b-o: You can't use the pull to refresh because weather app has a horizontal listview
18:35 <nik90> hey everyone
18:35 <m-b-o> nik90 yes
18:35 <popey> with old weather app we force you to the locations screen
18:35 <ahayzen> nik90, ah bugger .... not even if we hack it ;)
18:35 <popey> we should really add "current location" IMO
18:35 * ahayzen enjoys hacking upstream components ;)
18:35 <nik90> ahayzen: well its a SDK component, unless you want to import it and then hack I dont see a way around it
18:35 <popey> and not allow "empty state"
18:36 <popey> the only problem is if people don't allow location lookup and have no network, we can't get a location
18:36 <ahayzen> yeah default to current location ... can we guess by their language lol
18:37 <ahayzen> they are likely to have GPS or some form of internet though right?....can we do an IP lookup? or can we not access your IP address?
18:37 <nik90> ahayzen: hmm that might help, but we still might run into the issue of being totally off though
18:37 <nik90> ahayzen: geoIP look up requires internet
18:37 <popey> ahayzen: no guarantee of network
18:37 <popey> might not have put a sim in
18:38 <ahayzen> your likely to have WiFi though?
18:38 <popey> and be standing in a shop
18:38 <popey> or not added to wifi yet
18:38 <nik90> its a issue I have in clock as well which is also not resolved
18:38 <ahayzen> ok cached ...
18:38 <popey> "This is new, I have no idea how to get on the network"
18:38 <ahayzen> haha what do other platforms do in that situation?
18:39 <popey> lemme test
18:39 <ahayzen> - no network, no gps, first time the app is started up
18:39 <nik90> Why not show a default location like London or New York?
18:39 * popey has a freshly flashed iphone
18:39 <ahayzen> - phone has never seen network and/or gps before
18:39 <popey> barcelona :)
18:39 <nik90> :p
18:39 <ahayzen> don't other devices like use a cached location anyway like IIRC on my andriod device if i turned off network/gps then fired up an app it would think it was in the last location i had a way of looking up a location
18:40 <popey> ios does this.
18:40 <popey> 1 popup saying "Weather would like to use your current location - Don't alow | OK"
18:40 <nik90> ahayzen: but on a freshly flashed phone, there is no cached location
18:40 <popey> I said "don't allow"
18:40 <popey> It now says "Turn off airplane mode or use wifi to access data - Settings | OK"
18:40 <popey> (I have airplane mode on)
18:41 <ahayzen> i guess ...it still seems like a 1/100 usecase lol
18:41 <popey> hmm, not fair, this has some retained data
18:41 <popey> it knows locations
18:41 <popey> but they're blank
18:41 <ahayzen> can we not just dump them to the list of stored locations we have
18:41 <m-b-o> +1
18:41 <popey> thats what it does now
18:41 <ahayzen> but even then say we did figure out a location with no network and/or gps.... what would we show?
18:42 <ahayzen> we have no way of retrieving the weather info :P
18:42 <nik90> oh
18:42 <m-b-o> if the user does not want to go online, there will be no weather forecast anyway
18:42 <ahayzen> also ... what does theweatherchannel scope do in this case ;) IIRC it is just blank if there is no network
18:43 <m-b-o> we can try to fail gracefully...
18:43 <nik90> ahayzen: true but not the ideal way imo
18:43 <ahayzen> ....so we are back to having an empty state?
18:43 <ahayzen> or 'no network' state
18:43 <ahayzen> or 'no network or cached data' state
18:44 <nik90> if (location access granted by user but no internet) I guess show London or New York or Barcelona
18:44 <nik90> if (no internet) show error state
18:44 <nik90> seriously weather app can't function without internet..it needs to fetch data from some where
18:44 <ahayzen> yeah that first one will be partially empty though so we'll need to figure out how to display an unknown temp etc
18:45 <nik90> imagine a scenario where the user doesn't open the weather app for a week (just uses the scope instead)...and he has no internet, then we cant show the cached weather data...that would be useless
18:45 <m-b-o> why not show a page, telling what to do?
18:45 <nik90> we need to have a info state
18:45 <nik90> +
18:45 <popey> yeah
18:45 <popey> like music and docviewer have
18:45 <ahayzen> nik90, without something polling say once a day i can't see us getting data for something if we have not been run for a week or so?
18:45 <popey> "No locations setup, add one now. You will need network access for this"
18:46 <ahayzen> yup
18:46 <m-b-o> and perhaps some help about usability (swiping(taping)
18:46 <nik90> ahayzen: exactly
18:47 <nik90> ahayzen: but my point there was that showing a week old data (with no internet) does not serve any purpose..might as well show a info state msg there
18:47 <ahayzen> ....theweatherchannel scope...is that canonical or community or commercial ? .... like can we share/store weather data with them somehow ?
18:47 <ahayzen> then have something like what calendar has for the events where there is a service that syncs in the background for us?
18:48 <ahayzen> then it would always be up to date?
18:48 <popey> the scope I think was made by cwayne
18:48 <m-b-o> ahayzen and what about OWM?
18:48 <ahayzen> we could have a central weather service that could collect data for a set of locations for a set of providers at a set interval ?
18:49 <nik90> ahayzen: and what if the user disabled the weather scope? (as in its not a favorite scope)
18:49 <ahayzen> well the weatherscope would talk to the service
18:49 <nik90> hmm I doubt we could convince the platform devs to implement such a service
18:49 <ahayzen> hehe that would be *a* solution though :)
18:50 <ahayzen> can't do it though like push notifications ?
18:50 <nik90> ahayzen: you need internet again to get push notifications
18:50 <m-b-o> when there's a week old data, the app would try to refresh
18:50 <m-b-o> it owuld fail with an error message
18:50 <ahayzen> yeah but like if your device hasn't has internet for a week then it makes sense to have old data lol
18:51 <ahayzen> m-b-o, thats probably simplest ;) i'm overthinking this i think
18:51 <m-b-o> currently, if the refresh fails, the last data is displyed
18:51 <nik90> yeah then why not just stick to the app refreshing the data
18:51 <popey> It's less that yoy haven't had internet, more that you haven't opened the app. We don't do this in the background.
18:51 * ahayzen wants everything to be perfect as usual :)
18:51 <nik90> ah yes
18:52 <ahayzen> but like if you had something like push notifications spin us up when a new set of forecasts appear and you have network then we could update our cache in the background...then when you open the app with no network it would be fine ... unsure if that is possible though
18:53 <nik90> the only part I am unsure of is whether push notifications can touch app cache
18:53 <m-b-o> ahayzen I think thats an overload :) fetching weather data is quite fast
18:53 <ahayzen> yeah idk
18:54 <m-b-o> and when I start the app, I updated data in seconds
18:54 <m-b-o> background joibs are eating battery
18:54 <ahayzen> yeah but we still have this situation where no network .. start up...data is old
18:55 <ahayzen> tricky maybe for now we just show the error and be done with it
18:55 <nik90> true. let keep this simple for the first reboot release
18:55 <nik90> yeah for now if start up data is older than a day show the error msg
18:55 <ahayzen> something to discuss at UOS
18:55 <m-b-o> yes, let's keep it simple for the start
18:55 <nik90> when is that?
18:55 <ahayzen> idk lol
18:55 <nik90> k
18:56 <popey> good question
18:56 <popey> 5-7 may
18:58 <popey> Ok. Anything else?
18:59 <ahayzen> not from me i don't think :) i'll try and get some form of autopilot mock/helpers setup over the next week and then poke CI to turn on jenkins when ready
18:59 <ahayzen> ...and finish that expanding delegate :)
18:59 <popey> Awesome.
18:59 <m-b-o> nothing left on my side
19:00 <nik90> I have a settings page branch that is almost complete. I will propose it this weekend
19:00 <popey> great!
19:00 <ahayzen> \o/
19:00 <popey> Oh, one other thing.
19:00 <popey> Should we push a weather app reboot to the store for wider testing?
19:00 <popey> (and did we have this conversation already)
19:00 <ahayzen> i think 'soon'
19:00 <nik90> + (soon)
19:01 <ahayzen> once we've got the empty/error states etc it'll be in a better state
19:01 <m-b-o> when we have the finished the tasks  discussed today?
19:01 <nik90> popey: I had some issues with a fresh setup where weather wouldn't accept locations properly ... I need to double check that + empty/error states would be nice
19:01 <ahayzen> pretty much ... ooo do we need a WI for location detection?
19:01 <popey> Ok.
19:01 <nik90> WI?
19:01 <popey> Work Item
19:01 <ahayzen> work item
19:02 <nik90> ah
19:02 <m-b-o> yes
19:02 * ahayzen adds one
19:02 <ahayzen> done :)
19:03 <popey> \o/
19:03 <popey> All done?
19:03 <ahayzen> all from me :)
19:03 <m-b-o> yeah :)
19:03 <nik90> yeah :)
19:03 <popey> \o/
19:03 <popey> thanks guys!
19:03 <popey> #endmeeting