00:02
<TabAtkins>
I wonder if it would be useful to provide a readonly copy of all the builtins, for cases like this.
00:02
<Hixie>
for the purposes of a web page, extensions change the builtins
00:03
<TabAtkins>
Yeah, that's a nice theory.
00:03
<jamesr>
whoever's providing the extension could provide a "backup" of equal power
00:03
<jamesr>
but that's up to the relevant extension system, not the platform itself
00:03
<TabAtkins>
It doesn't work well in practice when, as far as I can tell, an extension is overwriting a builtin unintentionally.
00:03
<TabAtkins>
But anyway, yeah, the extension system itself could provide this backup copy.
00:03
<zewt>
TabAtkins: well, if you really want to prevent access to the original and wrap all calls, having the originals around would be unwanted
00:04
<zewt>
right, typically if you're changing or monkey patching an interface (in any language), it's up to you to expose the original if you want to
00:07
<Hixie>
yeah, generally speaking, the extension shouldn't be doing anything that would need this... unfortunately...
01:18
<tantek>
curious if folks saw this: https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.platform/itl6mtx2dxI (re: CSS vendor prefixes) and if they had any thoughts.
01:19
<tantek>
I there are some good forward steps we (browser vendors/implementors) can take in the short / near term and I'm curious what other folks here think of the specifics.
05:45
<zcorpan>
Hixie: you got the arguments backwards in step 1 of "element"
05:47
zcorpan
doesn't like svg: and math:
05:51
<MikeSmith>
yay some postmsg tests
07:28
<hsivonen>
jgraham: I might have missed the point of bug 17231
08:00
<annevk>
hsivonen: objections if I shorten the headings on the bad ideas page? "Turing-complete CSS" "Standardized byte code language"
08:02
<jgraham>
hsivonen: I think the point of the bug is more or less what Hixie said in the first paragraph of comment 4 (apologies; it seems that my description was very unclear).
08:03
<jgraham>
That is, given some code that restarts the parser from within the load event handler, it seems a second load event is not created.
08:03
<jgraham>
well "queued" I guess
08:58
<AryehGregor>
tantek, I just saw that and responded supportively.
08:58
<tantek>
Thanks AyrehGregor
09:32
<hsivonen>
annevk: no objections
09:33
<hsivonen>
jgraham: ok. then I think I'm not missing the point of bug 17231.
09:34
<annevk>
k done
09:39
<hsivonen>
I'm not sure if it belongs on the Bad Ideas page, but we need a similar FAQ that explains what CORS protects against and why the CORS-dependent stuff isn't allowed without CORS
09:39
<hsivonen>
formulating it as a Bad Idea would be Cross-Origin Loads without CORS
09:45
<hsivonen>
What's the current timing attack defense story for CSS Shaders?
09:50
<annevk>
I wonder if obvious bad ideas need to be documented too
09:51
<asmodai>
annevk: btw, saw the frontpage cookie warning on e.g. http://www.fok.nl/ ?
09:52
<annevk>
asmodai: never seen such a thing before
09:52
<annevk>
asmodai: looks quite insane
09:52
<asmodai>
Due to the new telecomwet
09:53
<zcorpan>
annevk: example of obvious bad idea?
09:53
<annevk>
zcorpan: namespaces
09:54
<annevk>
zcorpan: XML-based formats
09:55
<annevk>
(in the context of the web platform anyway)
10:01
<hsivonen>
annevk: removing Namespaces from SVG
10:02
<hsivonen>
Fixing something that's bad by putting the fix behind a document-global mode switch
10:02
<annevk>
let me put those on the talk page
10:02
<annevk>
ah nah
10:02
<annevk>
i'll put them at the end
10:07
<annevk>
weird URL stuff...
10:12
<annevk>
http://www。google。com
10:12
<annevk>
that works in the address bar
10:12
<annevk>
in some browsers
10:12
<annevk>
but not in APIs
10:31
<MikeSmith>
jgraham: auto push to https://github.com/w3c/testharness.js is working now
10:53
<jgraham>
MikeSmith: Awesome!
10:54
<asmodai>
annevk: btw
10:54
<asmodai>
annevk: wrt MathML wiki page, would equation examples with current rendering across browsers be useful?
11:00
<odinho>
man3
11:00
<odinho>
Meh
11:01
<Ms2ger>
hunter2
11:01
<odinho>
******
11:01
<odinho>
fsck, too short :P
11:04
<annevk>
asmodai: writing tests and pointing to those is probably more useful
11:04
<annevk>
asmodai: if you want browsers to fix their bugs that is :)
11:04
<Ms2ger>
Who wants that :)
11:05
<Ms2ger>
Did people see http://testthewebforward.org/, btw?
11:07
<odinho>
That was kinda CSS heavy. (and adobe/webkit heavy as well :P)
11:07
<Ms2ger>
Yeah
11:07
<annevk>
but you know
11:07
<annevk>
http://testsuite.org/
11:08
<odinho>
annevk: Yeah. I just wanted to be there, that's all :P
11:08
<Ms2ger>
odinho, maybe you should apply ;)
11:08
<odinho>
I'm all like, wtf where's Opera.
11:08
<odinho>
Ms2ger: Nah, too much hassle for too little. -- Had it been in Europe maybe.
11:09
<odinho>
It won't help anything for me to be there, -- I will just go around hassling people with either questions or well-meant guidance :P
11:09
<Ms2ger>
Maybe you should set something up :)
11:10
<odinho>
Ms2ger: Yeah, -- Test the Web Forward, Oslo event, in Odin's new apartment. :]
11:10
<odinho>
Actually, why not. Maybe I should try to do it. Just not in my apartment but a real place.
11:17
<asmodai>
annevk: Gotcha
11:18
Ms2ger
frowns
11:21
<david_carlisle>
annevk: it wasn't clear to me that rendering tests fitted anywhere in the html test suite? Which seems to mainly want automated testing.
11:22
<gsnedders>
david_carlisle: Well, reftests are still automated tests
11:24
<hsivonen>
If Adobe can get people to write tests, that's cool.
11:25
<gsnedders>
Only a single Mozilla person, and no Opera people.
11:25
<david_carlisle>
gsnedders: Maybe I should read that reftest stuff again,, when I looked before it wasn't clear how to do a reftest for mathml either. If we can figure out a format that works for the html test suite, we should be able to generate fairly could coverage tests by converting existing tests.
11:26
<david_carlisle>
s/could/good
11:30
<Ms2ger>
david_carlisle, fwiw, Mozilla's got a number of MathML reftests at http://mxr.mozilla.org/mozilla-central/source/layout/reftests/mathml/
11:30
<odinho>
gsnedders: It's California. -- At least Moz should be able to have lots of people. But yea, seems they don't get around much, we were 10 minutes taxi from Mozilla HQ, and there was more people from Opera than Moz at the Mountain View F2F :P
11:30
<david_carlisle>
gsnedders: MathML doesn't have so many equivalent expressions. My understanding of reftest is you give two variants and check that they produce the same result. The only way to get a fraction is to use mfrac.
11:30
<david_carlisle>
Ms2ger: ah will look, thanks
11:31
<Ms2ger>
Hmm, I even wrote some of those
11:35
<annevk>
so I found http://tools.ietf.org/html/rfc5895#section-2
11:35
<annevk>
euh, someone told me about that
11:35
<annevk>
but that seems woeful if we are to use that for <a> and such :/
11:36
<Ms2ger>
1. 2. 3. 4. Note that the steps above are ordered.
11:36
<Ms2ger>
Oh really
11:38
<Ms2ger>
annevk, http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node-replace
11:38
AryehGregor
notes that section 3 says not to use section 2 as-is
11:38
<Ms2ger>
step 8 seems redundant with the adoption in step 7
11:39
<Ms2ger>
Nvm me
11:40
<jgraham>
There is a correlation between testthewebforward being CSS heavy and there not being anyone from Opera there; if it had been more javascript focused I would have tried to get travel approval
11:41
<odinho>
jgraham: lazy jgraham is lazy(?)
11:41
<Ms2ger>
jgraham, CSSOM? :)
11:41
<gsnedders>
I probably would've tried to go if I wasn't moving flat. :)
11:41
<gsnedders>
But AFAIK we weren't invited at all.
11:41
<jgraham>
odinho: Not lazy. I don't think I would be the right person to talk about testing CSS
11:42
<jgraham>
I would rather save our time/money and attend a future event with more javascript focus
11:42
<odinho>
jgraham: ... AH, I totally misread that.
11:42
<odinho>
jgraham: I thought it was CSS heavy BECAUSE you were not there :P
11:42
<jgraham>
No :)
11:43
<odinho>
Made a whole lotta sense in my head.
11:43
<jgraham>
CSS focused because that's what Adobe wanted to concentrate on first
11:43
Ms2ger
looks for a doctor around where odinho lives
11:43
<annevk>
gsnedders: reportedly we had an invite, but the ball might have been dropped somewhere by it not being directed to the right people
11:44
<jgraham>
I think there is potential for followup events that are more markup/script centred
11:44
<gsnedders>
annevk: I heard otherwise. Oh well. Maybe that just says something about our communication skills.
11:44
<odinho>
Ms2ger: annevk is 2 offices down, I should be okay.
11:44
<jgraham>
Invited to what?
11:44
<jgraham>
testthewebforward?
11:45
<annevk>
yes
11:45
<jgraham>
We were invited
11:45
<Ms2ger>
odinho, or, well, Dr. jgraham
11:45
<odinho>
Ms2ger: He's in Lkpg or some place in Sweden.
11:45
<Ms2ger>
How silly of him
11:45
<odinho>
Yes, I think so too.
11:46
<jgraham>
I've been to Oslo; it's not that great :p
11:46
<odinho>
jgraham: Hey! We're getting new office on monday.
11:47
<jgraham>
odinho: Not sure it will make Oslo great :) Also it will mean that no one can find the office because it isn't anywhere near the city centre anymore
11:47
<Ms2ger>
... because the bricks of the previous one were crumbling?
11:47
<annevk>
jgraham: you underestimate the density of bacon-cheese burger restaurants
11:47
<jgraham>
annevk: Pretty sure you have only ever been to 3 resturants in Oslo :)
11:47
<annevk>
jgraham: actually, the new office is way easier to get to from Oslo S
11:47
<annevk>
jgraham: lies
11:47
<Ms2ger>
4!
11:48
<annevk>
Ms2ger: if you mean 4 factorial, that might be about right :p
11:48
<Ms2ger>
Hey, you're not qualified to make math jokes ;)
11:49
<jgraham>
(I recommend Lofoten btw. No bacon cheeseburger of course, but very nice fish)
11:49
<odinho>
jgraham: That's the only thing you'll get as well...
11:50
<jgraham>
odinho: That sounded like a complaint
11:51
<Ms2ger>
http://25.media.tumblr.com/tumblr_m4whxo6EaE1rrju89o1_500.jpg
11:54
<jgraham>
Having said all of that, if there are any web developers reading who can make it to test the web forward, I highly recommend that you attend
11:55
<jgraham>
Two days where you will learn how to make a real improvement to the web platform
11:55
<niloy>
okay!
11:56
<gsnedders>
I could just be really cynical and question how much people actually try and fix bugs that show up in spec testsuites.
11:57
<jgraham>
You could, but it would seem to be misplaces cynicism
11:57
<Ms2ger>
gsnedders, here's one :)
11:57
<Philip`>
Is "Test the Web Forward" part of a series that will include "Test the Web Backward" and "Test the Web by Picking Random Sections and Following All the Cross-References"?
11:58
<jgraham>
Personally, I only do the last part :)
11:58
<Ms2ger>
Philip`!
12:01
<jgraham>
Speaking of which
12:02
<jgraham>
hsivonen: So, I don't understand your comment in bug 17231. AFAICT in gecko if you document.open/document.close from in a load event, you will end up with no second load event firing and the document in an "interactive" readystate.
12:05
<jgraham>
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1562
12:06
<hsivonen>
jgraham: ooh. I was missing the point, then
12:07
<jgraham>
In WebKit you end up in a "complete" readyState
12:07
<jgraham>
Although it doesn't seem to like the live dom viewer much
12:12
<hsivonen>
do zip/jar files include a creation time stamp or something?
12:13
<hsivonen>
I have a Maven build process that builds a jar, signs it, builds the jar again, ends up with a jar with the same number of bytes but the signature got invalidated
12:13
<hsivonen>
(I have no idea why the jar gets rebuilt after signing)
12:14
<hsivonen>
the two jar files expand to identical sets of files
12:15
<Philip`>
Maybe the timestamps of the files in META-INF differ?
12:15
<hsivonen>
Philip`: could be
12:15
<Ms2ger>
Philip`!
12:16
<jgraham>
Why does Ms2ger keep trying to compute Philip`-factorial?
12:16
<Philip`>
(I don't believe zips store any dates other than the mtimes of files)
12:23
<smaug____>
so, when and why have people started to use word "polyfill"
12:24
<gsnedders>
Somebody used it in a talk. It became hip and cool.
12:25
<jgraham>
They use it because the mental image of the web being like some shoddy DIY work feels comfortingly accurate.
12:26
<hsivonen>
smaug____: http://remysharp.com/2010/10/08/what-is-a-polyfill/
12:26
smaug____
is not hip nor cool and doesn't like the word :)
12:26
<hsivonen>
smaug____: FWIW, Polyfilla is available in Finland under the same name as in the U.K.
12:27
<Ms2ger>
gsnedders, so, that bug in Opera about "foo" in localStorage always being true...
12:28
<hsivonen>
this kind of Maven WTF makes me feel I made the right choice when I didn't try to build all of Validator.nu using Maven
12:28
<hsivonen>
supposedly time-saving tool is a huge time sink when sorting out WTF it did
12:28
<gsnedders>
Ms2ger: Yes?
12:28
<Ms2ger>
Is someone going to fix that? :)
12:31
<gsnedders>
Ms2ger: Eventually. Rather major host object API limitation leading to it.
12:31
<Ms2ger>
Mm
12:32
<Ms2ger>
Glad to see you guys have the same issues as we do :)
12:34
<gsnedders>
Ms2ger: Any other bugs you want to nag me about? :P
12:34
<Ms2ger>
All of them ;)
12:35
<gsnedders>
Ms2ger: Well some are fixed, and some aren't.
12:35
<Ms2ger>
Actually, yes
12:35
<Ms2ger>
localStorage["age"] = null;
12:36
<gsnedders>
What about it?
12:36
<Ms2ger>
It sets localStorage["age"] to "", not "null"
12:37
gsnedders
finds a bug from Ms2ger saying that
12:37
<Ms2ger>
:)
12:38
<zcorpan>
Ms2ger: see https://www.w3.org/Bugs/Public/show_bug.cgi?id=17283
12:39
<Ms2ger>
zcorpan, where you.. Agree with me?
12:39
<zcorpan>
Ms2ger: sure thing
12:39
<Ms2ger>
\o/
12:39
gsnedders
adds Ms2ger of list of people to stalk
12:40
<zcorpan>
although i don't know what you think about the proposal in that bug wrt reflecting attributes
12:40
<Ms2ger>
Uh-oh
12:40
<Ms2ger>
zcorpan, no opinion at this point
12:41
<zcorpan>
Ms2ger: k
12:41
<karlcow>
polyfill makes me think to dental products.
12:44
<MikeSmith>
foolip: copied all your Web Audio issues over to bugzilla
12:44
<MikeSmith>
https://www.w3.org/Bugs/Public/buglist.cgi?product=AudioWG&component=Web%20Audio%20API&resolution=---
12:45
<smaug____>
oh, bugzilla component for WebAudio API
12:45
<smaug____>
good
12:46
<smaug____>
now also non-wg members can file bugs
12:46
<smaug____>
it is strange that audio wg tracker required wg membership
12:57
<jgraham>
Sure would be nice to have a standard script for slow-loading resources
12:58
<jgraham>
We have a rather nice one but it's python
12:59
<gsnedders>
Does Hixie expect anyone to implement E4H?
13:02
<annevk>
I think E4H would be interesting to have
13:04
<gsnedders>
I dunno, I'll less sold on it.
13:05
<annevk>
I haven't really seen a good alternative yet
13:05
<annevk>
apart from perhaps quasis, but nobody has actually made something there that works
13:06
<smaug____>
I like some aspects of E4H, but it would be very odd if it couldn't be used in workers
13:16
<Ms2ger>
\o/ The microdata API will be in the next Nightly
13:19
<annevk>
I wonder if bz still feels this way about XLink: http://lists.w3.org/Archives/Public/www-style/2004Mar/0062.html :)
13:19
<Ms2ger>
Note the signature ;)
13:20
<annevk>
still exactly the same email address
13:20
<annevk>
but he dropped the signature
13:28
<foolip>
MikeSmith, thanks!
14:01
<jgraham>
Argh
14:01
<jgraham>
Sites that assume that "performance" in window => navigation timing spec is implemented
14:01
<annevk>
was that unexpected?
14:02
<jgraham>
I guess not, but it is really stupid
14:03
<jgraham>
Should probably have thought of this and stopped people reusing the same global for multiple specs
14:03
<jgraham>
Especially since "performance" is such a dumb name
14:04
<Ms2ger>
document.insertBefore(document.createElement("foo"), document.doctype);
14:05
<Ms2ger>
Assuming document.documentElement === null, what should that do?
14:05
<Ms2ger>
And does the spec get it right?
14:11
<annevk>
Ms2ger: throw
14:13
<Ms2ger>
Per spec too?
14:13
<annevk>
no :(
14:15
<Ms2ger>
I thought so
14:15
<annevk>
4.3 should be changed to take into account that child can be a doctype
14:15
<gsnedders>
Ms2ger: Is Number.isNaN etc. behind any switch in Fx?
14:15
<annevk>
"inclusive following"
14:15
<Ms2ger>
gsnedders, I don't think so
14:17
<gsnedders>
Ms2ger: Then unless you find ES bugs, I may start playing with that soon…
14:58
<Ms2ger>
gsnedders, don't think there were spec bugs there; I expect that any issues will end up on es-discuss
15:01
<annevk>
web notifications is buggy :(
15:02
<Ms2ger>
s/notifications//
15:17
<annevk>
Ms2ger: yeah well, I can't fix the spec for all of that
15:17
<annevk>
although who knows :)
15:17
<Ms2ger>
:)
15:32
<gsnedders>
Ms2ger: I meant in our impl :)
15:33
<Ms2ger>
I don't tend to find ES bugs in your implementation, you know that ;)
15:34
<jgraham>
On a totally different topic, thanks for reusing and improving our Microdata tests
15:36
<Ms2ger>
And thanks to you for submitting them in the first place :)
15:37
<jgraham>
Yeah, I think we have a bunch more things that should be submitted :|
16:01
<Ms2ger>
jgraham, so do we :)
16:21
<astearns>
odinho: "Test the Web Forward, Oslo" (or at least somewhere in Europe) is a great idea. If the event next week goes well I'll see what support I can get to help make that happen
16:21
<Ms2ger>
astearns, Hamburg? :)
16:22
<jgraham>
Why Hamburg?
16:22
<astearns>
The Adobe office in Hamburg is actually quite small :(
16:22
<jgraham>
(London seems like quite a good idea)
16:22
<Ms2ger>
I can poke people in our London office
16:22
<Ms2ger>
Or Paris
16:23
<gsnedders>
If it's London I'll definitely go. :P
16:23
<jgraham>
Paris or London do seem like good choices
16:23
<zewt>
that's quite a finglonger you've got there
16:24
<jgraham>
Yeah, I'm pretty sure I would go to either of those
16:24
<gsnedders>
Paris depends on stuff with uni combined with travel times a bit more.
16:25
<TabAtkins>
London++
16:26
<jgraham>
(I wonder if language would be a problem in France)
16:26
<TabAtkins>
Not in my experience.
16:26
<TabAtkins>
And I know zero French.
16:26
<TabAtkins>
As long as you're cool with eating whatever they serve you.
16:26
<Ms2ger>
Heh
16:27
<Ms2ger>
Which is probably not a bad deal in Paris
16:27
<TabAtkins>
Nope.
16:27
<gsnedders>
Oh nice, train ticket prices have gone up yet again…
16:27
<jgraham>
I mean if you organised an event aimed at local web devs in English would it be well attended? Or if you organised it in French would you get enough people to run it?
16:27
<TabAtkins>
Oh, that's a point.
16:28
<jgraham>
I'm pretty sure I trust the food in France more than in the US.
16:28
<gsnedders>
I mean, given how focused around Paris a lot of stuff is, I wonder how many people would come to London anyway.
16:28
<jgraham>
gsnedders: Huh?
16:28
<jgraham>
A lot of what stuff?
16:29
<gsnedders>
jgraham: If it were in London, given that France is very centralized in general (around Paris), how many people who would go in Paris would go to London?
16:29
<TabAtkins>
Argh, there's an event coming up that (1) is a beer festival (yay!), (2) proceeds go to fight breast cancer (yay!) (3) ...using alt med (BOOOOOOOOOO)
16:29
<TabAtkins>
Thanks for being such a buzzkill, woo-meisters.
16:29
<jgraham>
TabAtkins: That's not just disappointing that's actually mildly sickening. "Raise money for treatments that don't work!"
16:30
<TabAtkins>
EXACTLY
16:30
<TabAtkins>
;alsd;alkj
16:30
<jgraham>
gsnedders: I imagine that if it was in London most attendees would be English.
16:30
<gsnedders>
jgraham: Me too.
16:30
<Ms2ger>
/British
16:31
<gsnedders>
jgraham: Number of web developers in Scotland isn't that great.
16:32
<jgraham>
gsnedders: I imagine if it was in France most attendees would be French. But I'm not sure the pool of French devs that want to go to an English language event is that large and the number of non-French speakers/organisers that want to run the event is that large
16:32
<jgraham>
Now I'm just confused
16:32
<jgraham>
What's Scotland got to do with the price of cheese?
16:32
<Philip`>
Number of people in Scotland isn't that great either
16:32
Philip`
wonders if the number of web developers is more than proportionally lower
16:33
<jgraham>
Number of people in Norway isn't that great otherwise Oslo would be a fine suggestion (Oslo might be a fine suggestion anyway. At least the language problem wouldn't exist there)
16:55
<Ms2ger>
jgraham, you mean that everyone is equally lost in Norwegian?
17:10
<gsnedders>
Ms2ger: Nej
17:16
<sicking>
Jo!
17:25
<astearns>
jgraham: http://blogs.adobe.com/webplatform/2012/06/05/w3cs-testharness-comes-to-webkit/ (old news, new summary)
17:35
<jgraham>
astearns: Cool. Old news with better fonts is always good :)
17:35
<astearns>
heh
17:36
<Ms2ger>
Oh, so trolling Scandinavians is the way to go to summon sicking?
17:39
<jgraham>
Ms2ger: I hear that surströmming works a treat for getting a scandinavian's attention
17:40
<Ms2ger>
The smell is so bad it's only eaten outdoors?
17:40
<Ms2ger>
Silly Scandinavians
17:41
<sicking>
hahaha
18:21
<matjas>
quiz time: http://twitter.com/mathias/status/210074189409959936
18:22
<Ms2ger>
matjas, immediately or when the timeout runs?
18:22
<matjas>
Ms2ger: doesn’t matter, I’ll take any solution
18:22
<Ms2ger>
{ toString: function() { alert(); } }, perhaps
18:23
<matjas>
this really is too easy for you guys
18:23
<TabAtkins>
That was mine too.
18:23
<matjas>
Ms2ger: how would you do it if it had to be when the timeout runs? (I wouldn’t know how)
18:23
<Ms2ger>
I'd have to think a little longer about that :)
18:24
<Ms2ger>
function() { alert() }
18:24
<Ms2ger>
Functions are objects in JS :)
18:24
<TabAtkins>
The same, but make it return "alert():" rather than the unquoted version.
18:24
<TabAtkins>
Ms2ger: But not object literals!
18:25
<Ms2ger>
TabAtkins, fair
18:25
<TabAtkins>
setTimeout({toString:function(){return "alert('foo')";}},4)
18:25
<matjas>
right, duh
18:25
<matjas>
nice!
18:26
<matjas>
the difference would be more obvious if I hadn’t used 4 ms, ofc
18:26
<Ms2ger>
Mhmm
18:26
<Ms2ger>
It's perfectly obvious if you run the JS in your head
18:27
<TabAtkins>
...which is what I did.
19:55
<Hixie>
is there a DOM API to empty an element yet?
19:55
<Hixie>
something like div.innerHTML = ''; ?
19:55
<Ms2ger>
div.textContent = ''
19:55
<Hixie>
doesn't that introduce an empty text node?
19:56
<Ms2ger>
Not per spec
19:56
<Hixie>
indeed not
19:56
<TabAtkins>
In Chrome it doesn't.
19:56
<Hixie>
cool
19:56
<Hixie>
hm, the spec doesn't do the one-text-node optimisation
19:57
<Ms2ger>
I think we agreed it wasn't necessary
19:57
<Hixie>
especially if we add E4H, it would be cool to have a single method we could use to replace an element's children with another
19:57
<Ms2ger>
node.replace()?
19:58
<TabAtkins>
Hixie: If you didn't have an irrational hatred of method chaining, you could separate the concerns better.
19:58
<TabAtkins>
node.empty().fillWith(stuff)
19:58
<Hixie>
yes! replace() is good
19:58
<Hixie>
TabAtkins: it's not irrational
19:58
<Ms2ger>
Hm
19:58
<Ms2ger>
Why do we have doctype.replace()?
19:58
<TabAtkins>
You have to create new verbs whenever you want to compose two pre-existing verbs in a single statement.
19:59
<Ms2ger>
TabAtkins, emacs!
19:59
<Hixie>
wait, no, replace() replaces the element itself
19:59
<Hixie>
that's not it
19:59
Philip`
would intuitively expect a.replace(b) to do something like remove a from its parent and insert b into that location
19:59
<Hixie>
Philip`: it does
19:59
<Ms2ger>
Hmm, you're right
19:59
<Philip`>
Oh, it's a thing that exists?
19:59
<TabAtkins>
If you need a single name, replaceContent()
19:59
<Ms2ger>
Philip`, in spec
20:00
<Ms2ger>
Hixie, then not, I'm afraid
20:01
<Hixie>
TabAtkins: a function's return value is the result of the operation that the function performs, not the object on which you execute the function. If you want to do something like chaining, then you should do it at the language level, because it's a syntactic convenience, not a semantic artefact of the API
20:01
<TabAtkins>
And functions that return undefined are super useful, I assume?
20:01
<Philip`>
Oh, only in the DOM4 spec seemingly, which would be why I'd never heard of it
20:01
<Hixie>
Ms2ger: would be nice to have a .empty() and/or a .replaceContents() or some such
20:02
<Hixie>
TabAtkins: it is poor language design to use a feature with one intended semantic to get an unrelated syntactic benefit just because the feature isn't currently used
20:03
<zewt>
Hixie: in my experience, that's just academic and manual chaining can be useful
20:03
<zewt>
(don't know about the particular case you're talking about)
20:04
<Hixie>
i don't disagree that the syntactic convenience is real, i'm saying that implementing it using return values is bad design
20:04
<zewt>
i don't see how
20:04
<Hixie>
it's a layering violation
20:04
<zewt>
i don't want a native "run a bunch of methods on the same object" syntax; never seen a language do it and it seems much simpler to do it at the API level when it's helpful
20:05
<Ms2ger>
Hixie, filed a bug on that
20:05
<Hixie>
you have seen such a syntax, it's just poorly designed for other reasons in JS: "with"
20:05
<TabAtkins>
I definitely think the language should handle it, actually. But until we get the monocle-mustache syntax in JS, we can chain by convention.
20:05
<Hixie>
a proper solution would be something like JS 'with' but without the effect on identifiers in arguments
20:05
<TabAtkins>
foo.{ bar(); baz(); } === foo.bar(); foo.baz();
20:05
<zewt>
TabAtkins: ugh, please no
20:05
<TabAtkins>
Yes!
20:06
<zewt>
that's hideous
20:06
<Hixie>
TabAtkins: ugh, please no (but to the chaining, not the new syntax)
20:06
<TabAtkins>
Chaining is a part of JS, no matter what we do. Might as well make it automatic.
20:06
<TabAtkins>
It looks better when spread over multiple lines like a real block. ^_^
20:06
<Philip`>
with (foo) { .bar(); .baz(); }
20:06
<TabAtkins>
with is banished forever.
20:07
<Hixie>
Philip`'s version of 'with' (with the leading '.'s to say when to apply the with expression) is a really good way to solve it
20:07
<TabAtkins>
The ES people already rejected it.
20:08
<Hixie>
and i'm rejecting chaining :-P
20:08
<TabAtkins>
I'm sorry that you hate JS and its ways.
20:08
<Ms2ger>
Now you're just trolling
20:09
<TabAtkins>
A little, yes. ^_^
20:09
<Ms2ger>
It's like Godwin's law for chaining
20:09
<TabAtkins>
But still, seriously, chaining has been a feature of good JS APIs for years. Rejecting it because you prefer your APIs to return a useless undefined is silly.
20:09
<zewt>
is there a meta-godwin's-law for bringing up godwin's law
20:10
<Ms2ger>
Insisting on chaining when your functions could return something useful is sillier :)
20:10
<TabAtkins>
What useful thing could .clear() return?
20:10
<Hixie>
seriously, chaining hasn't been a feature of "good JS APIs", almost by definition
20:10
<zewt>
true if anything was cleared, false if it did nothing?
20:10
<Ms2ger>
For example
20:11
<TabAtkins>
Why not have a predicate for whether an element is empty or not?
20:11
<Hixie>
chaining is so obviously a layering violation that i don't understand why we're even having this discussion
20:11
<TabAtkins>
(I think we have one already, called .firstChild
20:11
<Ms2ger>
Or a DocumentFragment with the removed node
20:11
<TabAtkins>
Hixie: Because all the good JS libraries and their users disagree with you?
20:11
<Ms2ger>
+s
20:11
<zewt>
what's the use case for not chaining? :)
20:11
<Ms2ger>
"good"
20:11
<Hixie>
zewt: returning something useful
20:12
<Hixie>
zewt: and more importantly, using the language as it was designed
20:12
<Hixie>
TabAtkins: that's (a) an appeal from authority and (b) wrong
20:12
<zewt>
if you have a vector class that does addition, multiplication, etc. in-place, there's really nothing more useful to return than allowing chaining
20:12
<TabAtkins>
No, it's an appeal from use. Also: it's right.
20:12
<Hixie>
this conversation is content-free, so i'm bailing
20:13
<TabAtkins>
Sigh. Since your response is just "I disagree with the usage patterns of most popular JS libraries", I agree.
20:13
<Ms2ger>
zewt, in that case, I might agree
20:13
<Ms2ger>
zewt, but I think it's silly as a general rule
20:14
<gsnedders>
Paving the cowpaths, etc.
20:14
<TabAtkins>
Given my own usage patterns and what I see others do and like, I think chaining should be the default, unless you have a good reason to return something.
20:14
gsnedders
doesn't like chaining, but that's him
20:14
<zewt>
TabAtkins: i wouldn't go too far with that, since in balance you don't always know at first whether you'll want to return something later
20:14
<TabAtkins>
When/if JS ever fixes this at the language level (and I hope they do), we can revise the policy.
20:15
<Hixie>
Ms2ger: going back to the DOM, I recommend adding a replaceChildren() method and a removeChildren() method that parallel replaceChild() and removeChild()
20:15
<Hixie>
Ms2ger: and maybe renaming append() to appendChildren() for consistency, though it does make it verbose, so maybe not
20:15
<zewt>
removeChildren would sure be nice; i'm definitely sick of writing removeChild() loops
20:16
<Ms2ger>
TabAtkins, that's terribly short-sighted, IMO
20:16
<TabAtkins>
zewt: Generally, if you can return something from an in-place mutation, you could return it with a separate function too. Should just provide it there and keep the mutators convenient.
20:16
<zewt>
(though at the same time, i'm wary about helper functions that replace two lines of code)
20:16
<Hixie>
zewt: one line of code if you do textContent = '' instead
20:16
<zewt>
feels a bit hacky
20:16
<Hixie>
it's quicker, but yeah
20:16
<Hixie>
zewt: but in this case i think it's more about making the code more self-explanatory
20:17
<Hixie>
node.empty() or node.removeChildren() is clearer than node.textContent = '' // empty
20:17
<zewt>
TabAtkins: well, for example, you could make WebSocket.send() return this, so you could say ws.send(a).send(b).send(c); but you might also later want to return something else, like an object you can stick event listeners on to find out when that particular send() completes
20:17
<zewt>
Hixie: fwiw empty() sounds like a query (isEmpty)
20:18
<Ms2ger>
zewt, otoh, DOM would use an attribute for that, I think
20:18
<Hixie>
zewt: i don't care much abotu the exact naming, that's up to Ms2ger
20:19
Ms2ger
defers to annevk
20:19
<zewt>
careful, if annevk punts to hixie the world might explode
20:19
<Ms2ger>
Nah, we'll pass through AryehGregor first :)
20:19
<Hixie>
has to be one of the dom editors :-P
20:20
<Hixie>
and this is why there should be only one! :-P
20:20
<Ms2ger>
Hixie, if I were the only one, I'd just let that bug sit there too :)
20:20
<zewt>
Ms2ger: if it returns true if >0 elements were removed (theoretically), if(empty()) { ... } would definitely be confusing
20:20
<Ms2ger>
zewt, fair point
20:21
<zewt>
(don't have any use cases for that return value off-hand, just seems like an "obvious" thing to do)
20:22
<Ms2ger>
Hixie, how about I leave the API design to the WG? ;)
20:22
<zewt>
design by committee, that always goes well :)
20:22
<Hixie>
if you start doing that kind of thing, i'll just have to drag dom core back into the html spec :-P
20:24
<zewt>
(also FWIW, "removeChildren" while a bit verbose is consistent with the others)
20:25
<Hixie>
(jeez, what is so hard about people deleting quoted text in their e-mails)
20:25
<jgraham>
Email is too hard for people
20:25
<Ms2ger>
Can we blame gmail? :)
20:25
<jgraham>
It is mystifying
20:26
<Ms2ger>
jgraham, clearly you should be using an approved email client :)
20:26
<zewt>
what I found fascinating is someone posting to the "mailing list etiquette" thread talking about how to quote, while quoting in one of the most horrifying ways imaginable
20:27
<jgraham>
zewt: That is inevitable
20:27
<Hixie>
wow
20:27
<Hixie>
http://taglit.qfox.nl/
20:27
<zewt>
(top-quoting is better than that <irc> quoting nonsense)
20:27
<TabAtkins>
Agreed.
20:27
<gsnedders>
+1
20:27
<Ms2ger>
"My response is in blue"
20:28
<zewt>
yeah that's probably a little worse
20:28
<TabAtkins>
Clearly someone's not thinking about nesting.
20:29
<Ms2ger>
I use blue, you use red, your quote of my comment is purple
20:29
<zewt>
and in the archives we all use black :P
20:29
<jgraham>
I suppose mail clients don't support <blink> or we weould have "my reply is flashing"
20:30
<Ms2ger>
My reply is <marquee>Floating back and forth</marquee>
20:30
<zewt>
jgraham: by the way, http://zewt.org/~glenn/gross.html blink is back, baby!
20:30
<jgraham>
My reply is all the prime numbered letters
20:31
<jgraham>
(er, I mean the letters at prime number indicies, or something)
20:31
<jgraham>
There has to be a fun way to embed your reply in the original text
20:31
<Ms2ger>
Yes
20:32
<Ms2ger>
> Blah blah
20:32
<Ms2ger>
> blah
20:32
<Ms2ger>
20:32
<Ms2ger>
I agree!
20:32
<Ms2ger>
</boring>
20:33
<zewt>
<Hixie> http://taglit.qfox.nl/ <- heh, not sure what I think about "new function()"
20:33
<zewt>
it's nice to not have to wrap the whole thing in (function(){})(), but it's also unobvious
20:33
<Ms2ger>
Not too much of a fan of <a b> :)
20:43
<jesusruiz>
Hixie, Are you Ian Hickson?
20:45
<TabAtkins>
Yes, he is.
20:45
<jesusruiz>
Thanks, TabAtkins ;)
20:45
<Hixie>
jesusruiz: yes
20:48
<jesusruiz>
Hixie I'd like to send you an email about a feature, that it might be interesting to study for the web.
20:48
<TabAtkins>
jesusruiz: Please send it to whatwg⊙wo
20:49
<jesusruiz>
although I think that to do so, you should use a patent owned by Microsoft.
20:50
<jesusruiz>
OK, TabAtkins. Thanks for your help. You are very kind ;)
21:25
<Hixie>
is mjs on vacation or something? i haven't seen him around in a while
21:26
<TabAtkins>
Yes.
21:26
<Hixie>
Aaah.
21:27
<Hixie>
Ok.
21:27
<hober>
He'll be back next week IIRC
21:28
<Hixie>
k
22:02
<Hixie>
anyone know if anyone other than chrome is interested in http://lists.w3.org/Archives/Public/public-whatwg-archive/2011Nov/0086.html ?
22:09
<hober>
Hixie: i don't see the point of the file system api as such, much less this specific proposal
22:11
<Hixie>
k
22:20
<zewt>
hober: have you not been following it? (it's pretty obvious, I think...)
22:20
<zewt>
(both of those)
22:35
<hober>
zewt: storing and retreiving named chunks of data in the client is already solved by websqldatabase or indexeddb
22:35
<hober>
zewt: there's no point in adding yet another api to do the same thing
22:37
<zewt>
i doubt indexeddb would be suitable for large data (eg. 8GB of data for a game); and fs-api for accessing native files (which the above thread is one early attempt at, iirc) has its own big bag of use cases around accessing user native files with web apps
22:39
<zewt>
(i know idb can stored blobs; no real idea how that's shaping up for that sort of usage pattern--personally my main interest in fs-api is bridging the native file gap)
22:47
<TabAtkins>
Man, why is Opera on a different timezone from everyone else? Frustrating.
22:47
<TabAtkins>
I want to ask Morten a question about his flexbox impl.
23:23
<Hixie>
TabAtkins: they're closer to being on the standard timezone than we are :-P
23:23
<TabAtkins>
Clearly the standard is wrong.
23:24
<TabAtkins>
(Though they are on the 0 point of Swatch Internet Time, which is cool.)
23:24
<TabAtkins>
(Though Swatch got that wrong.)
23:33
<Hixie>
heh