00:00
<gsnedders>
(Because it didn't work cross-origin)
00:00
<jwalden>
bumpy landings happen
00:00
<gsnedders>
I'm tempted to just try and make the change to an accessor in Carakan, and go back to arguing for that.
00:01
<gsnedders>
And try and pick the fight for the setter once we've got major mobile libraries not relying upon it.
00:01
<gsnedders>
Because I do really want to get rid of the setter.
00:02
<jwalden>
word to your mother
00:02
<gsnedders>
What I want is someone to do a good write-up of why you don't want to mutate [[Prototype]] and shove it in the face of developers who do.
00:03
<gsnedders>
jwalden: You were CC'd on the emails about dropping __proto__ before, weren't you, about a year or so ago now?
00:04
gsnedders
thinks he remembers Apple people agreeing in principle
00:05
<gsnedders>
Eh, not even I was.
00:06
<gsnedders>
Just your later email RegExp.prototype.compile.
00:06
<jwalden>
oh gag, that idiocy
00:07
<jwalden>
I vaguely remember some sort of segue there, not much more than that
00:07
gsnedders
doesn't really have his email on this laptop
00:07
<gsnedders>
And webmail is making me gag.
00:09
<gsnedders>
But yeah, on the whole I think we should just make it an accessor on Object.prototype and move towards getting rid of the setter.
00:10
<gsnedders>
Making the setter throw from strict is kinda evil, but probably a good idea.
00:10
<gsnedders>
(From what I've seen relying upon the setter, it's all non-strict)
00:16
<TabAtkins>
Did ES5 globally change the "reserved keyword" policy to not block them from being property names?
00:17
<jwalden>
you could always have them as property names
00:17
<jwalden>
but now, you can have them to the right of dots, as names in object literals, etc.
00:18
<TabAtkins>
Really? I thought ES3 prevented you from doing, say, foo.delete()
00:18
<jwalden>
f["delete"]()
00:18
<TabAtkins>
That's what I meant, yeah.
00:18
<jwalden>
if you wanted to call such a function, or access such a property, you needed bracket notation
00:19
<jwalden>
the Javaheads in particular found this annoying for the delete method on files (I think)
00:42
<smaug____>
um, I'm bad with CSS
00:43
StoneCypher
<3 css
00:43
<smaug____>
how do I get layout where 1st column has the width of its content, and other 2 columns fill the rest of the viewport (they may overflow: auto if needed)
00:44
<smaug____>
all the "columns" are div elements
00:44
<StoneCypher>
<left style="position: absolute; left: 0; width: whatever;"/><right style="position: absolute; left: whatever; right: 0;"/>
00:44
<StoneCypher>
or any of a million other ways
00:44
<StoneCypher>
oh, width of its content
00:45
<StoneCypher>
hm.
00:45
<StoneCypher>
<left style="position: absolute; left: 0; width: auto;"/><right style="position: relative; left: 100%; right: 0;"/> might work
00:45
<jwalden>
sounds like you want a box that will flex
00:45
<smaug____>
jwalden: yeah
00:45
<StoneCypher>
flexbox doesn't reach many browsers yert
00:45
<StoneCypher>
yet*
00:46
<smaug____>
I guess I could use -moz-box
00:46
<smaug____>
or flex, whatever it is called
00:46
<StoneCypher>
the above should do portably
00:46
<jwalden>
I just passed by dholbert a minute ago, I could corner him until he finishes implementing it
00:46
<smaug____>
:)
00:46
<jwalden>
might need reinforcements, tho
00:51
<TabAtkins>
smaug____: Use flexbox.
01:31
<smaug____>
hmm, can't get it to work
01:31
<smaug____>
it is ok if container of a column is small enough
01:31
<smaug____>
but overflow: auto doesn't work the way I'd like
01:47
<MikeSmith>
heycam: do we have any tests for WebIDL?
01:48
<heycam>
MikeSmith, AryehGregor has written some
01:48
<heycam>
I have not
01:48
<MikeSmith>
OK
01:48
<heycam>
we need to start a thread on the list about which specs we'll choose to be the basis of our test suite
01:48
<MikeSmith>
AryehGregor: you got WebIDL tests?
01:48
<MikeSmith>
heycam: OK
01:50
heycam
lunch bbl
07:41
<asmodai>
crap
07:42
<asmodai>
memory constraints on an Android device, pushing your browser out of memory when a new app starts, is a lovely way to lose your open tabs
07:49
<charlvn>
asmodai: just needs a model where memory isn't shared, similar to chrome
07:53
<asmodai>
charlvn: That or keeping a state file around
08:22
<charlvn>
asmodai: a state file could also be a good idea for when you need to turn off or restart your phone
08:22
<charlvn>
so that could serve two purposes
08:27
<asmodai>
charlvn: Guess I now know what to suggest to the Opera guys ;)
08:39
<charlvn>
asmodai: good idea; this is going to become a critical feature moving forward if we want to move the world from "traditional" mobile apps to html-based mobile apps
08:40
<asmodai>
I find myself often looking up some things in tabs while lying in bed to look at during the day
08:40
<asmodai>
and then you find your tabs gone XD
08:50
<annevk>
morning
08:56
<asmodai>
Hey annevk
08:58
<charlvn>
morning annevk
08:58
<annevk>
foolip
08:58
<annevk>
oops
08:59
<asmodai>
Now he's calling us fools
09:01
<charlvn>
foolip - a cross between a fool and a lip
09:03
<annevk>
so despite all the arguments we had on the list, web intents is still using <intent>?
09:03
<annevk>
blargh
09:15
<zcorpan>
matjas: no utf-8 love for the binary convertor?
09:16
<jgraham>
There was some blog post from a Mozilla guy going "hey, we could perhaps just replace all of this with messaging". Did nothing come of that?
09:16
<matjas>
zcorpan: i could make one that uses 24 bits per glyph
09:16
<zcorpan>
matjas: that's not how utf-8 works :-)
09:17
<matjas>
no, but it’s easier :)
09:17
<zcorpan>
booo :-P
09:48
<annevk>
I wonder if Adam Klein is going to provide an updated patch for mutations...
09:54
<foolip>
charlvn, it's a cross between foo and philip :)
10:18
<charlvn>
foolip: that sounds fubar :P
10:27
<foolip>
charlvn, why thank you :)
10:31
<annevk>
Timing-Allow-Origin header oh god
10:48
<annevk>
updated XHR BOM handling and defined text/html encoding details
11:13
<annevk>
anyone opposed to XHR defining the HTTP behavior of data URLs?
11:14
<jgraham>
Wild guess: Julian
11:15
<annevk>
nah
11:18
<annevk>
http://webwereld.nl/nieuws/109547/eu-hof-verbiedt-copyright-filterplicht-voor-hosters.html
11:18
<annevk>
sweet
11:18
<annevk>
zo xs4all piratebay ban is ruled obsolete now?
11:18
<annevk>
oh hosting
11:19
<annevk>
meh
11:29
<charlvn>
annevk: yeah i don't think that applies to ISPs
11:30
<charlvn>
i don't care much about the pirate bay but the concept of having sites banned is just so anti-western it's histerical
11:36
<charlvn>
heh i can actually open thepiratebay.org at work, just not at home (on ziggo) :P
11:36
<annevk>
you're in the Netherlands these days?
11:36
<annevk>
o_O
11:37
<annevk>
sort of thought you'd be in South Africa still
11:37
<charlvn>
annevk: what is that supposed to mean? :P
11:39
<annevk>
unless you're a different charlvn, I'm just surprised
11:40
<charlvn>
annevk: nah it's the same me (i hope, otherwise i have another me running around somewhere)
12:17
<annevk>
maybe http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#data:-urls-and-http should be included in HTML?
12:17
<annevk>
or at least in HTML's fetching algorithm
13:11
<annevk>
https://www.w3.org/Bugs/Public/show_bug.cgi?id=16000 is mine
13:11
<annevk>
teehee
13:23
<Velmont>
16:45 < annevk> abarth: if you're not around I'll prolly check in "null" <<< As long as it's either "null" or "list-of-origins" I agree. I find it easier to be explicit in the spec, -- I've shown I'm not so good at looking up dependent specs. :-)
13:27
<MikeSmith>
made some updates to http://platform.html5.org/history/ today
13:29
<jgraham>
You've been editing history?
13:36
<annevk>
Velmont: it's null now
13:36
<annevk>
Velmont: well unique origin which becomes null when serialized
14:21
<annevk>
it would be nice if there was some URL hack to easily query bugs
14:21
<annevk>
e.g. w3.org/Bugs/open/xhr or some such for all open xhr bugs
14:21
<annevk>
bugzilla search is just awful
14:24
<charlvn>
@annevk instead of this? https://www.w3.org/Bugs/Public/buglist.cgi?product=WebAppsWG&component=XHR&resolution=---
14:26
<zcorpan>
MikeSmith: <!doctype html> was around june/july 2005
14:26
<annevk>
that's reasonably short
14:27
<zcorpan>
MikeSmith: there was <!doctype html5> also for a very short period, iirc
14:27
<jgraham>
annevk: There is a REST API. Make your own
14:27
<jgraham>
Or steal http://shaver.off.net/diary/2011/01/22/i-made-a-thing/
14:28
<[tm]_>
zcorpan: ok
14:28
<[tm]_>
will update it later
14:29
<annevk>
whoa
14:29
<annevk>
OS X Mountain Lion
14:29
<annevk>
I haven't seen any rumors thus far
14:29
<charlvn>
http://atomictango.com/wp-content/uploads/2009/08/Mac-OSX-Cougar.jpg
14:39
<jgraham>
annevk: Oh look they are only letting signed apps run by default. That seems about right given there are 3 years for mpligrim's prediction to come true
14:40
<jgraham>
(and only app-store apps as a non-default option)
15:22
<StoneCypher>
i'm having some trouble with seams between polygons in canvas. stroking the edges isn't an option; they have complex fills. expanding the polygons also isn't an option. do i have a better answer than to supersample?
15:26
<Philip`>
StoneCypher: If the polygons never overlap, maybe you could draw them onto a black background with globalCompositeOperation='lighter'?
15:26
<StoneCypher>
unfortunately that doesn't work in chrome or opera
15:26
<Philip`>
Otherwise I guess antialiasing will always cause some inaccuracies
15:26
<StoneCypher>
er, no
15:26
<StoneCypher>
lots of canvas-style systems don't have this problem
15:27
<StoneCypher>
computer graphics had this worked out in the 1980s
15:27
<StoneCypher>
and i don't think that the w3 would release a graphics specification that made high quality graphics impossible
15:27
<StoneCypher>
this is a 101 topic, like corner mitering
15:31
<Philip`>
I thought most techniques required some extra buffer space (for supersampling at least some components of the pixels), which doesn't fit with canvas's model of a single 32-bit bitmap
15:31
<annevk>
time to stock up on yoghurt and eggs
15:32
<StoneCypher>
Philip`: lol no
15:32
<Philip`>
Otherwise it seems impossible to distinguish between a pixel drawn by an earlier polygon that is opaque and 50% covered, and a pixel that is fully covered and drawn with 50% alpha
15:32
<StoneCypher>
Philip`: and also, canvas doesn't specify the memory model, and layered patches are exactly how chrome works
15:32
<Philip`>
(assuming they're being draw in independent operations)
15:32
<StoneCypher>
er, it's really not.
15:32
<Velmont>
annevk: yoghurt? tomatoes and eggs, isn't it?
15:33
<StoneCypher>
antigrain geometry does it with constructive stacking. flash does it with supersampling. etc.
15:33
<StoneCypher>
and frankly
15:33
<StoneCypher>
it wouldn't be that hard to believe that there's a way to render multiple polys at once
15:33
<StoneCypher>
or something i just don't know about
15:33
<annevk>
Velmont: thanks for the reminder, should get tomatoes too
15:33
<StoneCypher>
but i cannot for the life of me imagine that the w3c said "let's make a vector engine that is fundamentally unable to render geometry that's touching"
15:34
<StoneCypher>
the idea that a vector engine can't represent two shapes next to one another correctly
15:34
<StoneCypher>
that violates the very most basic usage of vector graphics
15:34
<StoneCypher>
in a hilariously broken way
15:34
<Philip`>
(The W3C didn't really have anything to do with the design)
15:34
<StoneCypher>
i'm really not interested in nitpicking who it was that didn't actually make a mistake this obvious.
15:34
<Philip`>
(It was mostly just Apple, then incrementally extended by various people)
15:34
<StoneCypher>
*apple*U ?
15:35
<StoneCypher>
well fuck, then yes, it probably is this broken
15:35
<StoneCypher>
god damnit, i have to throw this whole thing away, then. >:(
15:35
<StoneCypher>
who makes a vector geometry standard that can't handle basic vector geometry
15:36
<StoneCypher>
this is an embarrasment.
15:36
<StoneCypher>
and don't give me that "it works in passes, it can't work otherwise" answer again, because 1) no it doesn't, and 2) yes it could
15:36
<StoneCypher>
here's chrome working exactly the way you say it doesn't: http://neugierig.org/software/chromium/notes/2010/07/clipping.html
15:36
<Velmont>
Don't see the need to be so angry.
15:36
<StoneCypher>
why not
15:37
<StoneCypher>
the whole web is, apparently, moving to a broken standard
15:37
<StoneCypher>
one that most graphics people in the 1980s knew how to get around
15:37
<StoneCypher>
anyway, i'm not angry
15:37
<Velmont>
Well, I'm quite sure one guy being angry on an IRC channel isn't really going to help that.
15:37
<StoneCypher>
please stop playing freud with strangers
15:37
<StoneCypher>
thanks
15:38
<Velmont>
No, not angry, but ... some less intense word.
15:38
<annevk>
upset
15:38
<Velmont>
Yes
15:38
<Velmont>
That :-)
15:38
<StoneCypher>
i can see the two of you are good at reading emotions.
15:38
<annevk>
but euh, broken standards?
15:38
<annevk>
film at 11
15:38
<StoneCypher>
yes, that's how we get places like this, is people saying "i don't really care that this is fundamentally broken, and you shouldn't either."
15:39
<StoneCypher>
not really interested in people being not interested.
15:39
<annevk>
StoneCypher: anyway, if you want vectors, wouldn't it be better to use SVG?
15:39
<annevk>
StoneCypher: <canvas> is for bitmap graphics
15:39
<StoneCypher>
i don't want vectors. i want raster.
15:39
<jgraham>
StoneCypher: I thought it was rather close to the graphics model on OSX
15:39
<annevk>
mkay
15:39
<jgraham>
Maybe I am wrong
15:39
<StoneCypher>
jgraham: yeah, that's why when they said it was apple i suddenly said "shit, maybe it is this broken"
15:39
<StoneCypher>
jgraham: apple's graphics model is the only major graphics model on the market that has this problem
15:39
<Philip`>
StoneCypher: That post says "the layer code never worked for <canvas> at all. Canvas calls don't manage the clipping stack as WebKit does. In fact, canvas code might not ever bother to pop the clipping stack. So, for canvas, we still use immediate, 1-bit clipping.", so it sounds like it's not compatible with how people currently use canvas, and anyway it's described as "a hack" and "falling apart" so it doesn't sound like an ideal model
15:40
StoneCypher
sighs
15:40
<StoneCypher>
Philip`, that's why i gave you that post
15:41
<StoneCypher>
was to show that layer clipping was indeed a valid case, which is what you had just said was not
15:41
<StoneCypher>
honestly i just wanted to know if anyone knew of a way to deal with this
15:41
<StoneCypher>
not to get into a series of mutually incompatible excuses for it being broken
15:42
<StoneCypher>
and for all of your discussions of how angry or upset you imagine i am, what you're actually misreading is frustration at people's rush to say things that have nothing to do with what i'm actually asking, which distracts from that i have a practical problem and someone in here may already have dealt with it
15:42
<StoneCypher>
there was someone trying to help at one point
15:43
<StoneCypher>
please stop bikeshedding so that that may return, thank you
15:43
<jgraham>
StoneCypher: If you can suggest a backwards-compatble fix for the problem, please propose it on the maioling list along with your use case
15:43
<StoneCypher>
jgraham: backwards compatible is probably not possible
15:43
<StoneCypher>
but there may be something in place already
15:44
Philip`
was mostly just wanting to learn what ways the problem could be solved in, and whether any would be feasible to fit into the current canvas compatibility constraints
15:44
<StoneCypher>
well
15:44
<StoneCypher>
the general hacks to dealing with something like this are to expand the polygons (not possible for me) or to scale the canvas, render at a higher scale, then scale back down (doesn't fix the problem entirely, and very cpu expensive)
15:45
<StoneCypher>
actually
15:45
<StoneCypher>
there is a reasonable backwards compatible fix
15:46
<Philip`>
I guess you'd also want to disable the standard antialiasing when drawing at the higher scale (else you'll still get the seams)?
15:46
<StoneCypher>
just add a way to lock the canvas against geometric writes which either flushes on first non-geometric write or call
15:46
<StoneCypher>
that way the geometries can be applied at once and the only problem is getting the user to write their shared seams in a single batch
15:46
<StoneCypher>
still causes problems if you have composite layering
15:47
<StoneCypher>
but it's a hell of a lot better than nothing
15:53
<StoneCypher>
oh, huh
15:54
<StoneCypher>
actually that might already exist
15:54
<StoneCypher>
it may be that you can just postpone the call to .fill()
15:54
<StoneCypher>
... nope :)
15:55
<Velmont>
And all browsers behave like that?
15:55
<StoneCypher>
there's a hack that works with three of the five
15:55
<StoneCypher>
but yes, without the hack, they all show the seams at varying levels
15:56
<Velmont>
I mean with the posponing on fill.
15:56
<StoneCypher>
oh. no, that doesn't work anywhere, i was just wrong
15:57
<Velmont>
OK. -- I might've thought someone had written it like that. It looked like a possible way to implement it.
15:58
<StoneCypher>
well it would be a smart way to write it
15:58
<StoneCypher>
and this makes it look like that's sane: https://developer.mozilla.org/samples/canvas-tutorial/6_1_canvas_composite.html
16:05
<StoneCypher>
i guess another sane way to fix this that would be ... not backwards compatible but backwards tolerant
16:05
<StoneCypher>
would be to make a new context type
16:05
<StoneCypher>
2d-procedural
16:05
<StoneCypher>
or something like that
16:06
<StoneCypher>
Velmont: would that be sufficient? 'cause that way nothing existing would break, and things could be adapted to the improved way with nearly zero effort
16:10
<jgraham>
I think you would need some major wins to get people on board with an entire new model
16:11
<jgraham>
Basically you woudl have to justify the cost of pulling people who would otherwise be working on, say, WebGL and making htem reimplement 2D canvas instead
16:11
<jgraham>
Plus the cost of retraining authors
16:11
<jgraham>
Plus the confusion
16:18
<Velmont>
It's sad that we didn't have it earlier. Having looked at it, I find the way the canvas model works now very strange and counterintuitive to how I thought it did.
16:20
<annevk>
damn it
16:20
<annevk>
forgot eggs amid all the yoghurt
16:20
<Velmont>
Getting a whole new context type will be seen as a quite intrusive and big thing, -- so I guess it'd meet a lot of opposition. Not that I know much about it.
16:20
<Velmont>
annevk: wth are you really doing? :P
16:21
<jgraham>
annevk: Did you remember tomatoes?
16:21
<annevk>
man, I fail at grocery shopping, does not get much sadder than that
16:21
<annevk>
I have some tomatoes
16:21
<annevk>
even onions
16:21
<jgraham>
Are they in the fridge?
16:21
<jgraham>
(the tomatoes)
16:21
<annevk>
tomatoes yes, onions no?
16:22
<jgraham>
Oh, you fail at storing tomatoes too then
16:22
<jgraham>
(it's OK I get that wrong quite often too)
16:22
<annevk>
they're the tiny tomatoes
16:22
<annevk>
man nobody ever taught me this stuff :)
16:23
<jgraham>
apparently the low fridge temperatures aren't good for the flavour-releasing compunds in the tomatoes
16:23
<jgraham>
No, I learnt this quite recently
16:23
<jgraham>
Which is why I still get it wrong quite often; habit
16:23
<StoneCypher>
jgraham: it wouldn't be an entire new model
16:24
<StoneCypher>
jgraham: it would just be adding two small concepts: delayed rendering of geometric primitives and a slight variant on the string used to get the context (which is how context is already meant to work)
16:24
<StoneCypher>
the only reason to do it at all is that the required change is not strictly backwards compatible
16:24
<jgraham>
StoneCypher: Could it be a mode on the existing context?
16:24
<jgraham>
Could we smuggle it in with path objects somehow?
16:24
<StoneCypher>
i don't know what a path object is.
16:25
<jgraham>
Is there a more creative solution?
16:25
<StoneCypher>
one, but it's not perfect
16:25
<StoneCypher>
what's a path object
16:25
<StoneCypher>
that might be a good answer
16:25
<jgraham>
They will be objects representing paths
16:25
<annevk>
jgraham: I'm taking out the tomatoes
16:25
<StoneCypher>
jgraham: beginPath, lineTo, closePath?
16:27
<jgraham>
StoneCypher: I am not entirely sure how it will work
16:27
<jgraham>
annevk might know better
16:27
<jgraham>
or Hixie
16:27
<annevk>
new Path()
16:28
<annevk>
then you have some methods on the Path() object to describe the path
16:28
<StoneCypher>
jgraham: i mean the change i'm considering is simple. instead of .getContext('2d'), .getContext('2d-delayed'), then add two methods, .setDelayedFill(boolean) and .fillNow()
16:28
<StoneCypher>
or whatever
16:28
<annevk>
then you invoke fill(path) or some such
16:28
annevk
forgot the details
16:28
<StoneCypher>
oh.
16:28
<jgraham>
If you have path objects you can delay the rendering, right?
16:28
<StoneCypher>
well that, if you could fill multiple at once, would be enough
16:28
<StoneCypher>
jgraham: well you need that, but you also need the ability to fill a batch instead of a single object
16:29
<StoneCypher>
if there was canvasContext.fillMany(Array)
16:29
<StoneCypher>
that'd do the job
16:29
<StoneCypher>
annevk: is that sensible?
16:29
<annevk>
you should probably email the list
16:29
<jgraham>
StoneCypher: Then I suggest you mail the list
16:29
StoneCypher
is brand new to canvas
16:29
StoneCypher
will have to find the list
16:29
StoneCypher
just started learning canvas yesterday
16:30
<annevk>
I don't know man, better to email the list and add something like "Path object feedback"
16:30
StoneCypher
really wants this to be an already-solved problem that's just obscure
16:30
<annevk>
StoneCypher: http://www.whatwg.org/mailing-list#specs
16:30
<StoneCypher>
it seems like such an unlikely omission
16:30
<StoneCypher>
annevk: thanks
16:30
<annevk>
StoneCypher: if it's solved someone will point it out
16:30
<StoneCypher>
part of the reason i'm sad is Hixie usually knows exactly what i'm doing wrong
16:30
<StoneCypher>
granted it's been two years since i've needed to ask him
16:31
<StoneCypher>
but
16:31
StoneCypher
shrugs
16:31
<StoneCypher>
i'll get like three words into typing the question, won't have even hit return yet, and he'll answer
16:32
<StoneCypher>
oh well, maybe the mailing list has an idea :)
16:32
<StoneCypher>
annevk, jgraham, Velmont: do you see any immediate problems with a batch fill call for multiple path objects?
16:32
<StoneCypher>
Philip` too
16:32
<StoneCypher>
and then if not, thank you each for thinking this over with me
16:32
<annevk>
no, but then Path is still theoretical :)
16:32
<StoneCypher>
oh
16:33
<annevk>
I mean it's coming soonish, but there's no spec yet
16:33
<StoneCypher>
theoretical as in "this might exist" or theoretical as in "this will exist in the future"
16:33
<StoneCypher>
ah.
16:33
StoneCypher
really wanted this to work in chrome, because chrome's canvas is like 8x faster than the other browsers :(
16:35
<StoneCypher>
ok, i'm'a go have lunch and see if i can think of a way through this.
16:35
<StoneCypher>
thanks each
16:35
<AryehGregor>
MikeSmith, they're not nearly as complete or correct as I'd like, but yeah, I have some. E.g., http://w3c-test.org/webapps/DOMCore/tests/approved/interfaces.html
16:36
<StoneCypher>
ooh.
16:36
<StoneCypher>
can tests be donated to that?
16:36
<annevk>
yes
16:36
<StoneCypher>
:D
16:36
<StoneCypher>
how please?
16:36
<MikeSmith>
AryehGregor: excellent, thanks
16:36
<annevk>
StoneCypher: http://lists.w3.org/Archives/Public/public-webapps-testsuite/
16:37
<annevk>
StoneCypher: i.e. upload them somewhere (using the same testharness framework) and point them out on the list, or attach them to your email or some such
16:37
<StoneCypher>
it may be productive to set up a dvcs for that, so that people can donate tests more trivially (pull request in git terminology)
16:37
<annevk>
StoneCypher: they're in dvcs
16:37
<StoneCypher>
orly. are pull requests (or equivalent) a valid donation method?
16:37
<annevk>
StoneCypher: http://dvcs.w3.org/hg/webapps/ iirc
16:38
<annevk>
http://dvcs.w3.org/hg/webapps/file/tip/DOMCore/tests
16:38
<jgraham>
We haven't got them on github yet
16:38
<StoneCypher>
:D :D :D
16:38
<jgraham>
We probably should
16:38
<StoneCypher>
i would think github a great idea, just because it lowers the conceptual barrier to entry for so many people
16:38
<StoneCypher>
even though it's functionally equivalent
16:39
<annevk>
yeah, we should move all specs there too
16:39
<StoneCypher>
anyway, lunch and think-time
16:39
<StoneCypher>
bbl
16:39
<annevk>
kind of annoying as the W3C is using Mercurial at the moment
16:39
<annevk>
but it can be solved somehow
16:39
<MikeSmith>
we can easily mirror repos to git
16:39
<MikeSmith>
at github or wherever else
16:39
<jgraham>
For some value of easilly
16:39
<MikeSmith>
well, I can do it
16:40
<MikeSmith>
so that by definition means it's easy
16:40
<annevk>
MikeSmith: sweet
16:40
<jgraham>
But really if we are using github, we want to be able to accept pull requests
16:40
<MikeSmith>
yeah
16:40
<MikeSmith>
can do it both ways
16:40
<jgraham>
And afaict that is the point at which it all goes to hell
16:40
<annevk>
I have to go for a bit, but I'm definitely interested in working on this
16:40
<jgraham>
MikeSmith: Can one pull to a non-master branch in github?
16:40
<annevk>
making it easier for people to hack on specs / tests
16:41
<MikeSmith>
well, we can push from git repo to the mercurial one
16:41
<MikeSmith>
jgraham: dunno
16:41
<jgraham>
MikeSmith: In theory, or you got it working?
16:41
<MikeSmith>
but don't know that we'd need to
16:41
<MikeSmith>
well
16:41
<MikeSmith>
in theory
16:41
<jgraham>
MikeSmith: The only functional setup I remember seeing is doublec's Mozilla one
16:41
<annevk>
specs with http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png
16:42
<jgraham>
http://www.bluishcoder.co.nz/2011/04/16/my-git-workflow-for-mozilla-development.html
16:43
<jgraham>
The noticable thing about that setup is that he *never* commits to master
16:43
<jgraham>
(in git)
16:43
<jgraham>
I know in theory hg-git allows this to work, but it seems to be fragile as hell
16:44
<jgraham>
So if the flow of patches to master is always from hg to git it is rather simple
16:44
<jgraham>
(to keep the repos in sync)
16:44
<AryehGregor>
jgraham, I'm not clear on if you want me to modify my patch and resubmit it, and if so, what changes you want. Do you want me to add protection against infinite recursion? It seems like it's not worth the added code complexity to handle it -- the caller would have to be fairly pathological to trigger it, and it would be trivially diagnosed by going into a debugger, waiting a little while, and hitting "pause".
16:45
<jgraham>
AryehGregor: I think it is OK as is
16:45
<jgraham>
Unless you can think of a design that isn't goign to cause the horrible API surface area explosion we are currently seeing
16:45
<AryehGregor>
Also: I use hg-git to convert git to hg for the editing spec repo. I just never change the hg version; I don't even pull from git to hg. I just do a fresh hg clone of the git repo when I want to publish.
16:46
<AryehGregor>
jgraham, well, we could do like Mozilla and just pare back to assert_true() and assert_equals() and let everyone use assert_true() for everything nontrivial.
16:46
<jgraham>
AryehGregor: That works as long as no one ever touches the hg version
16:46
<AryehGregor>
The problem is it doesn't print the values nicely.
16:46
<jgraham>
I assume that won't be the case here
16:46
<AryehGregor>
jgraham, yep. Fortunately, I'm the only one with commit access to my hg version.
16:47
<jgraham>
AryehGregor: Having only two functions is even worse :)
16:47
<AryehGregor>
Well then, pick your poison.
16:48
<jgraham>
Well, it feels like there exist other parts of design space that we just didn't use e.g. assert_equals(actual, expected, comparator)
16:48
<jgraham>
where comparator is a function
16:48
<AryehGregor>
In mochitests, people seem not to care much about informative error messages. They're written by and for Gecko developers, so it's assumed to be fine if you have to hunt through the source code to find the failure.
16:48
<jgraham>
and you provide some built in functions
16:48
<AryehGregor>
Well, as the saying goes: the solution to any problem in computer science is more abstraction.
16:49
<jgraham>
Well that particular solution has the nice property that assert_array_approx_equals becomes assert_array_equals(expected, actual, delta(0.01))
16:49
<jgraham>
rather than a whole new function
16:50
<AryehGregor>
And then every call needs to have four arguments instead of three? Or you want to autodetect the number of arguments?
16:50
<AryehGregor>
If you're making an optional third argument anyway, why not make it a number for now, instead of requiring the delta()? Are there other functions we'd want just now?
16:51
<jgraham>
Well apparently you want a comparator that checks expected.indexOf(actual) != -1
16:51
<jgraham>
So that's two plus normal comparison
16:52
<AryehGregor>
How about instead of passing a function, you just pass a boolean?
16:52
<jgraham>
I can't work out what the boolean would do :)
16:52
<AryehGregor>
So instead of assert_equals(foo, bar, function(foo,bar){return bar.indexOf(foo) != -1}, desc), just assert_equals(foo, bar, bar.indexOf(foo) != -1, desc).
16:52
<AryehGregor>
It would basically be assert_true(bar.indexOf(foo) != -1, desc).
16:53
<AryehGregor>
Except with foo and bar used in printing the message.
16:53
<jgraham>
Well the point is that you would provide the comparison functions
16:53
<AryehGregor>
Yeah, but why not just have the caller do the comparison instead of passing a function whose only role is to be called with two known arguments?
16:54
<AryehGregor>
I guess it might be shorter if the arguments are complicated.
16:54
<jgraham>
Because it means that assert_array_whatever is just a map()
16:54
<AryehGregor>
. . . and?
16:55
<jgraham>
So you don't have to implement seperate API for the object case, the array case, and the single argument case
16:55
<jgraham>
You should end up with N+M functions rather than N*M
16:56
<AryehGregor>
Is N*M functions really a problem? It's morally equivalent to passing one of the arguments as part of the function name.
16:56
<AryehGregor>
You could even autogenerate the functions if you like.
16:57
<jgraham>
Oh my, that sounds awful
16:57
<AryehGregor>
["", "_array", "_object"].forEach(function(s) { window["assert" + s + "_equals"] = function(....
16:57
<AryehGregor>
Well, I think we knew before now that our stylistic preferences differ. :)
16:57
<jgraham>
I agree from the end user point of view it doesn't make that much difference. Unless you want to do something more complex where I guess it could matter
16:59
<AryehGregor>
You can always fall back to assert_true().
16:59
<jgraham>
e.g. if you had some function that could either return x in px or y in pt, instead of hardcoding x and y in an array you could pass a function that calculates y given x
16:59
<jgraham>
Of course, assert_true is always there as a last resort
17:00
<AryehGregor>
80/20 rule -- assert_true should be fine for anything that's not particularly common.
17:01
<jgraham>
It seems somewhat bad to make the complicated cases the ones that are hardest to read and get the worst error messages
17:01
<jgraham>
Anyway I am not particularly attached to this idea
17:01
<jgraham>
Or, I wish I had used this design at the start, but I didn't
17:01
<AryehGregor>
"No consensus positions were found, and all parties left the telecon frustrated. Time estimates for finishing work on Transforms however were agreed to be within 2-3 months if appropriately prioritized. (This of course assumes future telecons are dedicated to making progress rather than arguing process.)"
17:01
<AryehGregor>
That sounds like the CSSWG, all right.
17:02
<jgraham>
So, no transforms for > 3 months then
17:03
<AryehGregor>
No unprefixed transforms.
17:03
<AryehGregor>
Which is ridiculous.
17:04
<AryehGregor>
Since the syntax has been completely stable for like a year.
17:04
<AryehGregor>
Interop is sure a heck of a lot better than, say, CSSOM.
17:06
<othermaciej>
I'm surprised that some of the people who opposed unprefixing transforms were also among those who said they thought they may need to implement widely used -webkit properties in a non-WebKit engine
17:06
<othermaciej>
it goes to show how much faith there is in the "unprefix at CR" rule, even though it is pretty arbitrary
17:10
<jgraham>
othermaciej: Only Sylvian or am I misreading?
17:11
<othermaciej>
I guess it was hard to follow who else was opposed
17:11
<othermaciej>
fwiw I think "drop prefix once syntax is stable enough for backwards compat" is a much more sensible rule than "drop prefix after entering CR", both in general and in this specific case
17:12
<othermaciej>
not sure if it is worth posting to www-style since I am not technically a CSS WG member
17:13
jgraham
predicts you would be told that CR is the point at which "syntax is stable enough for backwards compat"
17:16
<wilhelm_>
Are minutes available anywhere?
17:19
<othermaciej>
jgraham: given that specs sometimes drop out of CR and then completely change syntax or even drop whole properties, I think that is demonstrably not the case
17:22
<annevk>
when two vendors ship, you better get your story straight or just spec what they do
17:22
<jgraham>
othermaciej: Given that I think the whole Process is a work of fiction, I'm not going to disagree.
17:26
<MikeSmith>
http://www.w3.org/News/2012.html#entry-9363
17:26
<annevk>
http://www.w3.org/2002/ws/soapjms/ o_O
17:27
<jgraham>
Funny how SOAP makes you feel dirty
18:34
<StoneCypher>
[11:42] <jgraham> MikeSmith: The only functional setup I remember seeing is doublec's Mozilla one
18:34
<StoneCypher>
doublec plays here?
18:34
<StoneCypher>
i haven't talked to chris in ages
18:42
<gsnedders>
http://googlecode.blogspot.com/2012/02/tech-preview-of-chromium-with-dart.html
18:50
<bga>
good news
18:50
<smaug____>
sad
19:01
<TabAtkins>
othermaciej: Sylvain's precise position was, apparently, that he supported implementing the *non-standard* (but widely-used) -webkit things, but he didn't support recognizing the -webkit prefix on existing standardized properties.
19:01
<TabAtkins>
This was not communicated clearly during the meeting, but came out during the telcon yesterday.
19:01
<othermaciej>
does that mean they'd delete support for -webkit things as soon as someone writes an Editor's Draft?
19:01
<TabAtkins>
I don't know.
19:02
<othermaciej>
it sounds suspiciously like "I support a rule that coincidentally matches what Microsoft cares about but not what Mozilla cares about"
19:02
<TabAtkins>
I don't fully understand Sylvain's position, just that it's at least that much delta from Tantek's.
19:04
<bga>
i wait when ms add C# as scriptling lang to ie :)
19:04
<gsnedders>
Why add a single CLR language? :P
19:05
<bga>
or whole NET, yeah
19:05
<bga>
will be cool
19:05
<TabAtkins>
AryehGregor: Please note that this was not "the CSSWG" failing. It was particular members specifically resisting.
19:09
<Philip`>
"Both the Dart VM and modern JavaScript engines are first-class targets for Dart." - I wonder if that means they won't do blog posts and press releases saying how Chrome is ten times faster than any other browser on some application that happens to be written in Dart, or if the Dart VM will instead end up being more first-class than the JS translator
19:14
<jgraham>
Philip`: You so funny
19:15
<gsnedders>
Philip`: Will you marry me, your wit never ceases to amaze?
19:15
<jgraham>
TabAtkins: You do know though; Microsoft never drop support for things that they have released
19:16
<jgraham>
Because in 20 years time some fortune 100 company will have an intranet running IE10 on Windows Vista that depends critically on -webkit-something
19:16
<TabAtkins>
Probably, yeah.
19:30
<AryehGregor>
TabAtkins, if the process of the CSSWG allows such particular members to successfully resist, the process of the CSSWG is at fault and the CSSWG as a whole is accountable (even if some individual members aren't).
19:34
<TabAtkins>
The entire point of a standards body is to find consensus between members. It can't always do so. So, we must take action as individuals.
19:37
<jgraham>
Uh, no, the point of a standards body is to create standards
19:37
<jgraham>
Consensus is just a common way to achieve that
19:37
<AryehGregor>
The entire point of a web standards body is to ensure interoperability between browsers. Browsers implementing properties with names that work only in those browsers is ipso facto a failure of standards development.
19:38
<AryehGregor>
Consensus is a lousy way to make good standards, fiat works much better.
19:38
<AryehGregor>
Or arbitration, let's say.
19:38
<jgraham>
AryehGregor++
19:38
<AryehGregor>
An individual can make compromises much more efficiently than a group voting on something.
19:39
<AryehGregor>
The compromise should be between major implementers, without consideration for anyone else, as far as implementer requirements go.
19:39
<AryehGregor>
That's a grand total of roughly three parties, maybe four if you're generous.
19:39
<AryehGregor>
Sometimes they won't agree on anything, but then discussion usually doesn't help. Resolve the issue -- either spec something or leave it undefined, but move on.
19:39
<AryehGregor>
The CSSWG tends to rehash the same issues endlessly without making anyone happy.
19:40
<AryehGregor>
Which leads to paralysis.
19:40
<AryehGregor>
The fact that there are about a million specs written by people who don't coordinate adequately and aren't working within a well-defined framework for rendering extensions doesn't help.
19:41
<AryehGregor>
(the framework for syntax extensions is good, but not layout)
19:46
<jwalden>
discussion seemed to be smashingly successful for the video codec issue
19:46
<AryehGregor>
Right, in which case the right answer is to leave it undefined and move on.
19:46
<AryehGregor>
No point in dwelling on it.
19:47
<AryehGregor>
WebM might win in a year or two, but not because of discussion.
19:51
<doublec>
StoneCypher: hi
20:25
<TabAtkins>
The three implementors you mention are precisely the ones that aren't agreeing. Or rather, one isn't agreeing with the other two.
20:29
<AryehGregor>
In the case of prefixes, they really don't need to agree. They can just independently decide whether to unprefix.
20:30
<TabAtkins>
I agree.
20:30
<AryehGregor>
FWIW, from the vote it looked like different WebKit developers had different opinions, so not sure what side you count them as.
20:30
<TabAtkins>
Apple was on one side, Chrome was on the other.
20:36
<jgraham>
wrt prefixes the problem is exactly that the standards goup is rying to maintain a highly unstable equlibrium
20:36
<AryehGregor>
So Mozilla and Google should unprefix, Microsoft and Apple don't have to if they don't want to. Problem solved.
20:36
<jgraham>
*group
20:36
<Wilto>
Woah, I showed up just in time. Everything is solved forever!
20:44
<jgraham>
Wilto: Not everything maybe. But I am getting the experience of being the choir whilst AryehGregor preaches. And given my horrible singing voice and general tone-deafness, being in a choir is a new experience for me!
20:44
AryehGregor
is also not particularly musical :(
20:44
<Wilto>
I’ve just resolved not to use the internet anymore, me. PROBLEM(S) SOLVED
20:46
<gsnedders>
AryehGregor: You should do a sing-along Sound of Music!
20:46
gsnedders
hides from jgraham
20:47
<Wilto>
The hills are alive with the sound of markup.
20:55
<TabAtkins>
AryehGregor: Any idea what the interop story is for Transitions/Animations?
20:55
<AryehGregor>
TabAtkins, not a clue.
20:55
<AryehGregor>
I'm just starting to poke at tests.
20:58
<TabAtkins>
kk.
20:58
<TabAtkins>
Also, <3 for your testing.
21:01
AryehGregor
is currently working on porting a Gecko transition test file to be cross-browser and based on testharness.js
21:06
<AryehGregor>
Transitions are complicated. I don't like them. :(
21:06
<AryehGregor>
Transforms are simple. :)
21:06
<TabAtkins>
Learn to love the third dimension of time.
21:07
<AryehGregor>
Transforms already have four dimensions.
21:07
<AryehGregor>
Without time.
21:07
<TabAtkins>
Four?
21:07
<AryehGregor>
Well, kind of.
21:07
<AryehGregor>
I mean, matrix3d() is 4x4.
21:07
<AryehGregor>
The fourth coordinate isn't spatial or temporal, but it's there.
21:07
<TabAtkins>
But it has 3d in its name!
21:07
<TabAtkins>
QED
21:08
<AryehGregor>
Admittedly, it's a representation of something resembling three-dimensional projective space with four coordinates, so there are really only three *dimensions*.
21:08
<AryehGregor>
(it's not quite regular old projective space)
21:08
<AryehGregor>
(it has an origin, and (x, y, z, w) !~ (-x, -y, -z, -w))
21:26
jgraham
wonders what !~ is
21:26
<AryehGregor>
"not equivalent"
21:27
<jgraham>
Ah
21:27
<jgraham>
That makes more sense than "no of the same order of magnitude as" :)
21:27
<AryehGregor>
In projective space, one normally says that (x1, ..., xn) ~ (y1, ..., yn) if there exists some nonzero t so that (t*x1, ..., t*xn) = (y1, ...., yn).
21:27
<AryehGregor>
In 3D transform space, it seems like this only holds for positive t, not nonzero t.
21:28
<jgraham>
I imagine there is some great reason one has 4 coordinates to describe 3 dimensions, but I have no idea what it is
21:28
<AryehGregor>
P^(n - 1)(R) is defined as (R^n \ {0})/~ for the above ~.
21:28
<AryehGregor>
Perspective, basically.
21:28
<AryehGregor>
It's a clever trick.
21:36
AryehGregor
wonders why people mistype his name as Areyeh
21:36
<AryehGregor>
More than a few people have done that.
21:36
<AryehGregor>
Why that specific misspelling?
21:38
<StoneCypher>
it's just another english transliteration
21:38
<StoneCypher>
also it's phonetically how an american would spell that sound
22:03
<karlcow>
MikeSmith: for http://platform.html5.org/history/ do you consider SVG 1.0 be part of it? http://www.w3.org/TR/SVG10/
22:04
<heycam>
depends what "new" means
22:04
<shepazu>
depends what "means" means
22:05
<MikeSmith>
karlcow: really so far I've only been adding milestones from WF2 and Web Apps 1.0
22:05
<karlcow>
depends depends
22:05
<MikeSmith>
I've not even added any CSS3 stuff
22:05
<karlcow>
ok MikeSmith I was not sure about the scope of the list
22:05
<MikeSmith>
I think I will leave those to somebody else who knows that history better
22:07
<shepazu>
MikeSmith: who maintains http://platform.html5.org/ ?
22:10
<annevk>
http://imgur.com/urWHb man
22:10
<annevk>
now that's a cool suit to have
22:11
<StoneCypher>
is that a miyazaki creature?
22:11
<StoneCypher>
that looks like it belongs in totoro or something
22:12
<annevk>
that is Totoro
22:12
<StoneCypher>
oh.
22:12
<StoneCypher>
see 'cause i haven't actually seen totoro, only posters
22:12
<StoneCypher>
huhuhu
22:12
<annevk>
worth watching
22:12
<StoneCypher>
yeah i just haven't gotten around to it, i've seen most of his other work
22:12
<StoneCypher>
adore mononoke hime
22:12
<StoneCypher>
and nausicaa
22:13
<annevk>
nausicaa is cool
22:13
<annevk>
I really liked that one
22:14
<Velmont>
<3
22:14
<StoneCypher>
kiki might be my favorite
22:14
<shepazu>
nausicaa was the first miyazaki I ever saw, back when I was a kid, before I had any idea what anime was (it hadn't really reached the US yet)
22:14
<StoneCypher>
i cut my teeth on speed racer
22:14
<shepazu>
that sounds painful :)
22:14
<MikeSmith>
shepazu: the community maintains it
22:14
<StoneCypher>
then manzinger z, voltron and lupin the 3rd
22:15
<Velmont>
annevk: My gf have been making clothes for herself the last week (I got her, finally, after 3 years og nagging, a sewing machine). So when she saw me laughing at something, and looking at my screen, she said she could make me a suit like that :P
22:15
<annevk>
don't say no
22:17
<annevk>
in other news, DOM4 has mutation listener stuff embedded
22:17
<annevk>
first draft
22:17
<annevk>
euh mutation observer
22:17
<TabAtkins>
yay!
22:17
<smaug____>
reviewing needed :)
22:17
<smaug____>
callback is wrong...
22:18
smaug____
should file bugs
22:18
<annevk>
callback is right
22:18
<smaug____>
it is wrong :)
22:18
<smaug____>
it has never been right in the D4 draft
22:19
<annevk>
what exactly is wrong then?
22:20
<smaug____>
let me find the right syntax...
22:20
<smaug____>
it should allow { handleMutation: function() {} }
22:20
<annevk>
no it shouldn't
22:20
<annevk>
we had a long discussion on that
22:20
<annevk>
so yeah, not a bug
22:21
<smaug____>
I haven't seen such discussion about mutationcallback
22:21
<smaug____>
anyway, I'll implement { handleMutations: function() {} } :)
22:21
<TabAtkins>
It would be awesome if you didn't make unilateral changes in your impl that no one else wants.
22:23
<smaug____>
it would be awesome if specs wouldn't make the web APIs more inconsistent
22:23
<annevk>
pretty sure sicking won't allow it
22:23
<TabAtkins>
{ handleMutations: ... } isn't consistent anyway. If you're making that argument, implement as { handleEvent: ... }
22:24
<smaug____>
handleEvent doesn't make any sense
22:24
<TabAtkins>
+1
22:24
sicking
agrees with smaug
22:24
<sicking>
i think it should be onmutation
22:26
<jgraham>
oh, please not this again
22:45
<sicking>
i do however think it's more important to make an API good, than to make it consistent with existing stuff
22:45
<sicking>
especially since we hear nothing but complaints about how much the DOM sucks
23:45
<annevk>
le sigh
23:51
<MikeSmith>
le un atre shitstorm