/srv/irclogs.ubuntu.com/2006/07/31/#launchpad-meeting.txt

=== ddaa [n=ddaa@nor75-18-82-241-238-155.fbx.proxad.net] has joined #launchpad-meeting
=== SteveA [n=steve@195.182.78.95] has joined #launchpad-meeting
=== BjornT [n=bjorn@clt-84-32-240-183.dtiltas.lt] has joined #launchpad-meeting
=== jamesh [n=james@81.16.227.227] has joined #launchpad-meeting
SteveAhi10:33
SteveAwelcome to vilnius, jamesh 10:33
SteveAhow was your vacation BjornT ?10:34
BjornTit was fine, thanks, very relaxing10:34
jameshhi10:34
SteveAI was thinking that you guys could work together for a few days, looking at how forms and maybe widgets work10:35
SteveAwe've got a bunch of problems with the forms in launchpad10:36
SteveAlike, they're tricky to use10:36
SteveAwe have three varieties of forms that work differently10:36
ddaalike tab-browsing them send you mad10:36
SteveAand indeed, tab browsing10:36
SteveAhi ddaa.  did you get back okay on the train?10:36
ddaaabsolutely, it was only a very mild hangover compared to what I usually get at the end of sprints/conferences :)10:37
BjornTthat sounds good. it'd be nice start using zope.formlib for our forms.10:37
SteveAthere was also a discussion I had with a bunch of zope3 people (jim, faassen, philikon) at europython10:38
SteveAabout improving formlib10:38
BjornTi'll send a mail to gary today to see where he's at with his widget work, it'd be nice starting to use them as well, since it's hard to improve the current widgets10:38
SteveAthat we should write notes on and take into account10:38
SteveAok10:40
SteveAthe three of us should meet up, and work out what specific things to do this week10:40
BjornTok. gary mention he would do some changes to formlib as well, but maybe jim was aware of the changes?10:40
SteveAfirst by sketching out a bunch of ideas of what we could do, and things that need improving10:40
SteveAthen deciding on which ones to tackle10:41
SteveAthe EP discussion was only a little about formlib10:41
SteveAit was more about improving how we do view classes and link them with templates10:41
SteveAbut included discussion of how to link this with use of formlib10:41
BjornTok10:42
SteveAhow about we meet for lunch in a while10:43
SteveAand then go to my place to sketch things out around a whiteboard?10:43
SteveAwe should also look through the form-related bugs we have outstanding on launchpad10:43
SteveAperhaps tag them with a keyword10:44
BjornTsounds good, i'm already starting to get hungry, so anytime (an hour from now) is fine by me10:44
jameshokay10:44
=== SteveA checks a weather report
SteveApossible showers over the next hour10:45
SteveAthen fine for the rest of the day10:46
SteveAjames is in the e-guesthouse on evenkos g.10:46
SteveABjornT: you'll be driving, so how about you pick up james from there at 1pm or so10:48
SteveAand then park near my place, and we'll walk together into old town?10:48
BjornTSteveA: sure10:49
jameshSo I'll wait downstairs at 1pm then10:50
SteveAok.  I will now go put some laundry on, so I'll have clothes to wear tomorrow.10:50
BjornTcool10:52
=== mpt_ [n=mpt@203.118.156.188] has joined #launchpad-meeting
jameshhi mpt10:59
mpt_hi jamesh 11:05
jameshso, what issues would you say are most important to address from a UI perspective?11:07
=== sivang [i=sivan@ubuntu/member/sivang] has joined #launchpad-meeting
=== mpt [n=mpt@203.118.156.188] has joined #launchpad-meeting
SteveAmpt: irssi :-)11:15
mptSo, forms11:29
mptI guess the biggest problems involving forms are11:29
mpt1. the tab-cycle bug11:30
mpt2. validation feedback is very poor - often errors don't explain the problem, suggesting that maybe it's not easy enough to say to Zope "this is the kind of data I want in this field"11:31
mpt3. validation only ever happens after you've submitted the form, not before (e.g. impossible characters aren't ignored when you type them)11:32
mpt4. No easy construction of dependent controls -- e.g. when you arrive at the Blueprint front page an obvious thing to do is to register a specificaiton, but sabdfl rejected the bug solely because there isn't an easy way to create a form with different branches for product/distribution11:35
mptI guess 2 and 3 are related.11:35
mpt5. The layout is crummy, especially for checkboxes11:37
jamesh(3) and (4) seem to call for a way to easily inject JS code into the form11:38
jameshwe've got a few forms that add JS in different ways already, so it would be nice to have a standard way to do it11:38
mptyes11:41
SteveAI saw a nice demo of doing that in London11:42
SteveAusing some ajax stuff to do dynamic form validation using the server11:42
mptI guess Ajax would be the last 10% of the benefit and the last 50% of the effort, e.g. "That ID is already taken"11:44
mptBut most of it would need JS only, e.g. missing required fields, no letters in numeric fields11:46
mptand that would need to be auto-generated because you'd have to be doing equivalent validation on the server anyway, since you can't trust the client11:46
=== jelmer [n=jelmer@a62-251-123-16.adsl.xs4all.nl] has joined #launchpad-meeting
mptso the server-side and client-side validation would need to be kept reliably in sync.11:52
SteveAwell11:58
SteveAI'm not so sure about your estimates of effort11:59
SteveAthe thing with doing full ajax validation is that there is just one set of validation code11:59
SteveAon the server11:59
SteveAand no need to translate it into javascript at all11:59
SteveAif we were programming launchpad entirely in JS, that would be a different matter11:59
mpthmmm, that would be one possibility12:02
mptthough it would result in a lot of extra network traffic12:02
mptand would work in fewer browsers12:03
SteveAperhaps not a *lot*12:05
SteveAI'd leave that estimate up to an analysis rather than a gut feeling12:05
mptWell, the amount of network traffic would be inversely proportional to how quickly you were correcting/preventing errors12:08
mptFor example, take the rule that you're not allowed to use spaces in "Name" fields12:08
mptdirectly proportional, rather12:09
SteveAalso... network traffic is not all that useful a measure for us12:09
SteveAlatency overall is12:09
mptIf you check after each character to see whether it's allowed, that's going to be really slow12:09
mptIf you check once I leave the field, that'll be much more practical, but also a bit more annoying12:09
SteveAyou check every N seconds if there was a change in data between now and the last check12:10
mptif you check when I'm about to submit the form, that's only one transmission for the whole form, but it's more annoying still12:10
SteveAalso, using ajax will likely have a good effect on the overall application's performance12:12
SteveAbecause the validation requests would be GETs, and never lock tables12:12
SteveAwhereas the actual POSTs to post form data will be POSTs and often lock tables12:13
SteveAhaving many gets and one POST (lots of attempts, corrected by ajax, followed by a successful form submission)12:13
SteveAis better for us than a few POSTs12:13
SteveAper one form post in the workflow12:13
=== sivang wonders how would that be tested, to make sure ajax validation is doing the right thing.
SteveAyou'd test the validation logic just like we test any other page of launchpad12:14
SteveAthen there would be some standard lightweight stuff to do the ajax request that either is not tested or is tested using a selenium test12:15
sivangah, I see12:15
mptFirst sodium, now selenium12:15
sivangheh12:15
=== mpt [n=mpt@203.118.156.188] has left #launchpad-meeting ["http://mpt.net.nz/"]

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