032311DTKMeetingTranscript

advertisement
032311 DOJO MEETING DIRECT TRANSCRIPT
The topic for #dojo-meeting is: http://bugs.dojotoolkit.org/wiki/ProjectMeeting/2011-03-23
rahu1: hi all
jared_j: Evening.
rahu1: T - 8 mins, right?
ttrenka: yes
rahu1: thanks, no agenda on wiki yet, but I'm hoping we can get to the 1.7 roadmap doc in first 90 mins.
iTorrey: Nope, first 90min is phiggins filibustering on ticket triage.
rahu1: wait, we have a way till next release, so we can breathe now
bforbes: don't let phiggins catch you saying that
rahu1: bforbes: may be able to get away with a bit, I have only one identity in Trac
bforbes: hah
rahu1: btw, here is a shorter url for Chris' document
rahu1: 1.7 plan from chrism: http://s.apache.org/17plan
jthomas_: evening
rahu1: *mutters something about gdoc urls*
chrism1: hi all
phiggins: argh. autojoin fail
rahu1: jthomas_: evening, much later for you I suppose
phiggins: crap I never looked, chrism1 i thought you'd started an agenda page
rahu1: chrism1: crafted a shorter url for your plan doc
phiggins: but your 1.7 doc + when can we fix trunk are the only issues I have
chrism1: yeah, there's a tinyurl somewhere too
rahu1: http://s.apache.org/17plan
bforbes: IE9?
chrism1: IE9+ff4
kgf: uhop: wow, nice @ #12455. I would've never guessed. I had thought it couldn't be a base issue, so I was
totally off the trail
kgf: (since the fade seemed to end before the problem occurs, and fades elsewhere worked)
chrism1: need someone familiar with AMD builds to look at #12519
1
chrism1: it's blocking optimization for the mobile demo gallery
kgf: that's also what's been killing the builds for the last 2 weeks
phiggins: #12519
dojogurl: 12519
zhangyp
dojo.js
replacement of AMD with dojo.require/dojo.declare in dojo build cause syntax error
rbackhouse "I am trying to build dojo.js layer which includes dojo.json. Here is the layer for
uhop: kgf: I thought it'll be more complex, something like (IE < 9 || isQuirks), yet jared_j was right --- isIE < 9
helped in all cases
kgf: that's what phiggins wants to nag about
rawld: looking
phiggins: GOD DOJOGURL YOU ARE DUMB
kgf: rofl
kgf: again
phiggins: it's really my python skills
phiggins: i need to fix her
kgf: basically, either wrap that module in an immediate function for now, or AMD needs to work
phiggins: so yes
phiggins: kriszyp, rawld trunk is broken
phiggins: my understanding of it is that kriszyp left it broken because the new loader would fix it?
phiggins: perhaps someone can clarify for me
kriszyp: I did it?
phiggins: dojo.json
kriszyp: oh, that broke things?
kriszyp: I'm sorry
kriszyp: I'll fix that
phiggins: yes we discussed this last week iirc
uhop: kgf: we have a bunch of IE > THIS IE < THAT in html.js in the base --- I guess we should revise all of
them
kgf: uhop: I entered a bug about a couple tests related to html.js failing iirc
kriszyp: do I just need to put a module id on it?
phiggins: i don't know
kgf: I think the returns are causing problems?
jared_j: Are we going to discusss 1.6.1/IE9 at all tonight?
phiggins: *makes an agenda*
2
kriszyp: oh, it has a module id...
jared_j: Or are we focusing 1.7?
kgf: darn wildbill aint here?
phiggins: jared_j: my vote is focus on trunk stability / 1.7, and backport critical stuff to 1.6.1
kgf: he'd probably be one to discuss 1.6.1
kgf: all I know is we're clearly under way fixing IE9 things
phiggins: 1.5.x will die off, unless we hit tons of pressume
ttrenka: daylight savings happened in the US but not Japan, kgf
bforbes: seeing as how 1.7 isn't until summer and we have IE9 bugs in 1.6, I'd say we had better roll a 1.6.1
ttrenka: be patient
kgf: ahhh
kgf: lol
kgf: bforbes: I'm pretty sure we fully intend to
jared_j: I updated a bug today that's actually a bug in dojo/_base/html.js and IE ... IE9 does opacity right now,
but we still use the filter branch.
kgf: but there are still open IE9 issues at least
jared_j: Which is why it's at the top of my mind
kgf: jared_j: is that the one uhop just fixed?
bforbes: kgf: k, just getting my 2 cents out there
jared_j: #?
kgf: http://bugs.dojotoolkit.org/ticket/12455#comment:4
kgf: bforbes: np
jared_j: Haha, yep!
kgf: I'm all for an IE9/FF4-fixing 1.6.1 too
chrism1: roll a quick 1.6.1
jared_j: I think we should fix that in 1.6.1 too
jared_j: That's going to snarl people
uhop: guys, whoever sees something strange with IE9 and FF$ --- file bugs like mad
kgf: ah yeah that totally needs to be in 1.6.1
chrism1: have been
kgf: uhop: can you put that in 1.6branch too?
kgf: (it's marked 1.6.1 anyway)
3
chrism1: i've been tagging with ff4 and ie9 keywords
uhop: I don't expect much problems with FF4, yet IE9 proved to be a lot of grief
kgf: yeah, I tag with ie9 in all mine whenever I remember (which is at least almost always)
uhop: kgf: will do
kgf: so far we had the ellipsis thing with ff4, which peller even got into 1.5.1rc
kgf: not aware what else
jared_j: There's no way to fix that in FF4, right?
bforbes: there's a parser bug we should talk about too
bforbes: that affects every browser
jared_j: The nasty perf parser bug?
kgf: there's not really anything to fix, since you can use text-overflow in ff4 ne?
bforbes: http://bugs.dojotoolkit.org/ticket/12450
bforbes: yup
kgf: but yeah dojox.html.ellipsis just has a huge try/catch around it. kinda bugs me but it's single-execution
kgf: uhop: this is the one I was thinking of before btw: http://bugs.dojotoolkit.org/ticket/12342
kgf: seems there's a few others e.g. 12478, 12493, 12507
dmachi: anyone else have any thoughts on the perf ticket? Its clearly a major performance regression, my
question is how hard it will be to revert to query and solve the issue it was solving a different way
kriszyp: what is broken about trunk?
kriszyp: is the build failing?
uhop: kgf: I reassigned them to me from anonymous and sjmiles
dmachi: kriszyp: yes, the build is failing, the checkout is fine.
rawld: kriszyp: dojo/_base/json won't quite work the way it's written...we can talk about offline, no big deal
kriszyp: what is the error?
kriszyp: I am not getting any errors when I build...
chrism1: kriszyp see 12519
dmachi: I haven't seen / looked for the error myself, i thought it was a known issue, i was just giving the state.
kgf: rawld: it's dojo/json not dojo/_base/json isn't it?
kgf: (not that it isn't confusing that there's two and that base depends on non-base
)
uhop: base depends on non-base? where???
phiggins: dojo.json
phiggins: we've gone over this
uhop: 8-0
rawld: hmmm, thought that dojo/_base/json depended on dojo/json which normally wouldn't work because it
4
depends on dojo, but that's not the case...so I guess i don't see the prob either
rawld: after all
rawld: kfg: _base...my favorite topic
kgf: I thought the problem was the returns in dojo/json
kgf: there are returns directly under the top-level function
kgf: presumably that explodes when it gets unwrapped?
kgf: note that I am generally a newbie to how bd works
kgf: or should I say there are returns before the end of the function
uhop: hmm --- why? why not augment base out of dojo.json? why the direct dependency?
rawld: yeah, looking at dojo/json, after the build transform the resulting module "returns JSON" (or the
object)...but that won't work with the 1.6- sync loader
rawld: kgf: you got it
kriszyp: so what do you want me to do rawld?
rawld: (right)
kriszyp: put it in a nested closure for the time being?
kriszyp: set the module value to dojo.json?
kriszyp: I guess that is what I should do for now...
rawld: looking
uhop: conclusion: nobody knows why the brilliant design decision was made
rawld: the easy answer is push the module value in dojo.json, but then you need dojo (which dojo/json) doesn't
have
rawld: so...
kriszyp: and yeah, add dojo/lib/kernel temporarily as well...
kriszyp: this is temp, right? are build's going to be able to handle this in 1.7, right?
kriszyp: s/are/our
rawld: yes, they will handle it in 1.7
rawld: the real issue is 1.6- create things and stuff into dojo; real AMD doesn't do this
rawld: we solve it in 1.6 with a bootstrap that includes everything in _base
rawld: you could move dojo/json to that kernel boot, and that would immediately solve the prob
kgf: uhop: bigger fish to fry first
rawld: kris: this will be simple to fix once I look at how you're using dojo/json...can I just fix it tonight
kriszyp: you fixing it > me fixing it
kgf: that's fine, it's been borked like that for a week plus
rawld: kris: how do you feel about putting dojo/json in base?
kriszyp: "in base" is nebuluos. It is in base as far as being include in the base buidl. It is not in base as far as
being in dojo/_base directory. Putting it in the latter discourages direct module referencing, which is one of the
points of the module
5
kgf: but there is a _base/json as well?
kriszyp: I get discouraged when I type dojo/_base/some-module anyway
rawld: right, I don't care about where it is...
kriszyp: kgf, yeah, that's the back-compat one
kgf: oops, I'm an idiot
rawld: just need dojo/json to depend on dojo/lib/kernel, push result into dojo; dojo/_base/json depends on
dojo/json, gets dojo/json result for dojo.json
rawld: make sense?
kriszyp: dojo/_base/json provides fromJson (an eval) and toJson (with our proprietary __json__ and json
function support). dojo/json is the standards based one with stringify and parse
kriszyp: rawld, that's fine
uhop: so we don't put anything in the _base now?
kriszyp: uhop, you mean new things?
kriszyp: I think it is fine to put things in _base
uhop: any changed things
uhop: so we just put any module we like at hoc?
kriszyp: you mean changes that break compat? yeah, I was obviously trying not to break base compatibilty
uhop: I wanted to break _base/html.js --- should shards go to _base? top modules in dojo? in dojo/html/? or
anything else?
kriszyp: if something can be used with out base, it shouldn't be in _base though, right?
uhop: hmmm
kriszyp: uhop, yes, please break up _base/html.js, we desparately need that!
rawld: if we make dependencies completely specified, base becomes meaningless
kriszyp: rawld, right that possibilty is where I am going
uhop: so basically, if module has no external dependencies --- it is a top module?
rawld: it is exactly where i'm going
kriszyp: but base is always going to be the "dojo" module id in 1.x at least
rawld: uhop: i don't think so
uhop: I know
kriszyp: uhop, hmm, seems like a factor
uhop: I just want to figure out our user story for 1.x
uhop: before it was simple
kriszyp: my thinking was that top level modules are things we want people to be able to directly reference as
deps
6
uhop: now it is more complicated
rawld: our user story is that released dojo.js includes whatever we decide; that's base
rawld: and that has nothing to do with how the modules exist in the file tree
kriszyp: and if a module is not in base, or it can be used without base, those are the situations where people
would want to ref directly
uhop: rawld: you use dojo.xxx(), it is broken, where should I advise you to look for its source code?
chrism1: have to look at the dojo-base map
uhop: before it was --- look in dojo/_base
rawld: we'll, ideally, the docs should point to the code
uhop: ugly, yet it reduces the search
uhop: what docs?
kriszyp: obviously part of the intent of AMD modules is to move away from dojo.xxx() because it is so hard to
trace back where it comes from
uhop: dojo.xxx? dojo.json.xxx? xxx?
uhop: I am not talking about amd modules
kriszyp: define(["dojo/json",function(json){ json.xxx() -> broken
module/breakage orginates from
-> no question where the source
uhop: I am talking about Dojo 1.x
kriszyp: right, I know, I am how we are moving towards better tracing of where things come from
kriszyp: and that is/will be avaialble in 1.x, not just 2.0
uhop: I don't mind have code all over the directory tree, yet to be sane we should have some kind of sane
algorithm for mapping functionality to sources
phiggins: 1:1 is fairly sane
rawld: uhop: it should be a simple thing to generate a ref module with each reference API doc chunk pulled from
the source
kriszyp: how do we do it now? chrism1 mentioned dojo-base map, I didn't know about that
kgf: uhop: funny, I've already been sorta lamenting the breakup of stuff in _Widget because I'm not sure where
to find stuff anymore
but I realize the modularity is supposed to benefit in the long run
uhop: rawld: of course it is that simple! yet somehow we didn't do it in the last 7 years
kriszyp: or are you just pointing out that at least you only need to look in _base for dojo.xxx()?
chrism1: the fictitious dojo-base map i should have said
kgf: I think that's what he's getting at, yes. things are going to become more scattered if you're interested in
finding out How Stuff Works
kgf: not that it shouldn't still be traceable.
7
schwartz: can I sneak in here for a new grid request?
kgf: a fries plugin?
uhop: I am getting at one thing: I don't see what it buys to us as of this moment, but I see a complication for
users
schwartz: my team recently sent out notice of a new new grid demo/code; we need to finalize our plans to
deliver something for 1.7
schwartz: REALLY want to encourage folks to review/provide feedback; we'll have to lock things down soon for
1.7
kgf: uhop: I'll agree with that, but I'm willing to hear arguments on what it buys us.
uhop: kgf: I am all ears to hear *arguments* and get convinced
kriszyp: uhop it buys us define(["dojo/json",function(json){ json.stringify(myObject);, which will work with and
without dojo _base. in 1.7.
rawld: uhop: are you advocating as we refactor stuff in dojo/_base, the pieces remain in dojo/_base?
uhop: rawld: for 1.x --- yes
kriszyp: missed a ] in there...
uhop: kriszyp: what the point of using it without Dojo base? I don't see much value at least in Dojo 1.x world
kriszyp: because it is lighter
kriszyp: dojox.mobile is already doing non-standard-base builds, isn't it?
uhop: lighter?
uhop: let's use jq because it is lighter too?
rawld: uhop: OK, from my pov, that's (keep base in base) fine...at least we get to refactor some of these ugly
modules
rawld: i like kris's direction, but it's not worth a battle in 1.x (to me)
uhop: IMHO universal modules should belong to a repository way outside of Dojo Core, some universal
repository maybe, which you and Tom are building
rawld: hmmm, isn't dojo/_base/html sorta "universal"
uhop: I am not dead set on using _base for everything, I just don't see much upside in Dojo 1.x world, it feels
like the decision was made on the whim
kriszyp: uhop, we could do that, and have a standards based json module outside of dojo, but there has been
some demand for this, hasn't there?
rawld: kris: are you good on dojo/json...can i turn it back over...
kriszyp: rawld: are you going to fix the build?
kriszyp: whatever needs to be done to dojo/json?
rawld: OK, I'll do that
rawld: tonight....
kriszyp: cool, thanks
8
rawld:
uhop: to my best knowledge so far we had 0 (zero) demand for universal modules outside of Dojo --- all
enthusiasts of that are present in this channel
kgf: speaking of that repository...is that really on the 1.7 agenda?
kriszyp: I meant the json pass through to native
chrism1: shall we go to roadmap now?
phiggins: really, it does feel like something that should happen in a branch and be a proposal
kriszyp: we had a ticket for it, and I think multiple people had asked about it
phiggins: you made the comment (kriszyp) initially "it's easy to back out if it breaks"
rawld: uhop: does "universal module" mean a module that can operate alone?
uhop: kriszyp: I am not saying that dojo/json.js is useless, if this is your implication
particular placement, and it is integration technique
I just question its
kriszyp: ok
phiggins: right, if we ship something we're stuck with it
uhop: I rather have no exceptions, than "except dojo.json that lives outside"...
rawld: fwiw...i didn't move anything out of base that was there (although that hurt me)
phiggins: right, _base is wrong
phiggins: but it's a fact
phiggins: a reality, whatever
rawld: agree...and marketing is as important as our genius engineering...probably more so
uhop: phiggins: +1, I don't like _base either --- it was a bad decision in 0.9
kriszyp: phiggins, which is why I am trying to get a lot of this more controversial stuff in front of people right at
the front of the dev cycle, so we have plenty of time to consider if we really want to do it this way.
kgf: point
phiggins: right meanwhile no one noticed, and all the /nightly/ links were broken for a week
phiggins: or two
phiggins: I dunno howlong
uhop: kriszyp: and I appreciate that
phiggins: i think 1
kgf: phiggins: weren't you the one who said we brought it up last week? lol
phiggins: and I guess branching is hard
phiggins: or svn makes it a pita
9
kriszyp: yeah, I hate not using git for this stuff
rawld: agree!!
uhop: apparently "no one" doesn't include me --- I wrote email, made a post, and even caused a ticket for that,
yet nobody reacted
phiggins: kriszyp: so on that though, is there a way we can push the actual package-ness of npm / cpm
whatever
kriszyp: you mean get it more ready?
phiggins: and this be something you can pull in on top of a "stock" 1.x (.6+) dojo
phiggins: i mean, isn't this the ideal candidate for "real packages"
phiggins: cpm dojo-standards
kriszyp: yes, although my expectation with 1.6 is that you would use cpm with a different loader
phiggins: and you get dojo/json.js etc
phiggins: plugd is another good candidate for that ...
kgf: yeah I wouldn't expect you to use cpm with 1.6 since it doesn't support true AMD
phiggins: okay fair enough
kgf: well, I guess unless you had something translate from true AMD to what dojo can work with.
phiggins: don't we have like 7 versions of something that wraps/unwraps?
rawld: kriszyp: here's how I solve a similar issue to dojo/json: https://github.com/altoviso/dojo-v1.7bootstrap/blob/master/dojo/has.js
rawld: kfg: 1.6 doesn't support AMD? that's news to me.
kgf: rawld: well, the builder doesn't support truly anonymous AMD modules right?
rawld: right... but there are other options in the wild (requirejs/bdbuild)
kgf: which is what kris was saying. "you would use cpm with a different loader"
kgf: oh, you mean for the build though
kriszyp: uhop, just to be clear, the complications for the users you are referring to is that there are a larger pool
of possible modules to find dojo.xxx() in, right?
rawld: kgf: right...understand what you are saying (and finally spelled KGF)
kgf: lol
kgf: no worries, I'm giving you far more trouble than you're giving me by transposing a couple characters
uhop: kriszyp: large pool and more places to search for it
kriszyp: larger pool != more places to search for it ?
rawld: uhop: this is really a problem with our docs, there's the code stack should be hyperlinked right in the API
docs
10
uhop: kriszyp: yes, they both orthogonal
kriszyp: I don't understand uhop
uhop: rawld: no, I don't think it is a problem with our docs. imagine we randomly relocated and renamed our
files, and updated docs --- I think it will flood us we questions "where is..."
rahu1: *sees top of the hour, seconds chrism1's call for the 1.7 roadmap discussion*
uhop: kriszyp: imagine that you moved from a house to an 100-unit apartment
rawld: not if there is a hyperlink right to a source code browser...?
uhop: kriszyp: now imagine that people can look for you on 5 different streets
kgf: rawld: I will fully contend that "UTSL" is not a good answer to shove at newbies
uhop: kriszyp: larger pool --- more files, more places to search --- more directories
kgf: certainly I don't disagree that our source is generally pretty darned illustrative though
rawld: kgf: totally agree, isn't uhop worried that those who want to use the source won't be able to find it?
uhop: rawld: bitter truth --- nobody reads docs, nobody uses source code browsers --- the more logical and selfdiscovering thing, the less things to remember, the better
kgf: rawld: yeah I suppose so
kgf: uhop: I wouldn't say no one uses docs
kgf: I'd say some don't try nearly hard enough, I'd also say it's ridiculously difficult to ensure the docs cover
everything
kgf: but TONS of times I can answer people's questions with docs
ttrenka: I would say that if you asked me or anyone else to try to live-link API docs with source, you're asking for
trouble.
kgf: anyway, I agree with rahu1/chrism. we're gettin' sidetracked
ttrenka: I'd love to pull in some source for sure.
rawld: uhop:hmmm, so you're worried about folks who'd rather look at source (and not being able to grep)
ttrenka: unless we can do that for anyone using the doc tools, I'm not interested, and no offense to that
rawld: ttrenka: this is a "whole nother can oworms"...but we should think about it...someday
uhop: ttrenka: grep is not a panacea, grep for "i", for example
uhop: oops
uhop: wrong guy
rawld: got it
ttrenka: yeah, I know
ttrenka: just don't expect it tomorrow
rawld: agree
uhop: my point is simple: we should have as simple and as logical user story as possible, otherwise we are
11
doing a disservice to ourselves and our users
kriszyp: so we do have a consistent pattern that dojo.x.*() functions are found in dojo/x.js, don't we? are there
exceptions to that in _base?
uhop: it actually pains me that dijit and dojox has different directory structure, and dojo differs from both
uhop: kriszyp: yes, and this is a pain point too enshrined in 0.9
kriszyp: knowing that dojo.x.* maps to dojo/x.js (dojo.json -> dojo/json.js) is far more explicity than looking
through all the files in dojo/_base, isn't it?
uhop: kriszyp: yes
kriszyp: I didn't mean to use the word "explicity", but I kind of like that now...
uhop: that's how Closure is structured
chrism1: Roadmap Doc - http://s.apache.org/17plan ... I'd like to take this very good discussion up about 20,000
ft for the remainder of the meeting...
kriszyp: and of course using "dojo/json" (as a dep/ref) is even more explicity
rawld: kriszyp: I solve the prob like this: https://github.com/altoviso/dojo-v1.7-bootstrap/blob/master/dojo/has.js
kriszyp: sorry, chrism1, looking at roadmap sounds great
rawld: i'll stop now too
chrism1: np, the last hr discussion is all relevant to about 2 of the core areas that need focus
uhop: kriszyp: right now our story: "base? dojo.xxx? look in dojo/_base/ --- there are several files, yet the
separation is kinda logical"; Closure-like story: "there is no base. dojo.xxx? see dojo/xxx.js or something like
that", what you proposes is to ... merge these two stories with "use ALGO1 (long story), if it fails use ALGO2
(another long story)" --- to me it is an increase in complexity...
uhop: ...without much benefits
chrism1: we've tried to lay out a high level release roadmap that's more agressive than past in terms of quick
turnaround
chrism1: basically one major release per quarter
chrism1: which is a much shorter dev cycle
rahu1: good stuff
rahu1: release early, release often
rawld: i think this is awesome
chrism1: rawld, kriszyp, ttrenka, itorrey: does the core library section look doable for 1.7, or should we move
some of these goals to 1.8, based on what we know today?
chrism1: eg. package manager
chrism1: is that really a 1.7 goal
chrism1: if packages and plugins spec is going to come in, which modules will be the exemplars, and how far
does it get taken
kriszyp: yes, although a pacakge manager is independent of the dojo release (which is part of the goal of it)
iTorrey: I was meaning to setup a talk with Kris about the Package manager. I'm open to it being 1.7 but feels
more like a 1.8 to me if 1.7 will involve setting things up to work under a PM system
12
rawld: i am on board with what's denoted as my responsibilities (assuming the work i'm doing now is acceptable
to the group)
kriszyp: the only interdependence with dojo is that it would be nice to be able to use dojo's loader with the
packages, and 1.7's loader should fit the bill fine
iTorrey: the package manager UI is not tied to a dojo release true but coordianting it around a release would be
good marketing I think.
ttrenka: chrism1: I will defer to iTorrey on this at the moment.
kriszyp: other than that, it is independent
kriszyp: and is somewhat functional right now, just really ugly and rough
chrism1: has() branching is kind of tied into the previous discussion, right? seems that kriszyps work to refactor
events and base is paving the way
kriszyp: it'll just needs some lovin' which could happen any time we want to work on it
iTorrey: Yeah we should talk about that at some point this week Kris about getting a plan together for making it
less ugly and have an idea of where it lives and when
rawld: i've got has rolled into the new boot
kriszyp: yes, has() is a big part of what i was working with these module reworks
chrism1: so how far do we take has() branching in 1.7? dojo.core only?
bforbes: kriszyp and I made some great headway on the events layer this week
kriszyp: yeah, there is some decisions to be made about has() usage. I kind of coded to put those decisions off
as long as I could
kriszyp: and I also have been working on adding has() to dojo/_base/query.js too
chrism1: bforbes: yeah, and evan/emmanual have extended that work for touch events
kriszyp: query.js and html.js are our biggest modules in _base (so biggest wins), i remember correctly
chrism1: looking nice
rawld: awesome; using has() is somewhat independent from defining has()
chrism1: splitting those two are big +1
kriszyp: and I don't want to have anything to do with html.js, which is why it would be so awesome if uhop or
someone modularized and has()-ified it
rawld: are we going to continue to maintain multiple query impls
rawld: ?
chrism1: u mean sizzle vs. acme?
chrism1: is anyone maintaining sizzle?
kriszyp: heh
rawld: right
chrism1: it can prob just stay there through 1.x
13
kriszyp: so one thing to mention as I was has-ifying query.js, browser's native QSA don't pass all of our unit
tests
uhop: I am not sure if any of them actively maintained
kriszyp: FF passes probably 90%, WebKit about 85%, IE about 60%, I think
rawld: uhop: i guess that's really my point
kriszyp: so I think users have to opt-in to using a native-only branch/build of code
chrism1: dojox.mobile replaces altogether/juses qsa
chrism1: but option to pull full dojo.query in for desktop compat
kriszyp: which also raises the question of if and how we want to have configuration information exposed to
branching/building. Do we want to do if(has("config-use-native-qsa") && has("dom-query-selector")){ ... nativeonly branch ...} ?
rawld: i don't understand why we would support something not compat with qsa
kriszyp: rawld, qsa's are not compatible with each other when you get into the complex queries, fwiw
chrism1: there's layers of compat
kriszyp: rawld, but I agree with your point
rawld: OK, but then to also add our own flavor....just saying...
uhop: QSA on Samsung TV (FF2-based) is completely borked, dojo.query() defers to it => completely unusable
jared_j: We don't support FF2, do we?
rawld: uhop: right, but dojo.query should work like a good qsa impl...that's all i'm saying
bforbes: is there a *good* qsa implementation?
kriszyp: can we make dojo.query act like ff/webkit qsa without breakign back-compat? I was assuming native
compat had to be opt-in
kriszyp: in 1.x
rawld: well...let's pick one rather than adding a dojo qsa (would that be very M$)
rawld: kriszyp: +1
uhop: jared_j: so what? it is a "new" browser (mumbling: based on FF2)
phiggins: even bforbes gave up on html.js
bforbes: uhop: I wonder what other libs would break on it
kriszyp: or go back down the controversial road of dojo/json, we could ahve a dojo/query that follows native qsa
snover: nwmatcher is the most “correct” JS implementation afaik
phiggins: in uber.js
14
bforbes: html.js is hard!
phiggins: #whining
bforbes: ha
bforbes: we do a lot of normalization
chrism1: so kriszyp , rawld, others: we should work on answering the question on how far we can take has()
branching in core between now and end of Apr...via discussion thread
kriszyp: chrism1, that's fine with me
bforbes: I can take a look at html.js in dojo again
phiggins: fwiw, I hadn't thought has() branching to be a reality until 2.0
bforbes: although, I don't want to own it
phiggins: which is why uber.js and has.js even exist
jared_j: Too late! It's yours
phiggins: *didn't want to break dojo too much*
bforbes: agreed, phiggins
phiggins: but wanted to answer these questions
phiggins: and have a playground
chrism1: next layer is Common UI stuff... bill not here
bforbes: fwiw, kriszyp and I have been doing a lot of experimenting with the events stuff in uber
kriszyp: one other thought to throw out about has(), but doing has a local, it can't survive multiple builds and stay
visible to the build process (needs to be a global for that)
chrism1: Bill/Doug are working on splitting dijit and dojox.mobile
phiggins: because kriszyp et al, WE HAVE TO DOCUMENT EVERY CORNER
phiggins: or people TALK IN ALL CAPS ABOUT US
chrism1: but that work will likely be delayed until iteration 5 timeframe due to IE9/FF4 bug fixing
kriszyp: phiggins is that an argument for not exposing has() in dojo? (just using internally)
phiggins: no not regarding exposing has, just regarding "hey if you load dojo/json you get supermagic"
kriszyp: fwiw, my code so far hasn't exposed has() at all
kgf: so if you guys are reworking event.js, html.js, etc to use has... we have to test both the new impl and still fix
the old impl for reported IE9 bugs
kriszyp: not sure what you mean by supermagic... dojo/json obviously would need docs, although they would be
pretty easy to write since we can refer to native JSON docs
kgf: (just sayin)
15
rahu1: but ofcourse, I ask for Common UI to be within first 90 mins. and we hit it at 98 past ...
rahu1: so the MVC / data binding work got a bunch of good feedback, was incorporated and is ready for trunk
chrism1: for databinding/forms work, ed & rahul have integrated all feedback into the ticket, byut need an owner
rahu1: #12314
dojogurl: rahu1: [patch][ccla] MVC support for dijit based on dojo.Stateful [new/] see:
http://bugs.dojotoolkit.org/ticket/12314
kgf: bugger, still don't have wildbill
rahu1: right, I guess now we need someone with 'svn ci' abilities to teach me the ropes of OSS dev practices
chrism1: would like to issue a vote to see what community feels about this work at this time
rahu1: bugger indeed
chrism1: and take vote to mailing list as well
rahu1: FWIW, in speaking with number of UI architects and devs, this happens to be one of the top two things
that cause people to use custom solutions rather than dijit
kgf: rather than?
jared_j: Well, he is in Japan.
kgf: not in addition to?
rahu1: so can we grant me an "owner" already, happy to do most work going forward?
rahu1: kgf: was that for me?
rahu1: jared_j: yup yup
kgf: yes
rahu1: sorry, what are you asking?
kgf: you said people use "custom solutions _rather than_ dijit" because of lack of mvc
kgf: shouldn't they be...implementing something, while still using dijit as the view?
kgf: or, at least, couldn't, if not shouldn't
rahu1: yup, rather than
rahu1: surprisingly few solutions use dijit in the big deployment of Dojo I've encountered
rahu1: just had this conversation yesterday with one of those folks
chrism1: i've seen this in customer shops as well, they build their own mvc layer
kgf: I mean, I certainly won't suggest that the mvc in the app I'm part of the team on where I work is nearly
gospel, but we basically use dijit for all the view parts.
jthomas_: I'm hugely +1 on the MVC stuff
rahu1: two main issues:
heavy and (b) no bindings
kgf: jthomas_: I think the big question is where it goes
16
jthomas_: I've seen a number of projects building their own versions of this thing on dijit
phiggins: that's the question of the decade though
rahu1: dijit where else IMO
phiggins: dojox exists because of that question
phiggins: cpm too
kgf: because dijit is "dojo widgets" and this is kind of underlying that? or at least that seems to be one side of the
fence I've heard
phiggins: yah like dojo.data
chrism1: dijit is also a fw
kgf: not sure whether underlying/sidelining is a better term
chrism1: all the _ base classes
kgf: 'fw'?
phiggins: again, with something like cpm this becomes moot
chrism1: framework
phiggins: framework
kgf: oh
rahu1: dojo widgets need to know how to bind to data
rahu1: like Flex, like Silverlight, like ...
kgf: phiggins: sure, but what about before then
kgf: or are we leaning on cpm/etc. for 1.7
kgf: and then this becomes one of those "exemplary" packages
jthomas_: I think this is a close enough edge case to live in dijit = my two pence. (2c for you lot)
phiggins: i want to encourage as much "external" contribution as I can
kgf: we kinda need bill to vote on this I reckon
kgf: (on whether it lives in dijit at least)
rahu1: jthomas_: I'll take pence these days
chrism1: yeah, can get his vote on list
phiggins: well bill is bdfl o' dijit
kgf: ya
phiggins: so a vote is moot if he blatantly refuses
chrism1: just want to make sure we do this community way
phiggins: +1
17
chrism1: if it comes out -1 so be it
bforbes: if it comes out -1, we can drop it in dojox
phiggins: dojox isn't the end of the world
rahu1: +1 (non-binding, as they would say in Apache land)
rahu1:
kgf: I could absolutely see this being one of the prime examples out of the gate for cpm though
kgf: that could be pretty awesome
phiggins: also WE ARE ENCOURAGING PACKAGES/GITHUB esque usage
phiggins: right
rahu1: well, -1 needs good justification
phiggins: under the dojo/ foundation git account, maintained by (you)
kgf: as much as dijit is a framework, to me it's all still very L&F related. MVC seems potentially out of scope /
superceding
rahu1: where else would one expect to get the binding ability for dijit?
jthomas_: phiggins: what's the procedure for creating a new dojo foundation package on github?
kgf: that's where the package repo/manager would come in, in the future
rahu1: its easier if its just there
chrism1: y, dylan told me this is still an issue the foundations looking into
kgf: for now...I know you'll hate to hear dojox, but I'm not sure what else, if we're not ready for github packages
yet
uhop: what are we voting about?
kgf: where mvc lives
chrism1: mvc in dijit, or dojox/mvc
rahu1: well, I don't see how it makes users' lives easy
rahu1: but I'll let the powers that be make the call
rahu1: can we just make some forward progress?
rahu1:
kgf: I'm sort of on the fence but leaning towards the be-conservative-about-what's-in-dijit side
kgf: definitely a topic for list
rahu1: what about the lets-keep-dijit-relevant side?
bforbes: is there a live version of this patch somewhere?
jthomas_: If we put it into dojox are we also going to leave the previous mvc efforts?
uhop: kgf: theoretically someone can do MVC on normal form elements... just saying...
18
jthomas_: dojox.wires etc
rahu1: doughays has an old snapshot
kgf: rahu1: nothing's irrelevant about dijit to me, but of course I haven't seen these custom implementations you
guys are speaking of
phiggins: *shakes fist at dojox.wires*
bforbes: it'd be nice if there was a not out of date snapshot...
phiggins: _someone_ is using that, _somewhere_
rahu1: kgf: right
phiggins: bforbes: shhh he'll say "lets put it in dijit"
phiggins: then it'd be in the nightly, if that wasn't broken
phiggins: AND ON THAT NOTE
kgf: rofl
kgf: I believe kris/rawld already discussed that
phiggins: i leave for dinner. we clearly have unresolved issues here
bforbes: hah, I just mean somewhere like doug's site
phiggins: I know I was teasing
chrism1: so the issue to vote on is: "Should MVC be a module in /dijit"
phiggins: feel free to continue, I'll read the backlog
kgf: yep
chrism1: should we take the vote to mailing list
phiggins: but I'm running.
phiggins: voting is a last resort
rahu1: phiggins: what do you suggest then?
chrism1: so continue discussion until next week via irc?
rahu1: can we have it earlier next week (if same time)
rahu1: like top of the meeting
jthomas_: phiggins: leroy says "what about github new packages?"
kgf: we need bill's call anyway, and he's not here
phiggins: right
phiggins: so next week sure
kgf: (RE voting being last resort)
phiggins: but we're all in #dojo all week all day mostly
19
rahu1: ah, one more week ... fun fun
chrism1: The remainder of the content in the roadmap doc is being demonstrated at
http://chrism.dojotoolkit.org/dojo-samples/demos/mobile-gallery/demo.html
chrism1: and we believe most can be contained in the timeframe in the roadmap
chrism1: questionable area is the unified map api...how far that will be baked
kgf: so did we basically say package stuff needs further discussion to see if it makes 1.7 or not (but probably
not)?
kgf: sorry to backpedal just want to have the story straight
chrism1: package stuff, how far to take has(), and mvc in dijit need further discssion on list
rahu1: there is already a thread on "owner"
chrism1: need thread: pros/cons of mvc in dijit vs. in dojox/mvc i think
bforbes: also a live instance of the patch
chrism1: that's in the ticket, u want a demo site?
bforbes: yes
rahu1: sure, this will mostly be a rehash of what I've said elsethreads, do you want to kick that new thread into
gear?
chrism1: some is demod in that gallery under databinding link
rahu1: this is very old code: http://doughays.dojotoolkit.org/dojomvc/
bforbes: wait, I thought rahu1 said that the link in the bug is old
bforbes: right
chrism1: oh, it's not in that version of the gallery...need to add it in
rahu1: before last DDD
rahu1: I suggest looking at above for behavior and patch on #12314 for code
rahu1: I should probably whip a new tarball over to Doug
rahu1: that'd be less gymnastics
rahu1: for others i.e.
rahu1: chrism1: that'd be great to have a mobile version in your site
chrism1: i'll get ed's demos added to the mobile gallery site
rahu1: cool
jthomas_: time out for me i'm afraid, nn folks
PM chrism1: same here, thx all
rahu1: later!
bforbes: ok, so on to the parser?
kgf: was about to say. lol
kgf: wasn't sure how much discussion was intended in here about that, was about to ask if it should be brought
up again next week since it's 8pm ET already
20
chrism1: got very quiet
bforbes: perhaps we can discuss it on the list
chrism1: there is the parser regression issue
uhop: what's wrong with parser?
bforbes: it's pretty critical
uhop: slow?
chrism1: y
bforbes: http://bugs.dojotoolkit.org/ticket/12450
uhop: remove recursion, cut down dead branches
uhop: if somebody helps me write a benchmark, I can tweak the code
dmachi: yes, i know we can make the actual walking faster, but i guess i am curious as to what it was actually
fixing and whether we can go back to the old way with some tweaks instead
uhop: dmachi: IIRC bill wanted to collect some attributes during the descent
dmachi: i created some js-perf tests for each version (linked in that ticket)
uhop: oh, cool
bforbes: wouldn't it be faster to find the widget nodes and ascend to find relevant attributes?
bforbes: find them via query, that is
uhop: "I've discussed a with Bill and he identified one lang issue that is ~3x performance improvement" --- what
is that?
uhop: bforbes: maybe, need to play with it
dmachi: I believe he already applied the patch
uhop: ok
dmachi: I'm happy to go look in and mess with it, but am mainly worried about creating the same problems this
was presumably changed to fix without knowing really what they were.
uhop: I took it from anonymous
dmachi: its clear from the ticket it was expected to be slower, so it wasn't being done for peformance reasons.
Its just a lot slower than original noted in that ticket (the size of the dom was probably not big enough to
excercise it)
dmachi: uhop: I'll take a look this weekend and see if i can do it anotherway without breaking anything and send
you my results for review.
uhop: cool
dmachi: not promising anything, but i'll look anyway
wildbill: hi all, sorry i missed the meeting, alarm didn't make any noise
kgf: http://higginsforpresident.net/~phenny/dojo-meeting.txt
21
wildbill: thanks
kgf: uhop took ownership of the perf ticket 'cause it was currently anonymous
chrism1: hi bill
kgf: I think someone was under the impression you might've already checked in the one thing you'd already tried
chrism1: other than the arrow position on tooltipdialog, are there any other reasons why the current trunk
version shouldn't be used for mobile popups for things like date pickers, color pickers, etc?
chrism1: if the styling gets done for mobile themes
wildbill: he can work on it if he wants but i wanted to check w/him i guess he's not here now
wildbill: he also grabbed some other tickets but they are still marked TBD
kgf: better than 'future'? lol
kgf: he probably grabbed the IE9 ones?
kgf: pretty sure he's aware of the push for that in 1.6.1/1.7
wildbill: not sure where this log starts, hard to read these timestamps
uhop: he is here
uhop: chatting with you ( wildbill ) in #dojo
uhop: kgf: seriously, I am unclear on labels, if you are so up on that, just explain how to mark tickets
wildbill: uhop oh ok i see your messages there. thx for looking at the parser, you won't be able to remove the
recursion though w/out breaking functionality
uhop: why?
kgf: wildbill: perf thing only really came up within the last 30 or so lines. meeting started around 1300915805.94
wildbill: thx
uhop: so what is it? tbd? future? 1.6.1? I didn't change it
kgf: uhop: actually I'm still a bit confused on the labels myself, I was more wondering what's right if both future
and tbd are wrong
uhop: or should it be anonymous until fixed?
wildbill: about the labels, for the IE9 bugs i thought we wanted to fix them in 1.9.1, yes?
kgf: I assume anything IE9 related should be 1.6.1
uhop: IMHO, if nobody has better idea, lets continue with anarchy --- it worked for us before without problems
kgf: for the parser one...1.5.1? 1.6.1?
uhop: wildbill: what if some stuff cannot be in 1.6.1?
uhop: e.g., it takes too long
wildbill: well, whenever possible
wildbill: not sure what you are asking
22
uhop: so should I put 1.6.1 and bump up later, or 1.7 and bump down, when fixed?
kgf: e.g. do we bump ticets' milestones at RC or something
wildbill: oh, you should put the milestone you are planning on
kgf: this is relevant to my interests, I tend to leave tbd until I know where I'm checking it in for sure but I'll start
being more proactive if I know which way we tend to roll
uhop: wildbill: no, I just want clarifications on "wildbill
he also grabbed some other tickets but they are still
marked TBD"
uhop: how they should be marked?
uhop: or was it wrong to grab anonymous and sjmiles tickets?
wildbill: well, I'd say to mark them for 1.6.1 because there's >80% chance we'll fix them in 1.6.1
uhop: wildbill: "you won't be able to remove the recursion though w/out breaking functionality" --- "why?"
wildbill: ok, the recursion is there for a couple reasons, one is the stopParser: true flag used on ContentPanes,
where it doesn't parse certain subtrees, and another is for propagating dir and lang
uhop: so?
wildbill: how else would you do it w/out recursion?
wildbill: ("it' meaning stopParser and dir/lang)
uhop: we can walk DOM in non-recursive fashion --- it was done that way purposely
uhop: that's why every node has parent
uhop: even explicit stack is not required
wildbill: sure, that's true, but doesn't it go from O(n) to O(n log n) or something like that?
uhop: nope
wildbill: so it stays at O(n)?
uhop: much faster --- instead of multiple stack frames (=> closures) --- simple iterations
wildbill: ok, let's go over the math and see which one of us is miscalculating
uhop: yes O(n), where n is a number of nodes in the subtree
uhop: it would be easier to fix it and see if the fix works
uhop: the proof is always in the pudding
wildbill: yes feel free to fix it as long as your fix passes the regression tests in dijit. i'm assuming worst case
where for every node we have to follow the parent up to BODY
wildbill: admittedly, there are a lot of variables, like what percentage of nodes have a dojoType specified
uhop: apparently dmachi wrote perf tests already, so I am going to use them first to see if there is any
improvement
wildbill: that's a bit silly, his performance tests don't have any widgets on the page
uhop:
uhop: still it is a valid case
uhop:
23
wildbill: agreed
uhop: ok, got to go
wildbill: so just to be clear though, if every node had a dojotype and we have to trace parent pointers up to
BODY for each node.
chrism1: hi wildbill
chrism1: ^^^ q re: tooltip dlg and mobile
wildbill: hi
wildbill: kgf: thanks for the tip, reading from 1300915805.94 now
chrism1: trying to figure out if more refactoring needs to be done, or whether we can try using tooltip dialog for
popups on things like mobile datepicker, selects
kgf: wildbill: np
wildbill: chrism1: well iPad and iPhone are different beasts, i think it makes sense for iPad
chrism1: y
chrism1: iphone typically slides up or in from right a separate view
chrism1: with Done|cancel
chrism1: were ipad/tablet pops up
wildbill: haven't noticed the animation but I know it goes full screen like a dijit.Dialog
wildbill: i'm thinking of for example a Calendar popup or the "move to folder" dialog in gmail
chrism1: so the actual popup mechanism is different based on screen size
wildbill: yes, i think so, don't you agree?
chrism1: y
chrism1: but for the ipad/tablet case, do you think tooltip dialog can pretty much be used as is?
wildbill: i think so
chrism1: just re-style to match mobile device
chrism1: ok
chrism1: trying to see how much remaining work for that piece
wildbill: yeah, dmachi said he'd work on getting the arrow and popup centered rather than right/left aligned
chrism1: cool
wildbill: i should assign the ticket you wrote to him
chrism1: y
chrism1: where should the screensize->popup mechanism code live?
chrism1: in one of the dijit base classes?
chrism1: the piece that slides in a view, vs pops up a dialog
wildbill: hmm, i'm not sure, probably in dojox.mobile
chrism1: i c that ComboBoxMenuMixin is in dojox.mobile
chrism1: that should probably leverage this logic as well
wildbill: well combobox is special, it operates the same on iphone/ipad
24
wildbill: because you need to show the keyboard and the dropdown simultaneously
chrism1: k, what about a scrollable list that pops up in a dialog or view
chrism1: Select
chrism1: or multiselect with large # items
wildbill: that's different, it should presumably use the spinner code that ykami checked in
wildbill: on iPhone and a TooltipDialog on ipad
chrism1: right
chrism1: spinner code is a "slide in from bottom" view
wildbill: agreed…. when you said "slide in" before though what were you talking about? when i mentioned
calendar i meant the calendar that is a table, not the spinner calendar
chrism1: well, it could be either
chrism1: pick a date, using a calendar
chrism1: or via spinwheel
wildbill: right, sure
chrism1: calendar would slide in a view, same for spinwheel
chrism1: on phone
chrism1: but on tablet, tooltip pupup
wildbill: not sure what you mean by "slide in a view"
chrism1: u have an iphone handy?
wildbill: yes
wildbill: on iPhone, calendar spinwheel and grid-calendar seem pretty different since spinwheel only covers the
bottom half of the screen, but grid-calendar is centered and covers nearly the whole screen
chrism1: in some apps, the developer chooses to slide the view with the spinner or control up from the bottom or
in from the right
chrism1: the view that's slid in may not entirely cover the previous view
wildbill: sure
chrism1: and typically has Done|Cancel buttons to return
chrism1: or tapping off of the slid in view on the orig panel may also do implicit Done
wildbill: yes, that's correct
chrism1: in the gallery demo that we've got running...
chrism1: http://chrism.dojotoolkit.org/dojo-samples/demos/mobile-gallery/demo.html
chrism1: the UI detects screen dimensions, and displays sidebar nav accordingly
chrism1: i think this popup logic should use the same core function
chrism1: to either slide in a view or popup a dialog
wildbill: sure
chrism1: so on the Forms demo, when i've got the window size small like a phone, the Birthday field will slide in
a date spin wheel from the bottom of screen
chrism1: but if i'm on a tablet, it will use tooltip dialog
chrism1: i guess this should be a mixin class in dojox.mobile
wildbill: yes, i understand
25
wildbill: and yes, probably a mixin that calls out to separate code depending on screen size
chrism1: ok, and that's not something you're working on on the dijit side
wildbill: right
chrism1: so i'll need a ticket for kami
chrism1: or doug
wildbill: yeah, we should have a ticket, not sure on the details, it's not for combobox
chrism1: seems like it could possibly be used for any kind of input field
chrism1: maybe not
chrism1: small subset more like
chrism1: dates, times, select lists, search hits
chrism1: color
wildbill: agree about dates, times, select list, color (or any drop down button)
chrism1: y
wildbill: not for "search hits" if by "search hits" you mean combobox
chrism1: if u have a search field, and start typing, and want to show user top hits found
chrism1: like in a url field
chrism1: filtering select
wildbill: the combobox, and it's a different beast than all the others because the drop down needs to appear at
the same time as the keyboard
chrism1: ttrenka: u still here?
chrism1: phenny, tell ttrenka: emmanuel wanted me to tell you he thinks #12315 is ready to integrate at this
point. No more enhancements planned for gauges beyond that for now
chrism1: bah she's not in this channel
chrism1: things still ok in jp where you're at?
wildbill: yah
26
Download