Thursday, 2016-03-03

*** openstackgerrit has quit IRC01:47
*** openstackgerrit has joined #storyboard01:48
*** SotK_ has joined #storyboard02:18
*** SotK has quit IRC02:23
*** NikitaKonovalov2 has joined #storyboard03:26
*** NikitaKonovalov has quit IRC03:26
*** NikitaKonovalov2 is now known as NikitaKonovalov03:26
*** yarkot_ has joined #storyboard06:21
*** jtomasek has joined #storyboard06:33
*** yarkot_ has quit IRC06:52
*** mrmartin has joined #storyboard07:53
*** mrmartin has quit IRC08:18
*** mrmartin has joined #storyboard08:22
*** fay has joined #storyboard08:57
*** fay is now known as Guest8264008:57
*** Guest82640 is now known as faybrocklebank08:59
*** faybrocklebank has quit IRC09:02
*** fay has joined #storyboard09:02
*** fay is now known as faybrocklebank09:02
*** mrmartin has quit IRC09:31
*** openstackgerrit_ has joined #storyboard09:54
*** openstackgerrit_ has quit IRC10:02
*** mrmartin has joined #storyboard10:09
Zaramorning, storyboard!10:14
ZaraI had 5 hours' sleep! For no good reason!10:15
Zara(idk if you ever get that thing where you want to clean your teeth and go to bed but you can't summon the will to move at all, but yeah. started trying at 11pm, managed it around 4am. at one point started reading around online for people who experienced the same thing, just for added ridiculousness.)10:18
faybrocklebanknot done that one but I am familiar with the falling asleep on the sofa then waking yourself up by cleaning teeth and then not being able to get to sleep10:19
Zarahaha10:19
SotK_morning!10:20
*** SotK_ is now known as SotK10:22
ZaraI've done that one too, but this time I was actually tired enough to sleep (which was extra annoying).10:24
Zaraokay, so we talked about using title as criteria like tags search (for header search). problem is, that checks for exact matches10:47
Zaraso if you have something tagged 'cat dog' and you search 'cat', 'cat dog' won't be returned10:48
Zaraso that's a problem for titles...10:48
SotKI think titles should "just work" when sent to the api (it does `GET /v1/stories?title=cat` when you type in the header bar, and that works)10:51
SotKwhereas I *think* it checks for exact matches when you give the api a tag to filter by10:51
Zarayeah, I think it must do. I started off looking at it that way because at the meetup we talked about doing a title search similar to a tags search... trying to work out what'll be different. but tbf I'm not looking at that code yet so that's also unhelpful.10:53
*** mrmartin has quit IRC10:56
Zarahttps://review.openstack.org/#/c/278508/ is still lonely, awaiting review11:36
Zara(did you know 'adumbrate' is a word? it's a word. it means 'represent in sketchy/outline form' (learned it yest in context of 'when you perceive an object, you adumbrate the view of that object from different angles'. this is an educational channel today.)11:52
Zaranothing to do with storyboard. I remembered it because I thought the person I was talking to had said 'adam-something', and I just saw 'adam coldrick' a bunch in gerrit11:52
* Zara goes back to code11:53
* SotK did not know that word11:55
* persia will try to use adumbrate more in the future11:56
Zara:) It reminded me of 'penumbra', and googling reveals that 'umbra' is latin for 'shadow', so I'm guessing it's literally something like 'giving a thing a shadow'11:57
Zarahave fun with it! :D11:57
persia"the bringing forth from the platonic shadow" :)11:57
Zaraheh12:00
*** openstackgerrit has quit IRC12:03
*** openstackgerrit has joined #storyboard12:03
openstackgerritZara proposed openstack-infra/storyboard-webclient: Move search icon  https://review.openstack.org/27920413:05
ZaraI'm so tired I just almost tried to push to github13:06
ZaraI wondered why it was asking for my username. :)13:06
openstackgerritZara proposed openstack-infra/storyboard-webclient: Move search icon  https://review.openstack.org/27920413:11
openstackgerritZara proposed openstack-infra/storyboard-webclient: Move search icon  https://review.openstack.org/27920413:11
Zarayes, one of those was just changing the commit message to the right tense13:12
Zarabtw, https://review.openstack.org/#/c/280259/ is kinda blocking task links in their current form13:16
ZaraI should update that commit message.13:21
openstackgerritZara proposed openstack-infra/storyboard-webclient: Basic Task Links  https://review.openstack.org/27788213:22
*** mrmartin has joined #storyboard14:05
*** mrmartin has quit IRC14:25
*** mrmartin has joined #storyboard14:29
* SotK makes a worklist which automatically shows all tasks assigned to either him or Zara \o/14:32
* SotK then realises that this implementation can't express "show all unmerged tasks assigned to SotK or Zara" and starts over14:33
Zarawell that was quick xD14:33
Zarabtw, was that 'can express xor but not or', or was that 'can express or but not if there's also a task status (etc)'?14:34
SotKit was "can express or but not on a per-criterion level"14:35
SotKI could do "match any of `assignee: Zara`, `assignee: Adam`, `status: !merged`"14:36
Zaraahhh, right14:36
Zarahahaha14:36
SotKbut not "match any of `assignee: Zara`, `assignee: Adam`, where `status: !merged`"14:36
Zarayeah, I gotcha14:36
SotKand the latter is the interesting one14:36
Zaraoh well, once you've fixed that, let's just poach that for all search14:37
* Zara scuttles away14:37
SotK:D14:37
*** mrmartin has quit IRC14:38
* SotK ponders how on earth to make the UI for per-criterion AND/OR understandable14:41
persiaParentheses?14:44
Zarawhat, you mean we can't just go "assignee1 ^ !merged  v assignee2 ^ review" ;_;14:44
Zara(I was going to do 'for every' and 'for each' but I couldn't be bothered to find the keyboard shortcuts to those)14:45
* persia usually considers priority in the following order ()∧∨!14:45
persia∀?14:46
Zarayeah, that's the one I was thinking of as 'for every'14:46
Zarabut in seriousness, I think we need something more visually straightforward14:47
SotKyeah, I hate writing gerrit search terms and want something nicer14:47
ZaraI don't think we can expect people to use parentheses etc when creating criteria for automatic boards.14:47
persiaI read that as "for all" and "for each", personally, with ∃ as "for every"14:47
persiaWe could have a full DSL for automatic worklists, and will probably eventually get thetre, but for now, yes, simplicity is king.14:48
SotKat the moment it uses the same criteria dropdown that the filter search bars do (but doesn't shove them all in one text box)14:48
SotKyou pick Task/Story, you pick "matching/not matching", then type and potential filters are suggested14:49
SotKyou pick a filter and click save14:49
SotKthen have the opportunity to add another criterion14:49
persiaOne way to do it is to have each criteria be either conjuctive or disjuctive, with any disjuction applying to everything so far.14:50
*** mrmartin has joined #storyboard14:53
SotKpersia: so in that case my example would need to be expressed something like "assignee:Zara AND status:merged OR assignee:Adam AND status:merged"14:55
SotK?14:55
SotKs/merged/!merged/14:56
SotKthat could work I think, with each of those pairs being a row in the table in the UI14:59
SotK(that might not make sense, but I know what I mean :) )14:59
ZaraI'll wait and see it before trying to work out what that represents visually, then :D14:59
Zaraas long as people know what's going on and they don't need to have studied any formal logic, I'm fine with it.15:01
Zarawhat happens in that example if you have the same assignee twice because of a disjunct?15:03
Zaraassignee:Zara AND status:merged OR assignee:Adam15:03
Zara              AND status:merged15:03
persiaI was thinking "assignee: Zara (+)", "assignee: Adam(+)", "status:!merged"(/)15:03
Zaraoh nvm I was going to add stuff but it pasted15:03
persiaIn the model I attempted to describe, the conjuctive/disjuctive status applies per line, rather than infix.15:04
SotKpersia: I parsed that as "(assigned to zara and assigned to adam) or not merged"15:07
persiaYeah, my symbols leave something to be desired.15:08
persiaThe model I've described is sometimes used in games engines, and ends up being expressive without being complicated, but it can be very confusing for folk trained in boolean algebra.15:09
persiaBasicaly, any line can either add items to the result set or filter the result set, and the items are processed in order.15:09
persiaThat said, with such a system is it not possible to express things like (assignee:Adam AND status:merged) OR (assignee:Zara AND status:!merged)15:10
persia(the polarity difference is significant, rather than being a typo)15:10
* SotK suddenly understands persia's model15:11
* persia cannot take credit for it, only for suggesting it as a possibility15:11
* SotK wonders if we'll ever want to express something like the not-possible thing15:13
persiaI believe there are going to be folk who wat to be able to use full 4GL expressiveness, including identifying the handedness of joins.15:14
persiaA larger subset of folk will want full boolean algebra.15:14
persiaThe better question is: what do you need to have something basically working for the core use cases.15:15
persiaI think the case of unmerged and assigned to someone on the team is a good one, which is likely to be interesting to many team managers.15:16
persiaAlthough I'll admit to limited clear understanding of how folk use kanbans, so there's a decent chance that some real kanban user can explain what is needed better than I.15:16
* persia is happy with worklists, and has seen many trello users use kanbans like worklists (with a lane per-person, etc.)15:17
* SotK has been imagining a "kanban" with each lane an automatic worklist filtering by "unmerged and assigned to $team_member" whilst working on automatic worklists15:19
persiaDo you mean each lane has a status, and cards assigned to all members of the team appear on the kanban?15:19
persiaOr do you mean a lane for each person, with only "backlog" and "merged" following the semantics described in the prior line?15:20
ZaraSotK: I'm not clear on what it rules out, just cases where there's a contradiction (merged vs ! merged) or cases where it's something like: (assignee: Adam AND status:merged) OR (assignee: Zara AND status:review)15:20
SotKZara: I think it rules out both of those15:21
SotKI also think I wouldn't find the latter a useful worklist15:21
SotKI'd rather see one list of "(assignee: Adam AND status:merged)" and another of "(assignee: Zara AND status:review)"15:21
SotKpersia: I meant just a grouping of worklists on one screen rather than a real kanban, for example showing the two lanes I just described15:22
persiaZara: It rules out anything where there is text before a '('.  So one can do A+B or (A+B)+C or ((A+B)+C)/D, but nothing that ever has meaning before one of the '(' entries.15:22
SotK(or more usefully showing "Adam's unmerged tasks", "Zara's unmerged tasks", "Pedro's unmerged tasks" or similar, to get a quick view of how much work each engineer had outstanding)15:23
persiaSotK: The main issue with collating multiple worklists in a "board", if it isn't really a board, is the restriction on cards only appearing once in a "board".15:23
SotKpersia: True. At the moment, that restriction only actually exists when trying to add cards using the webclient though.15:24
ZaraSotK: one thing that might be worth bearing in mind is that !merged currently means (!review ^ !todo ^ !invalid), and the last one might cause trouble15:26
persiaMakes sense, although from a product management perspective, I can see much value in looking at a set of other people's worklists when constructing my own, especially if the ones I examine are from my stakeholders and the one I create drives engineering activity.15:26
Zaraidk how often people are assigned to invalid things though.15:26
Zaraugh, sorry, ignore later exlcamation marks!15:26
Zarahaha15:26
persiaIf someone is assigned to an invalid item, either they should be working to make it valid, or they should get themselves unassigned.15:26
Zaraand swap ands for ors15:26
Zaraworst logic statement ever15:26
Zarahopefully there's sense in there somewhere15:26
* persia just mentally inserted a ! before the ( to cause it to make sense15:27
* SotK thinks that is a thing for the worklist owner to bear in mind, !merged is just an example :)15:27
Zarayeah, I thought it might be relevant because we're using !merged as a shorthand for (todo ^ review)15:28
persiaIn practice, I suspect most will be positive declarations (e.g. "status:review", "status:inprogress")15:28
persiaZara: I wouldn't worry much about that: "status:invalid" tasks that pop up are likely to actually require action or will fall off because of assignment filters.15:29
* SotK was using !merged to mean (todo v inprogress v review v invalid)15:29
persia(just because a task is invalid doesn't mean that it is not usefully assignable: if only as a reminder to create the relevant valid task)15:30
ZaraSotK: fair enough, I wanted to be careful about using it to mean different things when talking about desired behaviour vs literal meaning in the codebase and then discovering there was a problem translating15:31
persia+1 on validating consensual semantic assignments15:31
Zara(I'm worried I'll think of a good example but not for a few hours. I'm hoping it'll be fine to just go 'that should be in a different worklist' each time there's a clash.)15:32
persiaI beleive in just-enough-development.  If you can represent things for your key stakeholders, then wait until you have new stakeholders to do it the more complicated way.15:34
Zaraso I think what I'm tryiiiiing to establish is:15:34
Zarafor each assignee, we want tasks that are todo or in progress or in review15:35
Zara!merged gives us those +invalid , maybe not a problem15:35
Zarado we have cases where we want todo v in progress but !review? (and similar)15:35
openstackZara: Error: "merged" is not a valid command.15:35
Zarahahaha15:35
persiaIt could be done with full boolean algebrea support, or with 3GL and 4GL interpreters, but at some point the right answer is to tell folk to use the API and filter locally using their own client-side logic.15:35
persia(this is why making sure python-storyboardclient works is useful and/or important)15:35
persiaAt least for me, I think automatic worklists are just UI candy, but not actually an interesting way to represent data.15:36
persiaThe resulting dashboards are a useful way to consume data, but that's not the same thing.15:36
persiaSo, I think the first pass should either be very simple, use the game-derived sequence trick, or boolean iff there is a handy library to implement that easily.15:37
persias/either//15:37
*** yarkot_ has joined #storyboard15:44
*** yarkot_ has quit IRC15:49
* SotK wonders whether doing boolean or making the list reorderable is the lesser of two evils :D15:51
* persia boggles at the idea of a reorderable list, but comes to the conclusion that the motivation to gamers to get their lists right is higher than the motivation of managers to get their lists right15:54
SotKyeah, I'd rather be able to drag my criteria up/down than have to redo it all15:55
persiaAnd, as importantly, you never expect to wake up in the middle of the night with a new improved order for your criteria that will give you a massive advantage16:00
betherlyhello storyboard!16:00
betherlyhow are everyones days going?16:00
SotKhi betherly16:18
SotKgoing pretty well thanks!16:18
SotKyou?16:18
betherlyi _think_ doing well now lol! ironic-ui gate been broken and stuck in gerrit hell trying to fix...i think we are there now though lol16:19
*** mrmartin has quit IRC17:35
*** mrmartin has joined #storyboard17:54
Zaraniiiiiiight storyboard17:54
Zaraglad someone's day's going well! hopefully I'll be more helpful tomorrow.17:54
*** faybrocklebank has quit IRC18:11
*** faybrocklebank has joined #storyboard18:12
*** jtomasek_ has joined #storyboard19:23
*** jtomasek_ has quit IRC19:58
*** mrmartin has quit IRC20:45
*** jtomasek_ has joined #storyboard21:50
*** yarkot_ has joined #storyboard22:07
*** jtomasek_ has quit IRC22:11
*** yarkot_ has quit IRC22:16
*** jtomasek has quit IRC22:19

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!