QSA--buggy in lots of browsers?

J

jdalton

David,
LOL. It's the same guy (gal?) over and over. They just keep changing
their name to make it look like they are an army.
I not posting as anyone else.
There was a bogus test posted that excluded my QSA add-on (without
noting the fact) and then asserted My Library was "one of the slowest"
because QSA out-performed it.
That is wrong. The majority of browsers I reported (18 of 23 results)
do *not* have QSA.
This was ostensibly because the other
libraries had gone to great lengths to ensure their QSA tack-ons were
consistent cross-browser.
I didn't say "great lengths to ensure", I said at least they attempted
to put an effort into it.

Here is what I found:
(I am not counting the try-catch as a bug check because all have that)

My Library QSA addon has 0 QSA bug checks

YUI 3.0.0 has 0 QSA bug checks that I could find :(

MooTools 1.2.4 doesn't use QSA

Prototype 1.6.1 (next release they are switching to Sizzle)
WebKit className issue line #3217
Context check line #3293

Sizzle 1.0 (Used in jQuery):
WebKit className issue
http://github.com/jeresig/sizzle/blob/master/sizzle.js#L894

Avoid QSA on non HTML elements
http://github.com/jeresig/sizzle/blob/master/sizzle.js#L903

Avoid issues when .length of a nodeList maybe an element
http://github.com/jeresig/sizzle/blob/master/sizzle.js#L724

jQuery 1.4.1 (in addition to the Sizzle checks)
Avoids QSA for simple id selector line #121
Avoids QSA for simple tagName selector line #142

Dojo 1.4.0
Starting with combinator check line #9240
IE pseudos selector check line #9244
className case bug line #9246
Avoids `:contains` and `:checked` line #9255
Avoids attribute selector `|=` line #9256
Converts to a dojo.NodeList #9583

NWMatcher 1.2.1 (line numbers range from 233 - 302)
className should be case-sensitive in quirksMode (draft spec)
`:enabled` and `:disabled` bugs with hidden fields (Firefox 3.5
QSA bug)
IE8 throws errors with some pseudos
`:checked` bugs with checkbox fields (Opera 10beta3 bug)
link bugs with hyperlinks matching (Firefox/Safari)
Attribute bugs with isMap, checked, disabled, multiple, readonly,
selected
Avoid QSA for simple id, className and possibly tagName selectors
Avoid issues when .length of a nodeList maybe an element line
#1206

I am not debating the quality of there checks but I am saying they at
least attempt to check for inconsistencies/bugs.

I believe your Slickspeed results aren't very useful because it only
averages the time it takes to execute a method call 4 times per test
which results in a lot of useless 0ms returns.

So I used a modified version of Slickspeed which tests the max number
of executions a function can perform in a given time period (in this
case 200ms to start, later after Richard's review, I bumped it to
400ms).

At first I used a version of your My Library from your builder (just
the dom+query module) and then later, after you mentioned your builder
produced outdated code, I switched to the version from your download
page.
(both *without* your QSA addon because I take issue with it)

To be fair I then posted results from a range of browsers (most did
not support QSA) and marked your score with an asterisk.

The results re-posted here for context.

Win XP (mylib.js from your builder using just the DOM query modules)
-----

IE 7.0.5730.11
32 51 21 39* 73 59 26

IE 6.0.2900.5122.xpsp_sp3.gdr.080814-1236
30 50 20 38* 75 59 26

IE 8.0.6001.18702 (Compatibility View)
56 91 33 72* 216 108 62

Opera 9.50 (build 10063)
160 150 55 68* 339 170 128


WinXP (using mylib-min.js from your download page)
-----

Opera 9.25
49 81 29 40* 151 90 42

Opera 9.50
159 146 57 112* 347 173 123

Opera 9.64
127 127 47 98* 316 143 108

Opera 10.10
201 352 62 109* 554 426 368

Chrome 1.0.154.36
252 407 139 279* 849 476 448

Chrome 2.0.172.28
267 615 144 335* 1499 830 716

Chrome 3.0.195.21
350 946 161 114* 2160 1333 970

IE6
29 47 18 35* 69 60 24

IE8 (Compatibility View)
61 97 38 81* 234 117 64

Firefox 3.6
244 305 188 99* 922 354 318

OSX 10.4
--------

Safari 2.0.0
1 0 9 1* 10 5 0

Safari 2.0.4
2 0 2 3* 15 0 2

Safari 3.04
17 20 13 15* 54 24 16

Safari 3.1
177 302 84 124* 562 387 362

Firefox 2.0
7 12 7 7* 28 14 7

Richard Cornford then reviewed my Slickspeed internals and made some
suggestions (none of which changed the overall result trend)
As per Richards's review I increased the sample time from 200ms to
400ms and made it display the straight execution count in the results.

IE8 (Compatibility Mode)
5,958 8,362 3,238 5,681* 17,768 8,630 3,499

Opera 9.25
7,675 13,137 4,688 6,599* 25,826 14,941 6,620

Opera 9.50
33,643 31,268 11,725 24,128* 71,395 36,086 27,150

Safari 3.0.4
2,715 2,561 2,333 2,325* 8,794 3,787 2,547


Out of the 23 results posted I believe 5 used QSA.
In many of the results `My Library` was one of the slowest libs tested
(though in some it was middle of the road or better)

I apologize for any impression that I was trying to mislead people. I
have added a note to the Slickspeed stating MyLib is without the QSA
addon.

I would like to try to keep the dialog from turning into a flame war
and avoid name calling/personal attacks.
(I certainly contributed to the first round of dialogs spiraling into
flame bait and would like to avoid it again)

I am not cheerleading any major framework and really only raised an
issue with your results because of how abusive, warranted or not, I
think you are toward other frameworks/developers. I hope my test
results are useful to you and help you fine-tune your approach.
 
D

David Mark

jdalton said:
David,

I not posting as anyone else.

I didn't say that you were.
That is wrong. The majority of browsers I reported (18 of 23 results)
do *not* have QSA.

I didn't say "great lengths to ensure", I said at least they attempted
to put an effort into it.

That was later. The general implication was that there were lots of QSA
bugs and therefore my 0 workarounds were way below par. But fair enough.
Here is what I found:
(I am not counting the try-catch as a bug check because all have that)

My Library QSA addon has 0 QSA bug checks

Right. I'll add the Webkit quirks/className/case check when I have a
chance.
YUI 3.0.0 has 0 QSA bug checks that I could find :(

Not surprised. They've got a lot of work to do on the DOM side too. :(
MooTools 1.2.4 doesn't use QSA

Okay. Good for them! Seriously. That's the sensible approach for now.
Prototype 1.6.1 (next release they are switching to Sizzle)

Jeez. Well, at least bugs will be in just one place. :)
WebKit className issue line #3217
Context check line #3293

I'll look at the second one.

I noted that, but I think it is a waste of time (and not exactly
accurate). None of these CSS selector queries are appropriate for XML
as far as I can see. They might work in some cases.
Avoid issues when .length of a nodeList maybe an element
http://github.com/jeresig/sizzle/blob/master/sizzle.js#L724

Are you talking about the workaround for form controls named "length"?
That's valid, but not related to QSA.
jQuery 1.4.1 (in addition to the Sizzle checks)
Avoids QSA for simple id selector line #121
Avoids QSA for simple tagName selector line #142

That's sensible.
Dojo 1.4.0
Starting with combinator check line #9240

I'll look at that one. I don't believe I support queries that start
with a combinator at all, but will have to check. Sounds odd.
IE pseudos selector check line #9244

That's covered by try-catch and if the check involves a UA sniff, it is
disallowed.
className case bug line #9246
Avoids `:contains` and `:checked` line #9255

The avoidance of "checked" is an incomplete attempt to make it gibe with
the DOM traversal (they all foul up on user data AFAIK). Avoiding the
odd :contains psuedo-selector
Avoids attribute selector `|=` line #9256
Converts to a dojo.NodeList #9583

I don't follow on that last one. I return an Array object, regardless
of the fork taken.
NWMatcher 1.2.1 (line numbers range from 233 - 302)

I don't know what that is.
className should be case-sensitive in quirksMode (draft spec)
`:enabled` and `:disabled` bugs with hidden fields (Firefox 3.5
QSA bug)

Don't support those two (and likely never will). I just don't think it
makes sense to try to support every selector.
IE8 throws errors with some pseudos
`:checked` bugs with checkbox fields (Opera 10beta3 bug)

I'd be careful of any reported bugs related to user data. If they
didn't recognize that their DOM traversal was being contaminated, they
may be trying to accommodate that shortcoming in the new fork.
link bugs with hyperlinks matching (Firefox/Safari)

Also something botched due to attribute handling in DOM traversal, so
likely a compensation in the new fork.
Attribute bugs with isMap, checked, disabled, multiple, readonly,
selected

I am sure I have those covered. And checked/selected is user data
again. And this looks like an incomplete list of issues related to
buggy MSHTML attribute methods. I don't believe these are QSA-related.
Avoid QSA for simple id, className and possibly tagName selectors
Avoid issues when .length of a nodeList maybe an element line
#1206

I am not debating the quality of there checks but I am saying they at
least attempt to check for inconsistencies/bugs.

I do too (on some of those).
I believe your Slickspeed results aren't very useful because it only
averages the time it takes to execute a method call 4 times per test
which results in a lot of useless 0ms returns.

When QSA is involved, I agree. I've mentioned that there is not enough
precision to measure.
So I used a modified version of Slickspeed which tests the max number
of executions a function can perform in a given time period (in this
case 200ms to start, later after Richard's review, I bumped it to
400ms).

Okay, but is it right this time?
At first I used a version of your My Library from your builder (just
the dom+query module) and then later, after you mentioned your builder
produced outdated code, I switched to the version from your download
page.
(both *without* your QSA addon because I take issue with it)

Right. And the builder will be updated soon as it has been few weeks at
this point (I've been busy).
To be fair I then posted results from a range of browsers (most did
not support QSA) and marked your score with an asterisk.

The results re-posted here for context.

Win XP (mylib.js from your builder using just the DOM query modules)
-----

IE 7.0.5730.11
32 51 21 39* 73 59 26

IE 6.0.2900.5122.xpsp_sp3.gdr.080814-1236
30 50 20 38* 75 59 26

IE 8.0.6001.18702 (Compatibility View)
56 91 33 72* 216 108 62

Opera 9.50 (build 10063)
160 150 55 68* 339 170 128


WinXP (using mylib-min.js from your download page)
-----

Opera 9.25
49 81 29 40* 151 90 42

Opera 9.50
159 146 57 112* 347 173 123

Opera 9.64
127 127 47 98* 316 143 108

Opera 10.10
201 352 62 109* 554 426 368

Chrome 1.0.154.36
252 407 139 279* 849 476 448

Chrome 2.0.172.28
267 615 144 335* 1499 830 716

Chrome 3.0.195.21
350 946 161 114* 2160 1333 970

IE6
29 47 18 35* 69 60 24

IE8 (Compatibility View)
61 97 38 81* 234 117 64

Firefox 3.6
244 305 188 99* 922 354 318

OSX 10.4
--------

Safari 2.0.0
1 0 9 1* 10 5 0

Safari 2.0.4
2 0 2 3* 15 0 2

Safari 3.04
17 20 13 15* 54 24 16

Safari 3.1
177 302 84 124* 562 387 362

Firefox 2.0
7 12 7 7* 28 14 7

Richard Cornford then reviewed my Slickspeed internals and made some
suggestions (none of which changed the overall result trend)
As per Richards's review I increased the sample time from 200ms to
400ms and made it display the straight execution count in the results.

IE8 (Compatibility Mode)
5,958 8,362 3,238 5,681* 17,768 8,630 3,499

Opera 9.25
7,675 13,137 4,688 6,599* 25,826 14,941 6,620

Opera 9.50
33,643 31,268 11,725 24,128* 71,395 36,086 27,150

Safari 3.0.4
2,715 2,561 2,333 2,325* 8,794 3,787 2,547


Out of the 23 results posted I believe 5 used QSA.
In many of the results `My Library` was one of the slowest libs tested
(though in some it was middle of the road or better)

I just don't think such measurements are of any real practical value.
And most of the others use browser sniffing and fail to deal with
attribute-related issues (in all browsers, but particularly in IE), so I
don't accept them as solutions.
I apologize for any impression that I was trying to mislead people. I
have added a note to the Slickspeed stating MyLib is without the QSA
addon.

Okay. I appreciate that. Seems only fair.
I would like to try to keep the dialog from turning into a flame war
and avoid name calling/personal attacks.

You really crossed the line digging into (and misreporting) my private
business. But I'm not interested in flaming either.
(I certainly contributed to the first round of dialogs spiraling into
flame bait and would like to avoid it again)

Yes. Fair enough.
I am not cheerleading any major framework and really only raised an
issue with your results because of how abusive, warranted or not, I
think you are toward other frameworks/developers.

I've really lost patience with the lot of them. I feel like they are
fumbling the game away and we will all end up programming Flash (or the
like) because they have made cross-browser scripting look much harder
than it is (and have really perverted the whole thing with browser
sniffing and other bizarre strategies).
I hope my test
results are useful to you and help you fine-tune your approach.

I will look at them again. Yes, I could do to fine-tune. I haven't
profiled or even put much thought into optimizing the DOM traversal end
of it.

As mentioned, the bulk of that code was written years ago. The thing
is, I don't think GP libraries are a good approach to browser scripting
at all, so I stopped working on it (and repeatedly warned _against_
using it for anything but an example). I was primarily trying to show
how it could be done without browser sniffing. It took until IE8's
release to demonstrate that the system worked. I slept right through
the release of that thing and was quite pleased to see that My Library
came through unscathed when I finally got around to testing it. I feel
that is in stark contrast to the other efforts, which are still having
problems with that browser (as predicted two years back in my
discussions with Resig about jQuery's incessant sniffing).

You have noted some legitimate bugs (and some not so legitimate). And,
yes my documentation is not quite up to speed yet (which is not a good
thing).

However, I take issue with the idea that because I made mistakes two
years ago (which I have admitted here numerous times), it invalidates my
criticism of the same mistakes being made to this day. It doesn't
follow. Basically, my attitude on that is "do as I say, not as I did"
as you learn from people who have already made the mistakes. Now that I
have revived the project and people seem to be ready for a change, I am
working to correct those mistakes (and to warn users of the potential
for problems in some areas).

The other thing is that I don't feel that results from other frameworks'
unit tests are appropriate indicators. Of course there will be a lot of
overlap as they all cover similar ground, but (other than Dojo) I don't
know exactly what they are testing and don't really want to get into it
until I have finished my own unit tests and defined _exactly_ what is
supported for each module. The typical Web developer is ignorant of the
details, so it could serve to mislead people.

And, I assure you, due to rotten attribute handling and browser
sniffing, most of these other frameworks will fail my unit tests, which
cover things they definitely specify as supported.

I don't mind criticism at all, but it needs to be honest and definitely
should not be personal. If _I_ make (or made) a mistake on something or
missed something, it doesn't let the others off the hook for their
various failings. Their pitch has always been the vigilance of
thousands of users and developers (and the number of years they've been
at it). So why can't they keep up with an effort that was thrown
together in a couple of months and then ignored for two years? It seems
paradoxical to me. And I am by no means the only one capable of such a
display. But most professional (and competent) JS developers don't
believe in GP libraries as browser scripts should be context-sensitive,
hence the lack of good GP examples.

Also, I believe that any that reference the UA string are forfeiting the
game, and their results should be thrown out. I also don't feel that
blowing up in older browsers is appropriate (and I don't see any way to
avoid it with most of these other things).
 
G

Garrett Smith

David said:
jdalton said:
[...]
Avoid issues when .length of a nodeList maybe an element
http://github.com/jeresig/sizzle/blob/master/sizzle.js#L724

Are you talking about the workaround for form controls named "length"?
That's valid, but not related to QSA.

Form control named "length" just barely scratches the surface of the
type of problem caused by unsafe name.

http://jibbering.com/faq/names


Best to just avoid naming form controls (or other element) as "length",
"elements", "title", etc.
[...]
 
D

David Mark

Garrett said:
David said:
jdalton said:
[...]
Avoid issues when .length of a nodeList maybe an element
http://github.com/jeresig/sizzle/blob/master/sizzle.js#L724

Are you talking about the workaround for form controls named "length"?
That's valid, but not related to QSA.

Form control named "length" just barely scratches the surface of the
type of problem caused by unsafe name.

Yes. I deal with that in the getAttribute wrapper. Though I am on the
fence as to whether I should. An immediate failure in IE may be a
better tactic. But then, I don't think this issue is present in IE8
standards mode and some Web developers refuse to test IE < 8, so a bug
could slip through to production. :(
http://jibbering.com/faq/names


Best to just avoid naming form controls (or other element) as "length",
"elements", "title", etc.
[...]

No question.
 
J

jdalton

David,

Awesome reply.
Are you talking about the workaround for form controls named "length"?
That's valid, but not related to QSA.
It might be still be a QSA issue (for IE, thought I haven't confirmed)
but the point was it was still doing extra processing in the QSA
branch.

As for the IE8 bugs I reported, they are related to QSA as the IE
attribute issues and other bugs are carried over into QSA.
For example IE8 will return comment nodes in QSA with the `*` wildcard
and IE8 QSA seems to ignore PARAM elements (probably others too).
I've really lost patience with the lot of them. I feel like they are
fumbling the game away and we will all end up programming Flash (or the
like) because they have made cross-browser scripting look much harder
than it is (and have really perverted the whole thing with browser
sniffing and other bizarre strategies).
I have felt that frustration too but you have to realize that name
calling/attacks really turn people off. Try to promote your framework
by focusing more on its positives and less on others negatives.
Basically, my attitude on that is "do as I say, not as I did"
I think that is a good point but you seem to be currently promoting
that same/similar code base (Your tweets/website and what not)
It took until IE8's
release to demonstrate that the system worked.
I think the IE8 release is an excellent example that you can use to
promote your framework. I was frustrated with how other frameworks
handled that too. Just try to focus on how well your framework handled
the transition and not attack the others for having to rush out and
patch their libs.
The other thing is that I don't feel that results from other frameworks'
unit tests are appropriate indicators. Of course there will be a lot of
overlap as they all cover similar ground, but (other than Dojo) I don't
know exactly what they are testing and don't really want to get into it
until I have finished my own unit tests and defined _exactly_ what is
supported for each module. The typical Web developer is ignorant of the
details, so it could serve to mislead people.
I disagree in part. I have found supplementing my existing tests with
those of others (at least their css selector unit tests), has helped
me find a lot of oddball bugs.
Some of their tests are invalid or are API specific and those are
weeded out.
Also, I believe that any that reference the UA string are forfeiting the
game, and their results should be thrown out.
I agree but I don't see a problem with a lib having UA properties like
a `SomeLib.Browser.IE` if they internally don't use them or only use
them in cases of visual bugs/bugs that can't be feature tested or lack
a relevant object inference.

Thanks for your thoughtful reply.
 
S

Scott Sauyet

I noted that, but I think it is a waste of time (and not exactly
accurate).  None of these CSS selector queries are appropriate for XML
as far as I can see.  They might work in some cases.

I'm curious as to why you say that. There are certain things
supported by the various libraries (":enabled", ":checked") that are
specific to HTML, but almost all the rest of it looks to me to be
appropriate to generic XML. What am I missing?

Also, I want to commend both David Mark and John-David Dalton for
raising the level of discourse in this thread.

-- Scott
 
G

Garrett Smith

David said:
[...]
Form control named "length" just barely scratches the surface of the
type of problem caused by unsafe name.

Yes. I deal with that in the getAttribute wrapper. Though I am on the
fence as to whether I should. An immediate failure in IE may be a
better tactic. But then, I don't think this issue is present in IE8
standards mode and some Web developers refuse to test IE < 8, so a bug
could slip through to production. :(

if(badNamesExp.test(name)) {
throw new TypeError("Bad form control name: " + name + ".");
}
 
D

David Mark

jdalton said:
David,

Awesome reply.

It might be still be a QSA issue (for IE, thought I haven't confirmed)
but the point was it was still doing extra processing in the QSA
branch.

As for the IE8 bugs I reported, they are related to QSA as the IE
attribute issues and other bugs are carried over into QSA.
For example IE8 will return comment nodes in QSA with the `*` wildcard
and IE8 QSA seems to ignore PARAM elements (probably others too).

Yes, "*" is a pain anyway you slice it (and highly ill-advised). There
are disagreements between some of the frameworks on this one (even
without QSA). I'll look at that.

And IE has always handled OBJECT/PARAM combinations strangely. I
imagine that carries over to their QSA.
I have felt that frustration too but you have to realize that name
calling/attacks really turn people off. Try to promote your framework
by focusing more on its positives and less on others negatives.

I think that is a good point but you seem to be currently promoting
that same/similar code base (Your tweets/website and what not)

Somewhat, but I have made a lot of improvements in the last month or so
(and I don't see a lot of progress on the others, which really bugs me
as I pointed out some of the more blatant missteps years ago). They
seem keen to pile on "cool" new features, but neglect to deal with the
bugs in the old ones.
I think the IE8 release is an excellent example that you can use to
promote your framework. I was frustrated with how other frameworks
handled that too. Just try to focus on how well your framework handled
the transition and not attack the others for having to rush out and
patch their libs.

Yes. I agree with that and have touched on it from time to time in
various forums. The "pitch" on my site is admittedly vague and I have
been working on some comparison tests (starting with these two
quasi-standard suites) to demonstrate the differences.
I disagree in part. I have found supplementing my existing tests with
those of others (at least their css selector unit tests), has helped
me find a lot of oddball bugs.

I completely agree that running their tests could illuminate problems
that I may have missed. I will definitely do so when I feel it is
appropriate (not quite yet).
Some of their tests are invalid or are API specific and those are
weeded out.

Right. And I don't have time to do that weeding at the moment. I'll
get to it.
I agree but I don't see a problem with a lib having UA properties like
a `SomeLib.Browser.IE` if they internally don't use them or only use
them in cases of visual bugs/bugs that can't be feature tested or lack
a relevant object inference.

The problem is that anything based on the UA string is misleading. If
you must expose such flags, it would be better to use multiple object
inferences. And most of the time, IE is the culprit and it has its own
mechanisms for dealing with its quirks (e.g. conditional
comments/compilation).

And yes, if they abstain from using those internally, then they are not
disqualified. So it will take more than a search for
navigator.userAgent in the source to determine if they have false fronts.
Thanks for your thoughtful reply.

NP.
 
D

David Mark

Scott said:
I'm curious as to why you say that.
There are certain things
supported by the various libraries (":enabled", ":checked") that are
specific to HTML, but almost all the rest of it looks to me to be
appropriate to generic XML. What am I missing?

I don't mean that the idea can't work for XML documents, just that the
current implementations are not equipped for that (e.g. botched handling
of get/hasAttribute and expandos which may be disallowed in XML DOM's).
On the latter, I think some _attempt_ to detect XML and set custom
attributes in lieu of expandos, but that's really shaky.
Also, I want to commend both David Mark and John-David Dalton for
raising the level of discourse in this thread.

Thanks for the vote of confidence. Contrary to popular belief, I am not
"trolling" here, nor am I interested in flame wars. I want to raise
awareness for problems that I see as continuing endlessly for no good
reason (e.g. browser sniffing, botched DOM traversal, etc.) It is
certainly counter-productive when things devolve into non-arguments. :)
 
D

David Mark

Garrett said:
David said:
Garrett said:
David Mark wrote:
jdalton wrote:
David,
[...]
Form control named "length" just barely scratches the surface of the
type of problem caused by unsafe name.

Yes. I deal with that in the getAttribute wrapper. Though I am on the
fence as to whether I should. An immediate failure in IE may be a
better tactic. But then, I don't think this issue is present in IE8
standards mode and some Web developers refuse to test IE < 8, so a bug
could slip through to production. :(

if(badNamesExp.test(name)) {
throw new TypeError("Bad form control name: " + name + ".");
}

That's a possibility. Though I try to avoid introducing try/catch/throw
in the core modules. It's not that I care about NN4 and the like, but I
find it invaluable to be able to test the bulk of the core (particularly
the DOM-related modules) in ancient browsers at the moment. I'm getting
to the point where I care less about that though as I think I've filled
in the cracks in the feature testing well enough at this point (i.e. the
older browsers have a chance to degrade gracefully). At the moment,
Flash and Ajax are the only two that trigger the wholesale parse error
degradation when included in the build.
 
J

jdalton

I don't mean that the idea can't work for XML documents, just that the
current implementations are not equipped for that (e.g. botched handling
of get/hasAttribute and expandos which may be disallowed in XML DOM's).
 On the latter, I think some _attempt_ to detect XML and set custom
attributes in lieu of expandos, but that's really shaky.
Actually some, like NWMatcher and other new comers, are supporting XML/
XHTML/SVG documents
Thanks for the vote of confidence.  Contrary to popular belief, I am not
"trolling" here, nor am I interested in flame wars.
I don't know, some of your threads seem to be full of flame bait.
You could have probably approached them in a better way to provide
constructive feedback without the flame injected into them.
I want to raise awareness for problems that I see as continuing endlesslyfor no good
reason (e.g. browser sniffing, botched DOM traversal, etc.) It is
certainly counter-productive when things devolve into non-arguments. :)
I agree, I think those are problems that should be highlighted.
Speaking of raising awareness, have you thought about submitting
speaking proposals to the various JS conferences ?
 
G

Garrett Smith

David said:
Garrett said:
David said:
Roja Gilwreathe wrote: [...]
"Ad hominem attacks" is another overused word that often serves only to
make the user sound like a laughingstock (see also troll).

Because it is typically tossed about to describe anybody the poster
doesn't like. In general usage, it's got no real meaning at this point,
other than to show that the user is clueless about the origins of the
term. Technically speaking, most who cry "troll" are in fact trolling
themselves (like this latest crank).

Huh. I don't see that so much. What is determined to be an insult varies
often the person writing it doesn't see it as the person reading it.

You write things like buffoon, loser, dumb, idiot a lot. I would call
that ad hominem.

Roja Gilwreathe is probably an ironic pun on Roger Gilreath.
 
D

David Mark

jdalton said:
Actually some, like NWMatcher and other new comers, are supporting XML/
XHTML/SVG documents

I fully support XHTML, though feel it is folly at this point (will be
making that a build-time option in the near future). The basic DOM
stuff should work with other XML documents as well, but I am not sure
about the queries.
I don't know, some of your threads seem to be full of flame bait.
You could have probably approached them in a better way to provide
constructive feedback without the flame injected into them.

Perhaps. But there's a long history here (i.e. there have been lots of
flames from both "sides" over the course of many years). It's
particularly irritating that the "major" library contributors (seemingly
all of them) denigrate this newsgroup as full of "trolls", when in
reality (actual reality, not their idea of a "real world" where they
just "get things done"), this is where they should be looking for
answers (virtually any question you can think of has an answer somewhere
in the archive, so you don't even have to converse with anybody to solve
problems).
I agree, I think those are problems that should be highlighted.
Speaking of raising awareness, have you thought about submitting
speaking proposals to the various JS conferences ?

Not really. Why travel and speak at podiums when I can reach the whole
world right here from my den? Of course, if the price was right... :)
 
J

jdalton

Not really.  Why travel and speak at podiums when I can reach the whole
world right here from my den?  Of course, if the price was right...  :)
If you are chosen to speak many times the conf covers travel and hotel
arrangements :D
I would love to see you speak at SXSW or JSConf, go for it ! :D
 
D

David Mark

Garrett said:
David said:
Garrett said:
David Mark wrote:
Roja Gilwreathe wrote:
[...]
"Ad hominem attacks" is another overused word that often serves only to
make the user sound like a laughingstock (see also troll).

Because it is typically tossed about to describe anybody the poster
doesn't like. In general usage, it's got no real meaning at this point,
other than to show that the user is clueless about the origins of the
term. Technically speaking, most who cry "troll" are in fact trolling
themselves (like this latest crank).

Huh. I don't see that so much. What is determined to be an insult varies
often the person writing it doesn't see it as the person reading it.

Read blog comments, tweets, forum posts, etc. and you will see that word
used to describe any behavior that rubs the author the wrong way. It's
meaningless at this point.

And you don't consider this "Roja" post to fit the classic definition of
trolling? And how about the various anonymous twits that pop in to
insult the entire NG every time a critical code review is posted? Those
are trolls in the classic sense.
You write things like buffoon, loser, dumb, idiot a lot. I would call
that ad hominem.

Perhaps you are referring to my arguments with you? :) And I
distinctly remember you referring to "dumb code" in Dojo and talking a
lot of shit about the W3C people as well. We all have out pet peeves.
Roja Gilwreathe is probably an ironic pun on Roger Gilreath.

I fail to see the irony. Seems more like yet another anonymous loser
(oops, there I go again) venting without credit.
 
D

David Mark

jdalton said:
If you are chosen to speak many times the conf covers travel and hotel
arrangements :D

Er, that would be a break even venture at best (and I hate traveling). :(
I would love to see you speak at SXSW or JSConf, go for it ! :D

Thanks. If they can do it virtually, maybe I will. But the chance that
I would actually take the time out to go to those (assuming they aren't
holding them in Cincinnati) is virtually nil. Sorry.
 
G

Garrett Smith

David said:
Garrett said:
David said:
Garrett Smith wrote:
David Mark wrote:
Roja Gilwreathe wrote:
[...]
"Ad hominem attacks" is another overused word that often serves only to
make the user sound like a laughingstock (see also troll).
Because it is typically tossed about to describe anybody the poster
doesn't like. In general usage, it's got no real meaning at this point,
other than to show that the user is clueless about the origins of the
term. Technically speaking, most who cry "troll" are in fact trolling
themselves (like this latest crank).
Huh. I don't see that so much. What is determined to be an insult varies
often the person writing it doesn't see it as the person reading it.

Read blog comments, tweets, forum posts, etc. and you will see that word
used to describe any behavior that rubs the author the wrong way. It's
meaningless at this point.

It might be misused but does that make it totally meaningless?
And you don't consider this "Roja" post to fit the classic definition of
trolling? And how about the various anonymous twits that pop in to
insult the entire NG every time a critical code review is posted? Those
are trolls in the classic sense.


Perhaps you are referring to my arguments with you? :)

Yes I have been the brunt of your name calling and I don't know why you
would be happy about that. what you say about me says more about you
than it does about me at this point.

I don't have to call you names at all. People will think whatever they
do of you; you create that impression.

And I
distinctly remember you referring to "dumb code" in Dojo and talking a
lot of shit about the W3C people as well. We all have out pet peeves.
Possibly. Calling dojo's code dumb could be considered ad hominem, I
suppose though, more like attack the code, but since it is a work of an
author, that could very well be considered ad hominem.

Then again, possibly that post which you refer to was one of the posts
that "somebody" (and his alias) went and marked one star while markup up
yours with four stars (or is it five?). I rarely use GG anymore...

Regarding my comments about the w3c - those are mostly are factual. I
did express my opinion that they are arrogant and out of control. Is
that ad hominem? Seems like a stretch. I do have reason to believe they
are arrogant and the out of control is evidenced in the fact that they
continue to push forth bad APIs with testcases showing that the API is
flawed.

Fact: The w3c's Philippe Le Hegaret, Art Barstow, Charles
McCathieNevile, Mike Smith, Doug Schepers banned me permanently. They
said it was a two-week ban. Philippe Le Hegaret mentioned one statement
I had made on list, using the term "misguided individuals", and also
included lies and corroboration as justification for banning me. The
words "misguided individuals" is possibly considered ad hominem, though
I didn't see it that way in that case.

I also stated that the w3c is a pay-to-play organization. That is
another fact, so not ad hominem.

I cannot *sincerely* apologize for anything in that conversation and I
do not apologize for the false things that Philippe LeHegaret and
cohorts said I did.

I stated *here* that the w3c is arrogance out of control, that is my
opinion and I stand by it.

But you're right about the Dojo code. I'll try and stick to facts about
the code rather than calling it dumb.
 
D

David Mark

Garrett said:
David said:
Garrett said:
David Mark wrote:
Garrett Smith wrote:
David Mark wrote:
Roja Gilwreathe wrote:
[...]
"Ad hominem attacks" is another overused word that often serves
only to
make the user sound like a laughingstock (see also troll).
Because it is typically tossed about to describe anybody the poster
doesn't like. In general usage, it's got no real meaning at this
point,
other than to show that the user is clueless about the origins of the
term. Technically speaking, most who cry "troll" are in fact trolling
themselves (like this latest crank).
Huh. I don't see that so much. What is determined to be an insult varies
often the person writing it doesn't see it as the person reading it.

Read blog comments, tweets, forum posts, etc. and you will see that word
used to describe any behavior that rubs the author the wrong way. It's
meaningless at this point.

It might be misused but does that make it totally meaningless?
And you don't consider this "Roja" post to fit the classic definition of
trolling? And how about the various anonymous twits that pop in to
insult the entire NG every time a critical code review is posted? Those
are trolls in the classic sense.


Perhaps you are referring to my arguments with you? :)

Yes I have been the brunt of your name calling and I don't know why you
would be happy about that. what you say about me says more about you
than it does about me at this point.

The brunt? Hardly. But buffoon rings a bell. And realize that my
smileys are virtually always meaningless mockery. I detest smileys and
think written communication could do very well without them. :(
I don't have to call you names at all. People will think whatever they
do of you; you create that impression.

You say your share of stupid things directed at me.
And I
Possibly. Calling dojo's code dumb could be considered ad hominem, I
suppose though, more like attack the code, but since it is a work of an
author, that could very well be considered ad hominem.

Then again, possibly that post which you refer to was one of the posts
that "somebody" (and his alias) went and marked one star while markup up
yours with four stars (or is it five?). I rarely use GG anymore...

Ah, here's a prime example. I don't use the stars at all (what a waste
of time). If you think that every time you get a one-star rating and/or
I get a five-star rating that it is my doing, you are clearly being
paranoid. GG is a big world (and I don't use it much either these days).

And what on earth does any of that have to do with your comment about Dojo?
Regarding my comments about the w3c - those are mostly are factual. I
did express my opinion that they are arrogant and out of control.

Eeek! Troll, snark, ad hominem straw man, etc.
Is
that ad hominem? Seems like a stretch.

Dunno. My Latin is pretty weak. Personal attack? Sounds like it.
I do have reason to believe they
are arrogant and the out of control is evidenced in the fact that they
continue to push forth bad APIs with testcases showing that the API is
flawed.

And I have reason to believe that certain people are (or act like)
buffoons. What's the difference.
Fact: The w3c's Philippe Le Hegaret, Art Barstow, Charles
McCathieNevile, Mike Smith, Doug Schepers banned me permanently.

LOL. Maybe they are the ones panning your posts?
They
said it was a two-week ban. Philippe Le Hegaret mentioned one statement
I had made on list, using the term "misguided individuals", and also
included lies and corroboration as justification for banning me. The
words "misguided individuals" is possibly considered ad hominem, though
I didn't see it that way in that case.

Perspective is everything.
I also stated that the w3c is a pay-to-play organization. That is
another fact, so not ad hominem.

Ad hominem implies fiction? My Latin must be worse than I thought.
I cannot *sincerely* apologize for anything in that conversation and I
do not apologize for the false things that Philippe LeHegaret and
cohorts said I did.

Perhaps if you offered an *insincere* apology they would lift the ban
and stop giving you one-star ratings. :)

Let me pioneer that. Dear jQuery, sorry I called you junk. Clearly you
are a revolutionary script. I'll try their group in a day or so. I bet
I'm still banned. Of course, _that_ is why I keep a stable of aliases.
As do you, DHTML.
I stated *here* that the w3c is arrogance out of control, that is my
opinion and I stand by it.

What difference does it make *where* you stated it?
But you're right about the Dojo code. I'll try and stick to facts about
the code rather than calling it dumb.

You did state facts at the same time. My point is you went a little
overboard (perhaps in anger or frustration) as we are all capable of
doing from time to time.
 
G

Garrett Smith

David said:
Garrett said:
David said:
Garrett Smith wrote:
David Mark wrote:
Garrett Smith wrote:
David Mark wrote:
Roja Gilwreathe wrote:
[...]
"Ad hominem attacks" is another overused word that often serves
only to
make the user sound like a laughingstock (see also troll).
[...]


Ah, here's a prime example. I don't use the stars at all (what a waste
of time). If you think that every time you get a one-star rating and/or
I get a five-star rating that it is my doing, you are clearly being
paranoid. GG is a big world (and I don't use it much either these days).

I don't know.
And what on earth does any of that have to do with your comment about Dojo?


Eeek! Troll, snark, ad hominem straw man, etc.

Posting what I wrote on w3c list it *would* be flame bait and would not
be pertinent to any particular discussion
Dunno. My Latin is pretty weak. Personal attack? Sounds like it.

Okay I don't know the post you're referring to. I can sort of agree with
that.

Calling the code dumb not the same as calling the person who wrote it
dumb, though, that's what I meant by ad hominem.
And I have reason to believe that certain people are (or act like)
buffoons. What's the difference.


LOL. Maybe they are the ones panning your posts?

Uh-huh. And bumping up yours. And Roger Gilreath's.
Perspective is everything.

Nokia has significant financial investment and interest. I have no
corporate backing; it was easy for them to get rid of me.
Ad hominem implies fiction? My Latin must be worse than I thought.
No, ad hominem is attack the man. Facts aren't attacks. Finding a
problem with something and insulting somebody by name calling are
totally different things.

Also I suggest looking up tu quoque, which is what it sort of looks like
here. Yes I do use ad hominem at times. I also lie about stuff to
people, have been known to women in various situations, etc.

The point I was trying to make is that there is a lot of insults coming
from you to others. Last week you called Scott Sauyet a buffoon and a
loser after he posted up test cases but he remained calm about it and
didn't whine at all.
What difference does it make *where* you stated it?

What I say here, after the fact, is not something that could be used as
justification for banning me from the list. It is here, not there, and
it is after the fact.
 
D

David Mark

Garrett said:
David said:
Garrett said:
David Mark wrote:
Garrett Smith wrote:
David Mark wrote:
Garrett Smith wrote:
David Mark wrote:
Roja Gilwreathe wrote:
[...]
"Ad hominem attacks" is another overused word that often serves
only to
make the user sound like a laughingstock (see also troll).
[...]


Ah, here's a prime example. I don't use the stars at all (what a waste
of time). If you think that every time you get a one-star rating and/or
I get a five-star rating that it is my doing, you are clearly being
paranoid. GG is a big world (and I don't use it much either these days).

I don't know.
And what on earth does any of that have to do with your comment about
Dojo?


Eeek! Troll, snark, ad hominem straw man, etc.

Posting what I wrote on w3c list it *would* be flame bait and would not
be pertinent to any particular discussion
Dunno. My Latin is pretty weak. Personal attack? Sounds like it.

Okay I don't know the post you're referring to. I can sort of agree with
that.

I'm sort of glad. :)
Calling the code dumb not the same as calling the person who wrote it
dumb, though, that's what I meant by ad hominem.
Right.


Uh-huh. And bumping up yours. And Roger Gilreath's.

Roger Gilreath? How many posts does "he" have here? Two? And are you
really delusional enough to think there is some connection between my
post ratings and yours? I've certainly never rated any of your posts.
I think I once rated one of Resig's posts just for the hell of it. And
yeah, it was a one (I'd have given it a zero if it were possible).
Nokia has significant financial investment and interest. I have no
corporate backing; it was easy for them to get rid of me.

So get some corporate backing and get rid of _them_.
No, ad hominem is attack the man. Facts aren't attacks. Finding a
problem with something and insulting somebody by name calling are
totally different things.

Pay-to-play would not seem like a personal attack. Misguided would.
Also I suggest looking up tu quoque, which is what it sort of looks like
here. Yes I do use ad hominem at times. I also lie about stuff to
people, have been known to women in various situations, etc.

Lie about stuff? Now every time I get a one-star rating on GG, I am
going to think it was you. And yeah, I sure get my share of them. Lot
of nuts out there.
The point I was trying to make is that there is a lot of insults coming
from you to others. Last week you called Scott Sauyet a buffoon and a
loser after he posted up test cases but he remained calm about it and
didn't whine at all.

You know my posts better than I do. I don't remember the details, but I
am sure I had a good reason. Anyway, can we get back on the topic at
hand: QSA--buggy in lots of browsers? (not David Mark--rude?)
What I say here, after the fact, is not something that could be used as
justification for banning me from the list. It is here, not there, and
it is after the fact.

You seem a bit stung by the ban. Get an alias! ;)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,066
Latest member
VytoKetoReviews

Latest Threads

Top