/srv/irclogs.ubuntu.com/2011/03/11/#launchpad-yellow.txt

=== Ursinha is now known as Ursinha-afk
=== gary-lunch is now known as gary_poster
gary_posterhey bac.  I am checking out the add widget.  It is looking good.  Even the help text presentation is good enough for now.  I strongly suspect you are aware of all of these, but I have a few notes as I click around.13:21
gary_poster1) until we have a better approach implemented, I suggested including the ellipsis (or "[more options]"?) at the end of "are added or changed in any way" and "bugs must match this filter" when they are not expanded.13:22
gary_poster2) We should consider including the "-" feature of tag matching in the tag help.  I say consider because I'm not sure that introducing the complexity here is worth it, but it is a thought I have.13:23
gary_poster3) the importances don't look like they are sorted yet.  They ought to be.13:24
gary_poster4) It looks to me like we need some padding within the primary div of each accordion pane.  Just a bit.  Right now it looks just a hair cramped to me on the edges.13:26
gary_poster5) If you select a team from the team dropdown, the radio button for "One of the teams you administer" should be selected IMO13:27
gary_poster6) "filter out comments" is selected initially.  I don't think it should be.13:27
gary_poster7) You mentioned the Cancel button visual oddity.  I agree, but it is a low priority.13:28
gary_posterThat's it.  You probably have all of those, but I wanted to be explicit about them.13:28
gary_posterbac benji gmb, mumble/kanban/weekly call in 213:28
gary_posteroh meh, I didn't do my action items :-(13:29
gary_posteror file my expenses :-(13:29
bacok13:30
gary_posteryoohoo gmb13:30
bacgmb no aqui13:30
bache emailed me to say he had to be out13:30
gary_posteroh!13:30
gary_posterok13:31
gary_poster1 sec and I'll be there13:31
bachttp://www.amazon.com/Waltzing-Bears-Managing-Software-Projects/dp/093263360913:53
bacanyone up for an informal team-based bookmooch?14:45
gary_posterbac, you mean trading books around?  I'd be up for that, but I've been getting a lot of my books these days as e-books, which don't loan that well unless I remove the DRM, which I have been tempted to do but have not gotten around to.14:57
gary_posterI actually can loan my current project management e-book 'cause it is not DRMed.14:57
gary_posterI have some SciFi/Fantasy real books I'd love to share/loan/give to whoever is interested14:57
bacgary_poster: i meant, mainly, books for work like the one benji referenced16:20
gary_postercool16:20
bacgary_poster: plus you can now loan kindle books.  but only one per book's lifetime16:20
bacs/one/once16:21
gary_posteryeah, which is freaking insane16:21
gary_posterand it is only for certain books AIUI16:21
gary_posterI have these on Kindle right now...I'm at various stages of reading them16:22
gary_posterCrucial Confrontations16:22
gary_posterThe Non-Designer's Design Book16:22
gary_posterFlexible Web Design: Creating Liquid and Elastic Layouts with CSS16:23
gary_posterManage It!16:23
gary_posterThe last one is the one I suspect is similar in part to Waltzing with Bears16:23
gary_posterOh, and Manage It! is an epub, not Amazon16:24
gary_posterREST in Practice16:24
gary_posterIntroducing HTML 516:25
gary_posterI'm kinda done with those two.  Maybe.16:25
benjiI have a few dead-tree books that someone might be interested in: Relase It!, Waltzing with Bears, Peopleware (I suspect everyone's already read it), Managing Humans16:25
gary_posterAnd I hope to get back to and Teach Yourself Electricty and Electronics16:25
gary_posterI'd be interested in Peopleware (I've heard about it so much I feel like I've read it) and Waltzing with Bears, but it would be silly to claim those right now16:26
gary_postergiven the rest of my list16:26
benji:)16:26
=== bac` is now known as bac
gary_posterI updated https://dev.launchpad.net/yellow with notes from today's call and also sent out an email about it since almost half our number were missing16:30
gary_posterI sent an email to Francis about the schedule slip; no word back yet.16:31
gary_posterAlso, as a reminder and so folks know, our baby is due April 22, which is getting surprisingly close when you think in terms of weeks.16:32
benjigary_poster: do you know what kind of paternity leave you'll be taking?16:37
gary_posterbenji, I expect around 1 week.  no more than 217:08
benjiI don't envy the sleepless nights17:09
gary_poster:-)17:10
bachi benji are you currently working on structural_subscription.js?   if so, it might be good for us to coordinate.  i'm still trying to work out all of the merge issues and fear what may happen if it is still a moving target.17:42
benjibac: yep, I'm working on it, but at a very slow pace at the moment (trying to debug something)17:44
bacok17:45
bacbenji: i just pushed a new rev to  bzr+ssh://bazaar.launchpad.net/~yellow/launchpad/accordionoverlay/.  this version fixes all of the merge issues i could find.  you may want to exercise it manually to ensure your stuff still works18:08
bacbenji: note i do have one known but not understood failure in my test.18:08
benjibac: thanks; I'll also attempt a merge from there a little later so we can keep in sync18:09
benjik18:09
benjigary_poster: Question on the 'add a filter when creating a subscription' bit": is that enforced in the DB?  I need to add a "don't create an initial filter" flag to addBugSubscription.18:37
gary_posterno, it is not, benji18:37
benjicool18:37
gary_posterwill that be across separate transactions?18:38
gary_posterIOW, it will conceivably lead to subscriptions without filters?18:38
gary_posterIf so, I'm concerned by it.18:38
benjigiven Murphy's Law, it will18:39
gary_posterright18:39
gary_posterso, I'd encourage considering another approach18:39
benjiunfortunately this is about the third one I've considered; if I had a way to know that a subscription was just created (the code lies if one wasn't and just returns the preexisting one) then I'd still have the race condition of someone else modifying the filter before I do18:41
benjihave we added any real requirement that subscriptions always have filters?  if not, rescending that may be the best choice18:42
gary_postercan it return an identifier of what was created?18:42
benjiI wish Leonard were around because I'd like to run this problem by him18:42
benjiright now it returns a redirect to either the subscription that was just created or the pre-existing subscription with no hint as to which really happened18:43
gary_posterok...so this is actually mixed with another problem18:44
gary_posteror, put another way, you encountering a practical ramification of a theoretical worry I've had before18:44
benjiI /guess/ I could add a response header to tell you what happened.  That's really a shame though because the right way to do that is to return a different status code in that case, but the LP code "lies" about creating the subscription to lazr.restful which duitifully reports back "hey, I created it!"18:44
benjiwhat's that theoretical worry?18:44
gary_posterthat can't be corrected?18:44
benjire. correcting the lie: it could, but the API has acted that way since 2008.  I felt that adding another API was a big step so shied away from that18:45
gary_postertheoretical worry is that the REST API reflects our model too well here.  The fact that we want our users to think of filters as subscriptions is lost in the REST API.  Another related problem is a card in the back log now: "Webservice deletion of filters on structural subscriptions needs thought"18:46
benjiindeed, we need something like the view layer18:47
gary_posterapproach 1: since 2008: can the pertinent code change happen in the devel layer only?18:47
gary_posterthe devel version I mean, sorry18:48
gary_posterthis is a reasonable change to an API18:48
gary_posterand that's what that functionality is for18:48
gary_posterThat said, back to the idea you started with...18:48
benjihmm, I don't know how to spell that (or if it's possible)18:49
gary_posterwe were trying to make every subscription have a filter in order to make things simpler for display and editing18:49
gary_posterif we simply state that our views will have to hide the situation from our users...18:50
benjiright... it might have backfired (or this could be easier in some circumstances than the other way)18:50
gary_posteryou are going to be the one who has to pay the price primarily, either way18:50
gary_posterso you ought to have the freedom to make the decision18:51
gary_posterto go down this road, you'll need to be able to handle a structural subscription without any filters as if it had an empty filter18:51
gary_posterboth for views and for edits18:52
gary_posterare those implications relatively clear, or would it be helpful for me to try and enumerate?18:53
gary_posterthe kind of thing I mean: a structural subscription with a single "anything" filter and a structural subscription without any filters should be transparently identical from the perspective of working with your view and edit interface18:53
benjigary_poster: quite clear18:54
gary_posterok18:54
benjigary_poster: what's our policy on write-on-read?18:54
benjidoing an accational w-o-r might make it really easy to deal with18:55
gary_posterw-o-r: don't do it if at all possible.  We go so far as to enforce it with the DB18:55
gary_posterThere is an escape hatch18:55
gary_posterbut it is not liked18:56
benjiok, thanks; I'll endeavor to avoid it then18:57
gary_postercool.  benji, if you decide conclusively to not require filter-per-subscription, it would be good to do it today, and then we need to clarify in bug 728818, bug 723999, and explicitly to Robert that this no longer needs to happen.18:58
_mup_Bug #728818: Production and qastaging should have a filter for every structural subscription <story-better-bug-notification> <Launchpad itself:Triaged by yellow> < https://launchpad.net/bugs/728818 >18:58
_mup_Bug #723999: BugNomination:+edit-form structural subscriptions taking 4.8 seconds during nomination editing POST <qa-ok> <story-better-bug-notification> <timeout> <Launchpad itself:Fix Released by yellow> < https://launchpad.net/bugs/723999 >18:58
benjiok, I'll try to decide one way or the other today18:59
benjigary_poster: do you think I'm unnecesarily avoiding adding an API?  If so, that might be the best route.19:01
gary_posterdecide one way or the other today: great, thank you benji.  On a related topic, I'm about to start work on a branch to add the view with the subscriptions per taget.  I'd like to know where to look at your punchlist too.19:02
gary_posterDanilo will be working for a half day before we start Monday, so you and/or I should communicate the goals and the punchlist to him as clearly as possible to him in an email before we leave today.19:02
gary_posterunnecessarily adding an API: thinking...19:03
gary_poster"It depends" :-)19:03
benjigary_poster: https://pastebin.canonical.com/44626/19:03
benji:)19:04
benjiI feel like there's a pattern here that someone should have already worked out19:04
benji...someone at the door and I'm home alone, one sec19:04
gary_posterpunchlist: tests of some sort are hard requirements too19:04
gary_postercool19:04
gary_posterSo API:19:05
gary_posterIf the API can be argued to be an improvement, and a replacement of an old API, then I think it is fine.  It would work like this:19:05
benji(back)19:05
gary_posterideally, new API would subsume old API19:06
gary_posterLP would only use new API19:06
gary_posterthe new API would be exported in webservice as devel19:06
gary_posterand the old API would not be exported19:06
gary_posterHowever, it sounds like the planned change does not really warrant a change from the perspective of LP19:07
gary_posterit's webservice-specific19:07
gary_poster...thinking about pattern for a sec...19:07
gary_posterwell, there is a pattern, right?19:08
gary_posterand that's the API change you are talking about19:08
gary_posterif you are creating a new structural subscription19:08
gary_posterthen send the right status19:09
benjithe pattern is this: I want to ensure that one object exists (the subscription) so I can add another object to it (the filter), but I really don't care about the container itself and in fact want a reference to the second object (the filter)19:09
gary_posterif it already existed, then send the right status19:09
gary_posterwell, if you had the status19:09
benjihmm, maybe I really want a "create a filter (and the subscription if it doesn't exist)" function19:09
benjithe thing is, if I had the status I wouldn't have any idea where the "parent" subscripton lives; I'd have to send a seperate request for that (or smuggle it which from a design standpoint is the same thing)19:10
benjiperhaps we should switch to voice channels19:11
gary_posterthen you could say "make the structural subscription".  Reply says "yeah I made it" or "it was already there".  If "I made it" then use the first filter.  If "it was already there" then make a filter.  BTW, this must be for the adding story, not the editing story, right?19:11
gary_posterok19:11
benjiI'll prepare to discuss this further.19:11
gary_posterthough I have screaming children in the vicinity19:11
gary_poster:-) ok19:11
gary_posterlet's Skype19:11
benjik19:13
benjigary_poster: here's my draft for Danilo: https://pastebin.canonical.com/44632/20:25
gary_posterack with you in a sec20:26
gary_posterbenji, he will want to know what branch to get, to start with20:30
benjiah, good call20:30
gary_posterIf it were I, I also get confused on how to find/build the JS (assuming it is in a separate file).  I'd like to know where to find it in the tree, and if I have to do anything build-wise for the changes to be seen20:32
gary_postertrivial typo: Unsubscriobe20:33
gary_posterFor the unsubscribe link, I'd want to know what the heck to call--I'd have no clue20:33
gary_posterI don't know if he is as clueless as I in regards to our JS setup20:34
gary_posterIOW, does the task include writing a server side method that does what we need, and then exposing it?20:34
gary_posterOr does something already exist?20:34
gary_posterIf the first, I'd need direction on how to do it, though there's a good chance he wouldn't.20:35
gary_posterIf the second, tell me/him what it is :-)20:35
gary_posterbenji ^^20:35
benjik, working on a revision20:37
baclesson of the day:  if things happen via animation in JS you've got to wait in the test or they won't appear as modified.20:41
bacduh20:41
benjiand I assume makes for slow tests too20:45
gary_poster:-)20:49
gary_posterbac, sorry :-P but I have a branch for you to look at.21:42
gary_posterbenji, this is the branch that adds the equivalent "edit" page to the "unsubscribe in anger" page you have been working on.  After this I'll just need to do the cargo culting.21:42
gary_posterhttps://code.launchpad.net/~gary/launchpad/add-target-subscription-page/+merge/5309521:42
gary_posterrelatively small at least21:42
bacgary_poster: i was hoping to sneak by...21:42
gary_poster:-) sorry21:42
* bac looks21:42
benjigary_poster: cool21:43
gary_posterbac, benji, is it alright to merge devel into ~yellow/launchpad/accordionoverlay/ every now and then?21:45
bacgary_poster: yes.  now is a very good time as i think everything that is implemented is working21:45
benji+121:46
gary_posterok cool, I'll do it now, and then again hopefully once this branch lands21:46
bacgary_poster:  after Ash Wednesday you should be in the habit of writing the new year.  s/2010/201121:47
gary_posterlol21:47
gary_postersorry21:47
gary_posterbac, benji, what should I do after a merge to make sure everything is OK?  start it up and go to the two respective pages and make sure they don't seem to fall over too obviously?21:48
bacgary_poster: that'll work.  you could also try registry/javascript/tests/test_structural_subscriptions.html21:49
benjiyep21:49
gary_posterok cool thanks21:49
bacremember you have to have launchpad.Edit ATM to see the link21:49
bacso mark@example.com:test for firefox project21:50
gary_posterright, thank you21:50
gary_posterhuh21:51
gary_postersomeone lost some important changes to lib/lp/bugs/model/structuralsubscription.py21:52
gary_posterwon't start21:52
bacgary_poster: what does this ProxyFactory do?21:52
bacnot sure i've encountered it before21:52
bacuh oh21:52
gary_posterbac, yeah, I want to advertise it as an alternate approach to utilities21:53
gary_posterIt wraps the function in a proxy21:53
gary_posterwhich means that everything you get out of it is proxied21:53
gary_posterso if you have a function that anyone can call21:53
gary_posterbut the results should be protected21:53
gary_posterthen this is a simple pattern that does not require the overhead of our utilities21:54
bacso it is wrapped with the normal security proxy?21:54
gary_poster(nor does it require overloading our already method-heavy model objects)21:54
gary_posterexactly21:54
bachmm, i'm confused as to what the old way would've looked like21:54
bacdid it just happen automagically?21:55
gary_posterYou would have had to put it on a proxied utility or on a model object21:55
gary_posterfunctions would not be safe21:55
gary_posterbecause their output would not be proxied21:55
bacok, so none of the old school wiring has been done for this model class?21:56
gary_posterno, it has21:56
gary_posterif I understand you21:56
gary_posterI could move this to the model21:56
gary_posterand remove ProxyFactory21:56
gary_poster(and I will if you want)21:56
gary_posterand it would work fine21:56
bacah, this is a function not a method21:57
gary_posterright21:57
bacthat's the difference i was missing21:57
gary_posterbut then I'd be adding a method to every bug target in the system21:57
bacno, this approach looks fine21:57
gary_postergotcha21:57
gary_postercool21:57
gary_posterI'm not sure what to do about the missing changes from devel in accordionoverlay21:59
gary_poster...I could try to find the diff between accordionoverlay and devel and go through them one by one and try to figure out what should really be there...22:00
gary_posterwhich sounds annoying and error-prone22:00
gary_posterbut I'm honestly not sure what else I can do22:00
bacOMG iPads on sale.  BRB22:00
gary_poster:-)22:00
bacgary_poster: do you think they were lost in my merge last night?22:00
gary_posterThey were lost in some merge somewhere.  I could revert and try merging devel back in?22:01
gary_posterbut then how do we get back to where we are now?22:01
* gary_poster laughs out loud at "Look its the lovable non-pedantic me."22:02
bacwhat if you undid what you just merged22:02
bacmerge in devel22:02
gary_posterbut that's what I did22:02
gary_posterwell22:02
gary_posterI pulled in devel22:02
bacand then merge in yellow-accordion paying special attention to that file22:02
gary_posterand I pulled in accordionoverlay22:02
bacsame diff22:02
bacoh22:02
bacis a pull like a commit.  can you undo it?22:03
gary_posternot AFAIK22:03
bacdoes it show up in bzr log?22:03
gary_posterbut I check out the branch at a revision22:03
gary_posternp22:03
gary_posterno22:03
gary_posterpull means that my branch is identical in all ways to the ~yellow branch22:03
gary_posterremind me what our importer sorter is again, pls?22:04
bacso you can undo the pull from yellow via revert or checkout22:04
gary_posterok good idea22:04
gary_posterI'll give it a whirl22:04
bacformat-imports22:04
gary_posterack thank you22:05
bacbut i'm concerned b/c our work in yellow is now bad22:05
gary_posteryeah, I'm not sure how things are starting for you guys22:05
baci haven't run it22:05
bacjust run test22:05
bacs22:05
gary_posteryou don't need to run it to do that?22:06
bacno22:06
bacjust load the html file in a browser22:06
bacit just exercises the JS22:06
bacanything that would've been pulled from the server has to be provided in LP.cache, etc22:07
gary_posterI don't really understand which html file it is, but I won't worry you with it.  I'll try to get this sorted out in the branch after I have gotten an ec2 land going with the branch reviewed (thank you, by the way)22:07
bacyes, my branch is broken too22:08
gary_posterack22:08
bacgary_poster: what file do you think was affected?22:10
gary_posterlib/lp/bugs/model/structuralsubscription.py for one, at least22:11
bacgary_poster: this is what happened to that file during the merge i did22:12
bachttp://pastebin.ubuntu.com/57903522:12
gary_posteryeah, that's in reverse22:13
gary_poster(at least)22:13
bacreverse?22:14
gary_posterIt should add get_structural_subscribers22:14
bacthe paste seems to reflect the current state of the file, broken though it is22:14
gary_posterand remove get_structural_subscribers_for_bugtasks22:14
gary_posterand so on22:15
bacugh22:15
bacgary_poster: i'm trying to revert to the pre-merge version of model/structural_subscribers.py and bugtask.py22:25
gary_posterbac, me too, but from the direction you suggested (reverting back to pre-problem-merge, merging devel, and then trying to reapply the non-problematic subsequent merges)22:26
gary_posterI think I missed something :-/22:26
baci'm unclear how those changes got into the accordion branch in the first place22:27
gary_poster*or*, bac, "Merge from yellow.  Many conflicts.  Beware." is the merge that did the wrong thing22:27
bacyes22:27
gary_poster(not merge from devel)22:27
gary_posterso I think yellow was the problem, not anything you did22:28
bacwell i guess i should've aborted when it looked funky22:28
bacbut i think there was a lot of valid funky stuff that had to be dealt with eventually22:28
gary_posterbenji, it looks possible that you merged devel into yellow in an odd way, though that might not be true either.  Does that ring any bells?22:29
bacgary_poster: my server is up and running22:30
gary_posterbac, yay22:30
bacgary_poster: why don't you stop what you're doing and undo the pull from yellow22:30
gary_posterundo the pull from yellow...I already did that by reverting?22:30
baci can push this new version and hopefully there aren't other things lurking in there22:30
bacok22:30
gary_posterbac, let me give you a test run to try first.  one sec22:31
bacok22:31
bacgary_poster: i was just proposing you can put your branch back to the pre-yellow catastrophe and then merge in the newly 'fixed' yellow22:31
bacwhich i have not yet pushed22:31
bacgary_poster: alternatively you may want to grab a current copy of yellow and look at the diff from the bad merge and see if there are other red flags22:32
gary_posterproposed test: this is bigger than you really need--it takes my machine a minute or two--but it's a pretty decent smoke test of these things22:32
gary_poster./bin/test -vvt test_structuralsubscription22:32
gary_poster(I'm afraid that the tests might be hosed too)22:32
gary_posterok22:33
bacrunning22:33
gary_posterI'm trying what you are suggesting22:33
gary_poster(it took my vm 2 minutes 34.548)22:34
bactests are running, fans are on high22:35
gary_poster:-)22:35
bachave you seen the chinese knock-off tablets have fans in them?  that is not what i want in a tablet...22:35
gary_posterheh, no22:35
bacmy vm kicks your vm's ass22:36
bac Ran 170 tests with 0 failures and 0 errors in 1 minutes 4.242 seconds.22:36
gary_posterdamn, sure does22:36
bacso, you think i should push this branch up to yellow?22:36
gary_posteris that parallels, or just a beefy computer?22:36
gary_posteryeah push away22:36
bacVMware22:36
gary_posterme too22:36
gary_posterwhat computer is it?22:37
bacoh, false alarm.  it wasn't finished22:37
* gary_poster was hoping not to feel the need to upgrade till next macbook pro revision ;-/22:37
gary_posterah yeah22:37
gary_posterTotal: 240 tests, 0 failures, 0 errors in 2 minutes 34.548 seconds.22:37
bacTotal: 236 tests, 0 failures, 0 errors in 4 minutes 42.599 seconds.22:39
gary_posterdang, bac, is there a way to tell bzr "no, I don't want you to revert, I want you to just go back to the way things were two revisions ago--just forget it all!"22:39
bacwow22:39
gary_poster(the four additional tests are the ones you just reviewed, I suspect)22:39
bacthere must be22:40
bacso, damn, your machine is twice as fast as mine?22:40
gary_poster...maybe?22:40
gary_posterit's pretty beefy, even for being 1.5 yrs old22:40
bacmine is about the same22:40
bachmm22:40
gary_posterI've got 8G ram and ssd?22:41
bacgary_poster: pushed to bzr+ssh://bazaar.launchpad.net/~yellow/launchpad/accordionoverlay/22:42
baci've got 4G, SSD and 2.53 GHz core 2 duo22:42
bacperhaps i'm starving my VM22:42
gary_posterI gave min e 2G22:43
bacugh, mine only has 51222:43
baci should up that to 1G22:43
gary_posterah-ha!22:43
gary_posteryeah, at least, maybe 1.522:43
gary_poster2 is probably overkill22:43
baci only have the four22:43
gary_postersure22:44
bacanyway, i'm going to step away from the computer now22:44
gary_postersounds good me too :-)22:44
gary_posterhave a great weekend22:44
bachave a good weekend22:44

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