00:22
<hober>
Hixie: here
00:23
<TabAtkins>
hober: Lunch sometime next week with Hixie and me (and tantek)?
00:23
<hober>
sure
00:23
<TabAtkins>
To talk about CSS and <dialog>/fullscreen?
00:23
<TabAtkins>
Kk, choose a date/place.
00:23
<hober>
i can head up to google, or i could host you guys here
00:23
<tantek>
sounds like a good plan.
00:23
<hober>
(i could also head to moz, of course)
00:26
<tantek>
I have a feeling I know where Hixie wants to eat lunch :)
00:26
<hober>
tuesday 3 april & thursday 5 april work for me
00:27
<TabAtkins>
Let's do Tuesday then.
00:27
<hober>
i guess monday would work as well for that matter
00:27
<hober>
ok
00:29
<hober>
noon? any particular google cafeteria?
00:29
<TabAtkins>
Dont' care that much. Gotta get to my bus now, though, so I can't do any more planning tonight.
00:29
<hober>
k
00:30
hober
is already on my bus
02:59
<roc>
why don't people understand the little-endian typed arrays issue? it seems so obvious
03:06
<zewt>
seems like just kenneth who's digging in his heels
03:07
<Hixie>
roc: you mean the way that we've basically made the web little-endian?
03:07
<roc>
yes
03:07
<Hixie>
i pointed that out literally years ago
03:07
<Hixie>
nobody seemed to care then either
03:08
<roc>
I don't care
03:08
<zewt>
IMO, if he refuses to budge on this, someone should fork the typed array spec and fix it; this is too important to let it be broken by an inexperienced developer
03:08
<roc>
not caring is the correct response.
03:08
<Hixie>
seems kinda short-sighted but certainly making it little-endian explicitly would be better than making it machine-endian specific
03:09
<zewt>
that's what's going to happen anyway (if a real big-endian browser ever actually exists, which may never happen)
03:09
<Hixie>
(i don't know what else we could do; asking authors to check the endianness and byte swap themselves is a non-starter0
03:09
<Hixie>
s/0/)/
03:09
<zewt>
("real" meaning a nontrivial number of actual users use it, and it actually has modern API support, so this issue would have to be dealt with)
03:10
<roc>
if someone wants to push a big-endian architecture in the future, they need to give it byte-swapping loads and stores
03:11
<roc>
that's not hard at all, and would make the performance argument irrelevant as far as I can tell
03:11
<Hixie>
would the JS have to be different?
03:11
<zewt>
the performance argument is laughable
03:12
<roc>
Hixie: no, I think a big-endian machine could emulate little-endian behavior as far as JS could observe, quite easily
03:12
<zewt>
it goes like this: "every web developer should jump hoops for an optimization on a system that doesn't exist, may never exist, and which may not be a performance issue even if it ever does exist"
03:12
<roc>
:-)
03:13
<zewt>
Hixie: he's just saying (I think) that views would always be little-endian, hiding the big-endianness (as it should be)
03:13
<roc>
of course, even if you could persuade them to jump through those hoops, they'll probably get it wrong by accident anyway and will never know
03:13
<zewt>
the short-term problem is that we need big-endian views as well
03:14
<zewt>
and this make-believe of pretending views are native-endian means it's hard to get them
03:14
<Hixie>
so long as we're not exposing the machine's actual endianness, i don't really care what the api is
03:14
<Hixie>
native-endian just isn't workable
03:14
<zewt>
we all agree :)
03:14
<Hixie>
since there's no real big endian cpus out there, though, it doesn't much matter what the spec says
03:14
<zewt>
it's just the typed array editor who's (literally) refusing to even discuss it
03:15
<Hixie>
it'll be little-endian de facto
03:15
<zewt>
i know :)
03:15
<Hixie>
so why do you think the spec needs forking?
03:15
<zewt>
1: having a spec that's wrong is bad, and needs to be fixed, and 2: we need big-endian views, not just (de-facto) little endian views
03:17
<zewt>
but since the editor is pretending views aren't little endian, there's no way to get him to add big-endian oens
03:17
<zewt>
also ones
03:17
<roc>
I will attempt to reason with him
03:18
<zewt>
i don't think i can write a diplomatic mail at the moment since his reply irritated me so much ("this won't be changed, no matter what arguments anyone gives"--really?), so I'm not going to reply tonight
03:18
<Hixie>
just implement what you want, the spec will follow
03:20
<zewt>
i suppose for now I'll just suggest in the encoding API thread that it just make up its own big-endian view type; that's lame, though
03:28
<Sirisian>
Hixie, Are you busy?
03:28
<Hixie>
have to be offline every few minutes for a bit but if you don't mind occasional latency i'm around
03:28
<Sirisian>
Did you ever have a chance to look at this: https://www.w3.org/Bugs/Public/show_bug.cgi?id=11517 I replied to it a while back. not sure if the bug tracker sends out emails for replies to resolved bugs. I know it kind of seems unintuitive bug I think canvas could do well to implement simpler rendering methods that are capable of being more heavily optimized (that is no transforms). This goes along with the stencil operation bu
03:28
<Sirisian>
g. (I was going to post, but I accidently deleted a post I wrote a while ago that was basically using createImageData to make a binary stencil then allowing drawImageData to set it allowing for extremely optimized rendering). This original one: https://www.w3.org/Bugs/Public/show_bug.cgi?id=8396
03:28
<Sirisian>
I took that as a yes. :)
03:29
<Hixie>
i generally go through all the feedback (1000s of e-mails and 100s of bugs) on a first-come-first-served basis
03:29
<Hixie>
so i'm sure i'll get to the bug in time
03:30
<Hixie>
looking at it quickly now i see no clear indication of what you want me to do though
03:30
<Sirisian>
ah okay. No rush.
03:33
variable
wonders if any browser vendor would consider adding an option to ignore autocomplete=off
03:41
<Hixie>
Sirisian: if you want me to do something you'll have to make a clear statement in the spec, or when i do get to it i'll probably just mark it needsinfo :-)
03:42
<Sirisian>
I'm thinking
03:47
<Sirisian>
drawImageData would just render without transforms taking in a raw ImageData object and only reference binary alpha (no complex blending is possible) and can optionally reference a set stencil buffer (another ImageData object). Then if you want to use a stencil you'd create it like: var stencil = context.createImageData(width, height); An addition I'd like is the ability to define the number of channels, but it's not necessar
03:47
<Sirisian>
y. That would look like createImageData(width, height, channels) so a person can specify the number of channels to create. Same for getImageData(x, y, width, height, channels) where channels would be an array to select channels like [0] to create a 1 channel ImageData of just the red channel. Then you can bind a stencil via context.stencil = stencil; Then you can render using drawImage(ImageData) which the stencil would only
03:47
<Sirisian>
work with. When drawing it would only use the first channel of the ImageData rendering the pixel only if the stencil isn't 0 at that place. (Context2D's Clip would still exist for everything else). This allow implementors to specialize the rendering code for with and without a stencil.
03:47
<Sirisian>
I actually typed this all out before like a few weeks ago and closed my browser at work and forgot about finishing it.
03:52
<Hixie>
i don't understand
03:52
<Hixie>
what's the use case?
03:54
<Sirisian>
Mostly so you don't have to incur the cost of rendering to canvas objects when manipulating imageData then rendering it back to a form to get simple alpha blending. The stencil is just an optimized clip algorithm that would be useful when rendering textures in say a canvas UI.
03:55
<Sirisian>
s/form/canvas
03:56
<Sirisian>
I might have to think about it some more. I think I wrote something down a while ago that made me rethink the binary alpha blending.
03:57
<Hixie>
that's not a use case, that's a solution
03:57
<Hixie>
or an optimisation
03:57
<Hixie>
or something
03:57
<Hixie>
a use case is something like "i want a platform game"
03:58
<Hixie>
(and then you slowly work up to the actual concrete problem you've run into that canvas can't do yet)
04:07
<Sirisian>
Yeah I'll create some use cases and post a more thorough explanation tomorrow. Thanks for the feedback.
04:07
<Sirisian>
If I don't argue myself out of requiring it :P
04:08
<Hixie>
:-)
04:25
<Hixie>
how do i _create_ an svg matrix?
04:25
<Hixie>
SVGMatrix, that is
04:25
<heycam>
Hixie, you can't create a standalone SVGMatrix
04:25
<Hixie>
...oh.
04:25
<heycam>
they are only used as part of reflecting attributes
04:25
<heycam>
they will gain a constructor in SVG2
04:25
<Hixie>
well that's gonna put a crimp in my comprehensive use of it in canvas. :-P
04:26
<Hixie>
what's the constructor look like in svg2?
04:26
<heycam>
it's not there yet, but it will at the very least include [Constructor()]
04:26
<Hixie>
looks like all the methods on SVGMatrix return an SVGMatrix
04:26
<heycam>
and probably one that takes components
04:27
<heycam>
oh
04:27
<heycam>
wait
04:27
<heycam>
I misremembered
04:27
<heycam>
the way you create an SVGMatrix *currently* is: anSVGSVGElement.createSVGMatrix()
04:27
<heycam>
i.e. you need an <svg> DOM object around
04:28
<Hixie>
ah ok
04:28
<heycam>
of course that sucks, and that's why we'll have constructors soon
04:29
<Hixie>
seems a bit wasteful the way that if you want to create a matrix that skews, rotates, and scales, you need to create a whole bunch of temporaries
04:30
<heycam>
I think there are pros and cons for both designs -- certainly would be nice to be able to modify the existing matrix tho
04:31
<zewt>
both are pretty equally common in matrix apis, in my experience
04:31
<heycam>
I think dino's proposed matrix interface had methods that modify the existing matrix
04:31
<zewt>
with the return-a-new-matrix looking prettier and the in-place approach usually being faster
04:31
<zewt>
(whether it is in JS, on modern archs, i'm not sure)
04:37
<zewt>
i guess mobile means the ubiquity of "modern archs" are set back by a good number of years...
04:49
<rniwa>
yay! undomanager is finally on w3c repository :D http://dvcs.w3.org/hg/undomanager/raw-file/tip/undomanager.html
04:49
<Hixie>
publish an fsa :-)
04:50
rniwa
updates the date
05:09
<smaug____>
rniwa: so does the undomanager spec define how many managers per page?
05:10
<rniwa>
smaug____: it's supposed to be per document.
05:10
<rniwa>
smaug____: but i'm still not sure.
05:10
<rniwa>
smaug____: i'd have to talk with enrica about it at the contributor's meeting.
05:11
<rniwa>
smaug____: given that firefox and opera do this already, it might be okay for us to change our behavior
05:11
<rniwa>
smaug____: also from our last discussion, having one undo manager per editable field matches platform conventions
05:11
<Hixie>
on which platforms?
05:11
<smaug____>
Given this is a new API, I would prefer doing it right ;)
05:11
<rniwa>
smaug____: of course, you can also define undoScope attribute to define new undo manager
05:11
<rniwa>
smaug____: yes, that's why i haven't finalized it or started implementing it
05:12
<rniwa>
smaug____: editing is a mess
05:12
<rniwa>
smaug____: i don't want to create another mess :)
05:12
<smaug____>
it is
05:12
<rniwa>
Hixie: both Windows and Mac from what we could tell
05:12
<smaug____>
looks like the spec isn't too long... I'll try to look at is asap
05:13
<rniwa>
smaug____: yeah, I tried to be as brief as possible.
05:13
<Hixie>
rniwa: don't forget there are many other platforms that may act in weird ways... it's fine to optimise for windows and mac, but let's not make the other platforms impossible
05:13
<rniwa>
smaug____: as an implementor, i hate reading long specs
05:13
<rniwa>
Hixie: sure, but neither iOS or Android seem to support undos
05:13
<rniwa>
Hixie: what are other relevant platforms?
05:14
<smaug____>
linux
05:14
<Hixie>
some of the more esoteric platforms i was thinking of are those based on WordStar editing conventions, and Emacs. though in both cases i think they also do per-field undo.
05:14
<rniwa>
Hixie: i don't think emacs is a good example to follow here.
05:14
<Hixie>
it is if you're writing a web browser in emacs
05:15
<Hixie>
my point is "platform conventions" means the platform the browser is in, not "mac+windows"
05:15
<rniwa>
Hixie: sure.
05:15
<Hixie>
which today might usually be mac and windows, but the whole point of being platform agnostic is that we don't hardcode that kind of thing in :-)
05:15
<rniwa>
Hixie: but I don't think it makes sense for me to over-generalize the spec
05:15
<rniwa>
untile someone complains
05:15
<Hixie>
it'll be too late if you wait 20 years for a new platform to come along and someone to complain
05:16
<rniwa>
Hixie: i'm fine with making it platform dependent as well
05:16
<Hixie>
the web isn't supposed to be platform dependant
05:16
<rniwa>
Hixie: but then there will be script-visible behavior differences
05:16
<rniwa>
Hixie: huh? i don't understand your proposal then
05:17
<Hixie>
i'm saying the api should be designed such that it abstracts out platform differences and there are no script-visible differences regardless of what the platform's conventions are
05:17
<smaug____>
rniwa: I didn't see Hixie to propose anything ;)
05:17
<rniwa>
Hixie: we can either specify one behavior or make it platform dependent and define what behaviors are allowed
05:17
<rniwa>
Hixie: in this case, it's impossible.
05:17
<Hixie>
or at least, not any script-visible differences that can be distinguished from the user doing something
05:17
<Hixie>
rniwa: things that are impossible just take longer :-)
05:17
<rniwa>
Hixie: well but it is impossible in this case.
05:18
<rniwa>
Hixie: i don't want to explain all the details since i've already explained it once to smaug____ and Aryeh other day
05:18
<rniwa>
but there are many existing APIs that already expose this particular behavior.
05:18
<smaug____>
and to ehsan ...
05:18
<rniwa>
smaug____: right
05:19
<rniwa>
there's no point for us to add another layer of abstraction here since it's already visible to the scripts.
05:19
<smaug____>
but we can make the platform better now that we're adding a new API
05:19
<rniwa>
smaug____: we can specify it explicitly
05:20
<rniwa>
smaug____: or define possible behaviors that UAs can implement
05:20
<rniwa>
smaug____: the latter is harder but that'll let WebKit and Trident keep their current behavior
05:20
<MikeSmith>
rniwa: draft looks good -- I wouldn't worry much about adding more formatting to it at this point
05:20
<rniwa>
MikeSmith: ok.
05:20
<MikeSmith>
Hixie: fsa?
05:21
<Hixie>
final specification agreement
05:21
<MikeSmith>
ah
05:21
<Hixie>
the step in a CG that causes people to firmly commit their patents
05:21
<MikeSmith>
yeah
05:26
<MikeSmith>
Hixie: I just made date changes to the spec boilerplate
05:27
<MikeSmith>
so if you not otherwise planning to commit any more changes today, please push to W3C so that the W3C HTML and microdata specs get updated
05:28
<MikeSmith>
but if you are going to be committing again later today, then I'll just wait
05:31
<Hixie>
MikeSmith: roger, i can do that now
05:33
<Hixie>
MikeSmith: done
05:33
<MikeSmith>
thanks
05:33
<Hixie>
np
05:41
<rniwa>
Hixie, MikeSmith: speaking of which, I think our microdata APi implementation is near completion aside of vCard support and propertyNodeList
05:41
<rniwa>
(one of our contributors is working on propertyNodeList now)
05:42
<MikeSmith>
rniwa: excellent
05:42
<MikeSmith>
I think I'm cc'ed on the microdata api bug
05:42
<Hixie>
vcard support?
05:43
<MikeSmith>
rniwa: you know about http://w3c-test.org/html/tests/submission/Opera/microdata/001.html right?
05:43
<rniwa>
MikeSmith: oh nice
05:43
<rniwa>
MikeSmith: has opera implemented vcard support as well?
05:43
<MikeSmith>
dunno
05:44
<MikeSmith>
I don't know what implementing vcard support means ..
05:44
<MikeSmith>
seems maybe Hixie doesn't either
05:44
<MikeSmith>
with drag and drop?
05:47
<rniwa>
huh maybe it has been removed from the spec :\ ?
05:47
<rniwa>
MikeSmith: I swear the spec had mentioned vCard at some point
05:47
<MikeSmith>
yeah, it did
05:47
<rniwa>
MikeSmith: was it removed?
05:48
<MikeSmith>
it's in the whatwg spec
05:48
<MikeSmith>
http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#vcard
05:49
<MikeSmith>
ah
05:49
<MikeSmith>
http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#conversion-to-vcard
05:49
<rniwa>
MikeSmith: right, that.
05:49
<MikeSmith>
the conversion algorithm is what's being implemented for that I guess
05:49
<MikeSmith>
yeah
05:49
<Hixie>
i don't understand what a browser would do with that
05:49
<rniwa>
Hixie: yeah, i don't think it's a high priority for us
05:49
<rniwa>
Hixie: in theory, we could be exposing that using some UI
05:50
<rniwa>
Hixie: but as far as I know, it's not high priority for us
05:50
<rniwa>
so i've suggested not to proceed with that change for now
05:50
<rniwa>
especially since adding code like that to webkit could be rather controvertial
05:51
<Hixie>
i don't understand what it would mean for you to implement it
05:51
<Hixie>
it isn't intended for browsers to implement, certainly :-)
05:51
<rniwa>
Hixie: meaning that we would implement API for embedders to use.
05:51
<rniwa>
Hixie: webkit is also used by mail clients, etc... :)
05:51
<Hixie>
oh so not part of the web-exposed api?
05:52
<rniwa>
Hixie: oh, no.
05:52
<rniwa>
Hixie: i mean http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#conversion-to-vcard doesn't really define a web-facing API, does it?
05:52
rniwa
checks the spec.
05:52
<rniwa>
yeah i don't think it does
05:52
<matjas>
hsivonen: I was wondering why you use document.write("\u003C/script>") etc. on https://hg.mozilla.org/integration/mozilla-inbound/rev/e82fc6f3bceb
05:53
<Hixie>
rniwa: that's why i was confused :-)
05:53
<matjas>
hsivonen: "\u003Cscript>" could be just "<script>" and "\u003C/script>" could be just "<\/script>", right? or did gecko at some point implement HTML4 ETAGO parsing?
05:54
<rniwa>
Hixie: yeah, sorry for the confusing. i should have not really mentioned :)
05:55
<rniwa>
s/really //
05:55
<rniwa>
too much wekbit-ism there :P
06:12
<hsivonen>
matjas: Escaping < as \u003C is the single piece of advice that works for all problems.
06:13
<hsivonen>
matjas: even when I know I could use something else depending on context, I try to follow the advice I give to others
06:13
<matjas>
hsivonen: could you elaborate on that? what are the problems with using "</script>" and "<\/script>"?
06:14
<matjas>
i thought i had it figured out at http://mths.be/etago :(
06:14
<hsivonen>
matjas: "</script>" would break out of the script
06:14
<hsivonen>
matjas: "<\/script>" would work
06:14
<matjas>
yeah… so why bother with the Unicode escapes?
06:14
<hsivonen>
matjas: so I could have used "<\/script>" here
06:15
<hsivonen>
matjas: because they work for "\u003C!--" too
06:15
<matjas>
aah, there it is. that’s what i was missing, thanks!
06:15
<hsivonen>
matjas: and I want to give advice that works for both </script> and <!--
06:15
<hsivonen>
matjas: and JSLint hates "<\!--"
06:16
<matjas>
btw, '\x3c' == '\u003c' if you wanna be concise ;)
06:16
<hsivonen>
matjas: so my canned advice is "replace < with \u003C and you are safe"
06:17
<Hixie>
i advise "don't do anything that requires strings involving <!-- or </script>" :-P
07:21
<zcorpan>
jslint should just accept <\!--
07:24
zcorpan
fixed calc() and rgb() etc for hashless and unitless quirks
07:36
<hsivonen>
zcorpan: good luck getting JSLint changed to accept conforming JS
07:41
<zcorpan>
uh, maybe js*hint*
07:49
<zcorpan>
filed https://github.com/jshint/jshint/issues/499
08:08
<zcorpan>
annevk: -76 had the random bytes after the first "request", and that's what firefox and opera implemented
08:08
<annevk>
k
08:09
<zcorpan>
i guess there was no evidence that the random bytes helped mitigate the attack completely
08:10
<annevk>
poor bz
08:10
<zcorpan>
?
08:10
<annevk>
arguing with CP
08:11
<zcorpan>
oh
08:14
<roc>
hey, I started it
08:16
<tomasf>
yes you did; you invaded Poland
08:19
<wilhelm>
We were invited. Punch was served.
08:23
<annevk>
the whole typed array spec is kind of horrid
08:23
<annevk>
but then TC39 was way slow delivering something nice :(
08:28
gsnedders
wonders if TC39 should move to something easier to add new language APIs to, but then remembers that there are deliberately few APIs in ES iteslf
08:29
<hsivonen>
oh now it's harmful to speak the truth about aggregate Web developer behavior
08:30
<gsnedders>
?
08:30
<hsivonen>
gsnedders: see chuck@jumis on the whatwg list in the thread referred to above
08:33
<matjas>
good catch, zcorpan: https://github.com/jshint/jshint/issues/499
08:33
<matjas>
funny how everyone gave up on trying to get js_L_int fixed
08:34
<gsnedders>
Some people just are too self-righteous…
08:35
<annevk>
I think paying attention to him is the real problem here
08:35
<hsivonen>
seems like chuck@jumis is positing the existence of angel developers (per terminology defined in http://web.archive.org/web/20110501062035/http://diveintomark.org/archives/2004/08/16/specs )
08:44
<hsivonen>
now there's an XSD approximation of XHTML5: http://xmlmind.com/xhtml5_resources.shtml
08:50
<zcorpan>
matjas: i now filed https://github.com/douglascrockford/JSLint/issues/114 as well, let's see how it goes
08:50
<matjas>
prediction: Crockford will just close it without even commenting
08:51
<zcorpan>
hsivonen: the first paragraph inspires great confidence
08:54
<zcorpan>
translation to English: "XMLmind has developed an initial version of an experimental, self-contained, W3C XML Schema for XHTML 5 which is implemented to the obsolete W3C Working Draft 25 May 2011 and has several limitations inherent to W3C XML Schema."
09:07
<MikeSmith>
hsivonen: looking at that schema now
09:10
<MikeSmith>
doesn't do case-insensitive matching of enumerated attribute values
09:20
<zcorpan>
ok so it needed another sentence, "Hasn't been properly reviewed yet is probably riddled with bugs."
09:22
<MikeSmith>
hsivonen: that schema is also using built-in xsd datatypes in ways that are not faithful to the spc
09:22
<MikeSmith>
*spec
09:22
<hsivonen>
So Android Market was rebranded to Google Play in order to cover movies and music, but in Europe only Android apps are available?
09:22
<hsivonen>
MikeSmith: not surprising
09:22
<MikeSmith>
yeah
09:22
<MikeSmith>
(about it not being surprising)
09:23
<MikeSmith>
hsivonen: fwiw in Japan at least I think it does have movies and music
09:24
<MikeSmith>
though I've never bought any myself
09:24
<MikeSmith>
and that part of the service is Japan-specific
09:25
<MikeSmith>
as in if there isn't a Japanese companies with rights to sell some movie in Japan, I'm sure it won't be in there
09:43
<annevk>
hmm not sure how to proceed with the big5 mess
09:43
<annevk>
the datasets are quite far apart
09:48
<charlvn>
hsivonen: some guy in the netherlands was able to install some google play apps (music, books and movies) on one of his devices but not the other
09:48
<charlvn>
hsivonen: http://www.androidworld.nl/113707/google-brengt-google-play-meer-onder-de-aandacht/
09:50
<charlvn>
i'm more worried about what the heck is going on with that russian app; to think it's possible to cause that level of mayhem by using some application identifier...
09:53
<annevk>
out of the 19782 code points you can get, 6280 are distinct among the implementations
09:56
<hsivonen>
annevk: does any of them match some official truth from unicode.org?
09:56
<hsivonen>
them being the data sets
09:57
<hsivonen>
charlvn: what's "the russian app"?
09:57
<annevk>
19782 - 6280 prolly does
09:57
<annevk>
I'm assuming the rest are proprietary extensions
09:59
<annevk>
I just generated all possible "valid" lead/trail byte combinations and then let various browsers generate the code points for me
09:59
<charlvn>
hsivonen: http://www.theverge.com/2012/3/26/2904389/google-play-bug-russian-email-app-samsung-android-seven
10:01
Ms2ger
ignores the TypedArray thread
10:30
<karlcow>
hsivonen: another issue of css vendor, that I came across a few days ago. Archived HTML. Be
10:30
<karlcow>
* packages
10:30
<karlcow>
* epub
10:30
<karlcow>
* html emails
10:30
<karlcow>
* saved files as…
10:30
<karlcow>
all of these will never be updated.
10:56
<hsivonen>
karlcow: there's probably quite a bit of -webkit-CSS in epubs by now...
10:57
<karlcow>
yup and in emails
10:57
<hsivonen>
karlcow: mail client-generated emails or separately-authored advertising mail?
11:05
<Ms2ger>
localStorage.clear();
11:05
<Ms2ger>
w("foo" in localStorage);
11:06
<gsnedders>
Ms2ger: You will claim that that is always true in Opera.
11:06
<gsnedders>
Yes.
11:06
<gsnedders>
Known.
11:06
<Ms2ger>
Thanks
11:06
<karlcow>
hsivonen: mail client-generated email
11:08
<Ms2ger>
gsnedders, you know, a non-public BTS isn't too bad if someone can verify the existence of bugs from code snippets :)
11:27
<annevk>
giving times for meetings in something other than UTC when it's across country boundaries is just annoying
11:31
<annevk>
timezone boundaries*
11:44
<zcorpan>
annevk: about big5, just pick one (e.g. IE)
11:46
<annevk>
I guess I should have given some more data in that email
11:47
<zcorpan>
yeah i looked at the json file and didn't know what to do with it :-P
11:47
<annevk>
Personally I think IE would be fine too, but it maps an awful lot to PUA, which some people dislike; then there's the Firefox Taiwan team which provided custom mappings for Firefox which is radically different from most browsers, but they say works better...
11:48
<annevk>
If you have ideas on how to usually present the 6000 differences, they're welcome
11:49
<annevk>
maybe I should prefilter the lists and replace PUA with FFFD, and then count the differences again
11:50
<zcorpan>
if the firefox taiwan team have a mapping that works better, why not use that?
11:51
<annevk>
Firefox does not have majority market share
11:52
<annevk>
http://www.wantchinatimes.com/news-subclass-cnt.aspx?id=20110906000028&cid=1206 seems somewhat recent on that
11:52
<annevk>
which indicates it's mostly IE
11:52
<annevk>
and then Chrome
11:54
<annevk>
Chrome is pretty close to IE for big5
11:54
<annevk>
only 62 differences
11:54
<annevk>
but big5-hkscs has about 6000 differences
11:54
<annevk>
IE treats it as an alias for big5
11:54
<annevk>
afaict
11:55
<annevk>
that is, decoding as big5 and big5-hkscs gives identical arrays
11:57
<zcorpan>
how do the firefox taiwan team know that their mapping "works better"?
11:58
<annevk>
not sure
11:58
<annevk>
https://bugzilla.mozilla.org/show_bug.cgi?id=310299
11:58
<zcorpan>
i guess you should ask them :-)
12:00
<annevk>
basically Microsoft fucked Unicode
12:00
<annevk>
by supporting HKSCS via a font, for some set of their users
12:01
<annevk>
so if you install that font, big5 Hong Hong pages will look fine, but big5 Taiwan pages won't
12:01
<annevk>
or some such
12:02
<annevk>
all the other browsers have tried a different approach, but pages still declare the encoding incorrectly (big5 instead of big5-hkscs) so Hong Kong users either install extensions or manually override the encoding
12:02
<annevk>
this is what I read on the subject thus far
12:03
<annevk>
so you can't win
12:03
<annevk>
except by some expensive widespread evangelism maybe
12:03
<zcorpan>
so it seems to me that big5 and big5-hkscs should be aliases, but there should be two locale-specific encodings
12:04
<zcorpan>
one for hong kong and one for taiwan
12:05
<annevk>
that still doesn't help anyone else trying to read either
12:05
<zcorpan>
right
12:05
<annevk>
but that might be an improvement over the current situation
12:07
<zcorpan>
what do the extensions do? just override the encoding to one or the other?
12:08
<annevk>
http://www.google.com/support/forum/p/Chrome/thread?tid=466c210af3fb6d08 suggests so
12:08
<annevk>
which basically means they want to change the underlying table
12:10
<annevk>
PUA count:
12:10
<annevk>
opera-hk 0
12:10
<annevk>
firefox 290
12:10
<annevk>
chrome 6217
12:10
<annevk>
firefox-hk 2985
12:10
<annevk>
opera 0
12:10
<annevk>
chrome-hk 664
12:10
<annevk>
internetexplorer 6217
12:12
<annevk>
now PUA, FFFD:
12:12
<annevk>
opera-hk 0 1199
12:12
<annevk>
firefox 290 0
12:12
<annevk>
chrome 6217 62
12:12
<annevk>
firefox-hk 2985 0
12:12
<annevk>
opera 0 6008
12:12
<annevk>
chrome-hk 664 751
12:12
<annevk>
internetexplorer 6217 0
12:14
<hsivonen>
seems odd that totally different mappings in a non-market leader could work better. very odd. URL for the "works better" claim?
12:14
<zcorpan>
running a heuristic detector isn't reliable enough for people in hong kong or taiwan, i guess?
12:14
<annevk>
hsivonen: see the bugzilla URL above
12:15
<annevk>
the IE situation is basically that IE always uses the same mapping (to PUA) and then the font on Windows does the rest
12:16
<annevk>
it seems Chrome has better interoperability with IE there for at least big5
12:16
<zcorpan>
but the font being present is acting like an override to the "other encoding", right?
12:16
<annevk>
no, it just shows different glyphs
12:17
<annevk>
the byte -> code point mapping is the same
12:17
<annevk>
it's like wingdings
12:17
<annevk>
a terrible solution
12:17
<zcorpan>
sure, i mean both taiwan users and hong kong users don't use the same font, right?
12:17
<annevk>
yeah
12:17
<hsivonen>
annevk: oh. IE depends on PUA fonts. I guess then different mapping might indeed be better
12:18
<annevk>
http://www.microsoft.com/hk/hkscs/
12:20
<annevk>
hsivonen: yeah dunno
12:21
<annevk>
hsivonen: IE still has insanely high market share there, reportedly pages rarely use the big5-hkscs label, and Chrome has the same mapping as IE for big5 (apart from 62 out of ~20000 code points)
12:27
<annevk>
hsivonen: it would probably be good to flag big5 usage in Validator.nu
12:35
<hsivonen>
annevk: I guess, yeah.
12:35
<hsivonen>
annevk: no idea what tables V.nu has...
13:22
<charlvn>
http://www.internetsociety.org/20th/defining-moments-internet
13:26
<dinesh___>
lol
13:27
<dinesh___>
i believe that there was no internet before "www", "tcp/ip", "dns", "emails", "arpanet", "emails" and perhaps even rfc
13:28
<dinesh___>
so perhaps search engines..
13:28
<zcorpan>
internet existed before www
13:29
<mainerror>
Before "Arpanet"!?
13:29
<dinesh___>
perhaps but that's not what most people think
13:29
<dinesh___>
;)
13:31
<zewt>
what, are you saying "internet" and "web" aren't the same thing
13:31
<zewt>
crazytalk
13:31
<zcorpan>
seems rfc1 is dated 7 april 1969
13:31
<zewt>
rfc1: "hello? is anybody out there?"
13:33
<zcorpan>
[ This RFC was put into machine readable form for entry ]
13:33
<zcorpan>
[ into the online RFC archives by Celeste Anderson 3/97 ]
13:34
<karlcow>
http://tools.ietf.org/html/rfc1
13:36
<karlcow>
not sure what it tells me, but I'm almost as old as the first RFC. dinosaur.
13:45
<zcorpan>
annevk: heavenly? yeah, maybe, dunno :-)
13:47
<annevk>
euh lol
13:50
<zcorpan>
hmmmm. calc() needs to support unitless. argh
13:51
<zcorpan>
er
13:51
<zcorpan>
i mean rect()
14:03
<annevk>
aah, The Economist finally caught up and disabled my online access
14:04
<annevk>
there's only a GBP 30 difference or so between online and online + print
14:05
<annevk>
a little less for the first year; is print distribution really that cheap, or is online covering the costs?
14:17
<karlcow>
annevk: the paper/delivery bill is certainly a small percentage of the salaries.
14:23
<annevk>
but is it only 30 per year per printed magazine
14:23
<annevk>
a little less even
15:25
<smaug____>
hmm, should I add EventReceiver
15:33
<karlcow>
http://www.w3.org/community/webapps-ui/
15:43
<annevk>
foolip: the arrays in big5.json are the code points found for these bytes:
15:43
<annevk>
while (leadbyte < (0xFE-0x81+1)):
15:43
<annevk>
while (byte < (0xFE-0x40+1)):
15:43
<annevk>
file.write(chr(leadbyte+0x81))
15:43
<annevk>
file.write(chr(byte+0x40))
15:43
<annevk>
if byte == 0x7E-0x40:
15:43
<annevk>
byte += (0xA1 - 0x7F)
15:43
<annevk>
byte += 1
15:43
<annevk>
leadbyte += 1
15:43
<annevk>
byte = 0;
15:44
<foolip>
annevk, as reported by charCodeAt I guess?
15:44
<annevk>
so 0x81 0x40 -> array[0]
15:44
<annevk>
foolip: almost
15:44
<annevk>
foolip: I combine surrogates
15:45
<annevk>
and for Opera I ignore a few code points less than 0x80 that follow a 0xFFFD
15:45
<annevk>
foolip: some stuff to get the data is here: http://dump.testsuite.org/encoding/big5/
15:45
<foolip>
annevk, ok, are the PUA points that are mapped not in the BMP, or is it just that some stuff maps to CJK C?
15:46
<foolip>
annevk, do you already have a hunch for how you're going to spec this, or is it all just broken?
15:47
<annevk>
foolip: I don't know for big5; ideally someone tells me
15:47
<annevk>
foolip: the PUA is all in BMP
15:47
<foolip>
annevk, have you looked at what mapping iconv uses?
15:47
<dglazkov>
good morning, Whatwg!
15:48
<gsnedders>
foolip: On what system?
15:48
<foolip>
gsnedders, for which question?
15:49
<annevk>
foolip: no, but I think that would be the same as Chrome here
15:49
<foolip>
annevk, oh, Chrome more or less uses iconv?
15:49
<annevk>
foolip: but maybe not, but I don't really care about non-browser consumers, they're likely even more wrong :)
15:50
<foolip>
Perhaps
15:50
<gsnedders>
foolip: iconv varying between POSIX impls
15:50
<foolip>
gsnedders, oh, then I mean the one in GNU libc I guess
15:51
gsnedders
was no idea whether OS X has uts iwb ub this case
15:51
<gsnedders>
*its own in
15:51
<foolip>
annevk, mapping things to the PUA when they exist in Unicode proper seems worth avoiding, so some idea about what the compatible subset is would be sweet
15:51
<foolip>
Does Opera map to the PUA, for example?
15:51
<annevk>
no we don't
15:52
<annevk>
we map almost all of those to U+FFFD
15:52
<annevk>
apart from a few
15:52
<annevk>
big5 and big5-hkscs are also incompatible I'm told
15:53
<foolip>
As in, there are de-facto extensions to Big5 that conflict with Big5-HKSCS?
15:54
<annevk>
think so, not exactly sure how it relates to the standards
15:54
<annevk>
let me check our bug database, Peter explained somewhere
15:55
<foolip>
If IE is able to treat Big5 and Big5-HKSCS as synonyms it sounds like it's possible to sort out
15:55
<annevk>
foolip: see CORE-35726
15:55
<foolip>
Unless the horrible truth is that the same code points are used for different glyphs in popular fonts in Taiwan and Hong Kong :{
15:55
<annevk>
that's the thing
15:55
<annevk>
Microsoft ships HKSCS package for Hong Kong users
15:56
<annevk>
a package*
15:56
<annevk>
and that package includes different glyph mappings for some PUA code points
15:56
<foolip>
Ugh...
15:56
<annevk>
yeah, it's insane
15:57
<foolip>
Knowing which exact characters are in conflict would be useful
15:58
<Ms2ger>
Velmont, commented
16:00
<foolip>
annevk, from Peter's comments it looks like the conflicts are pretty trivial, where there exists duplicates in Unicode or at least very similar glyphs
16:00
<annevk>
http://coq.no/character-tables/chinese-traditional/en has some analysis, but not that much
16:01
<foolip>
annevk, I'd be happy to help out with this since I love both Chinese and Unicode, but it sounds like right now you don't really know where to start?
16:03
<annevk>
if we assume Microsoft is the dominant force I guess what you want is a) the difference in glyph mapping between users with and without the HKSCS plugin and b) the Unicode code points for all the ~6000 glyphs
16:04
<annevk>
and then maybe if they are not too incompatible provide a combined set of sorts
16:04
<annevk>
but presumably Microsoft would have done that if it were possible
16:04
<foolip>
Perhaps
16:05
<annevk>
if the difference is huge we could attempt to still avoid PUA (if the fonts work with that anyway, that might be another issue), and have different tables depending on locale
16:05
<foolip>
If possible, it would be great to have a look at the byte sequences that map to something different (in IE on Windows) in Big5 and Big5-HKSCS and screenshots of how those are actually rendered on a system with and without Microsoft's font package
16:06
<annevk>
the byte sequences map to the same code point afaict
16:06
<annevk>
although I have not tried installing the hkscs pack
16:07
<foolip>
They probably do, it would be odd for the mappings to depend on installed fonts.
16:07
<annevk>
hmm
16:07
<annevk>
"This HKSCS-2001 add-on software package is not compatible with Windows Vistaâ„¢. Windows Vista has built-in support for HKSCS-2004."
16:07
<annevk>
I've been using Windows 7
16:08
<foolip>
Sounds like they've already unified things somewhat?
16:08
<annevk>
maybe
16:08
<annevk>
guess I should ask someone from Microsoft how they deal with it now
16:09
<foolip>
Yeah, let me know if you need help staring at glyphs and telling if they are the same or not.
16:09
<foolip>
Time to leave now, bye!
16:11
<annevk>
thanks foolip
16:29
<annevk>
foolip: http://lists.w3.org/Archives/Public/www-archive/2012Mar/0046.html
17:16
<annevk>
I wonder if http://www.microsoft.com/download/en/details.aspx?DisplayLang=en&id=12080 is available as source code or something
17:16
<annevk>
what is .msi?
17:17
<annevk>
Windows installation it seems
17:23
<TabAtkins>
zewt: roc: I just talked with Ken about the Typed Array stuff, and he offered a pretty convincing defense of his position.
17:23
<TabAtkins>
Which was basically:
17:24
<TabAtkins>
1) If you're generating data on the CPU for export to the GPU on the same device (common case for WebGL and WebAudio), endianness is irrelevant, because you don't really introspect the data. Using native endianness is best for performance, which is critical here.
17:25
<TabAtkins>
2) If you're pulling data from the network, DataView handles the testing and byteswapping easily and automatically - all you need to know is the endianness of the incoming data.
17:25
<TabAtkins>
(Which can reasonably be big or little, depending entirely on file format.)
17:25
<TabAtkins>
If you're exporting to the network, DataView also takes care of that, automatically swapping to your desired endianness as necessary.
17:25
<gsnedders>
TabAtkins: However, almost all WebGL demos do more than just generate data, so 1 isn't relevant
17:25
<TabAtkins>
The problem is that FF only implemented DataView last week, so a lot of bad advice was given.
17:26
<gsnedders>
TabAtkins: 2 is good and fine in theory… but nobody does it.
17:26
<gsnedders>
Almost no WebGL demos work on BE devices.
17:26
<TabAtkins>
Existing WebGL demos that generate data solely on the device?
17:27
<gsnedders>
Nah, a few people did a while ago evangelize stuff for this.
17:27
<gsnedders>
bz probably more than anyone else, IIRC.
17:27
<TabAtkins>
I'm just curious about the exact shape of the failing demos.
17:27
<gsnedders>
Mostly 2, and assuming the typed array is LE
17:28
<TabAtkins>
Because Ken claimed that existing ones (that didn't rely on network data without using DataView) should work fine on either architecture.
17:28
<gsnedders>
Oh, they do.
17:28
<gsnedders>
But most WebGL stuff relies on network data without using DataView.
17:28
<TabAtkins>
And he argues that the reason nobody has used DataView is to a large extent because FF didn't implement it originally.
17:28
<gsnedders>
And as long as that's possible, web devlopers will do it, because nobody will test on BE.
17:29
<gsnedders>
Modulo people targetting TVs, who likely will.
17:30
<gsnedders>
(The Opera Devices SDK has been shipping WebGL for over a year now)
17:30
<TabAtkins>
He also argues that, based on long experience with the JVM, you can't do automatic endianness-swapping without killing performance.
17:31
<gsnedders>
I totally agree. But provided we make it possible to have web devs easily break stuff on platforms almost nobody uses, they will.
17:31
<Philip`>
TabAtkins: "performance, which is critical here" - the cost of swapping bytes when uploading to the GPU sounds like it should be generally quite trivial compared to the other costs of copying the memory to the GPU when implemented sanely (though I'm not basing that on any experience)
17:32
<gsnedders>
It's either have it not work or do endianness-swapping, practically.
17:32
<TabAtkins>
Philip`: Ken argues that it's not, because you have to hold onto a schema for the data in the CPU so you can do the swap properly just before exporting.
17:32
<gsnedders>
TabAtkins: I expect most people would use LE DataViews, so the cost is there on BE anyway
17:33
<TabAtkins>
gsnedders: I don't understand. DataViews don't have endianness - they're native too. You specify what the endianness of the incoming data is, and it swaps there.
17:34
<Philip`>
TabAtkins: I imagine an implementation that cared about performance would JIT the memcpy-with-fancy-byte-swapping code, rather than using an explicit schema representation
17:35
<TabAtkins>
Philip`: According to Ken, that hasn't been possible in the years of compiler research in the JVM. It breaks down into lots of virtual gets.
17:35
<gsnedders>
TabAtkins: You can do the same with the typed array, no?
17:35
<TabAtkins>
gsnedders: I'm not entirely sure I understand what you're asking.
17:35
<Philip`>
Virtual gets?
17:36
<gsnedders>
TabAtkins: You store the underlying array as native endianness. [[Get]] and [[Put]] convert the words they touch. Copying the array from CPU to GPU is quick (due to native endianness), as is taking a subarray.
17:36
<TabAtkins>
virtual calls when getting the data. I'm more-or-less quoting from memory there, I don't know about shit.
17:37
<gsnedders>
Or maybe [[Get]] and [[Put]] are perf critical
17:38
<gsnedders>
But that's basically what DataViews do, AIUI
17:38
<Philip`>
TabAtkins: I don't see why you'd want to do any virtual method calls when just copying an array of bytes (with no fancy getters or anything) into a new array of bytes
17:39
Philip`
wonders whether GPUs actually have the same endianness as their host CPUs
17:39
<TabAtkins>
Philip`: Because you need to byteswap sometimes?
17:39
<TabAtkins>
Philip`: According to Ken, yes.
17:39
<TabAtkins>
gsnedders: All I know is that Ken says DataViews solve the problem in a way that automatic swapping can't. Presumably that means swapping is done early.
17:40
<gsnedders>
Just do that for accesses of the whole array, have dataviews always have endianness, and then if you're using dataview you get high-perf 50% of the time.
17:40
<gsnedders>
Philip`: They do, by design, for just that reason.
17:40
<gsnedders>
TabAtkins: I don't believe we swap early, at least.
17:43
<Philip`>
TabAtkins: I don't see why the byteswapping would involve virtual method calls - it'd just involve reading 4 bytes from the input, doing a byte-swap instruction, then writing to the output array, and repeat for each field in the data structure that needs swapping, then loop, or whatever
17:43
<TabAtkins>
Ah, now that I've looked at the spec I see what's happening. This design seems somewhat suboptimal.
17:44
<TabAtkins>
There's no reason to have the desired endianness on the get calls unless you're trying to optimize for the case where a file is mixed-endian.
17:44
<TabAtkins>
It should be specified on the constructor I guess.
17:45
<gsnedders>
TabAtkins: It depends.
17:45
<TabAtkins>
That still doesn't let you swap early, though, unless you know the data's schema.
17:45
<gsnedders>
TabAtkins: There are cases when you want to read in a file of non-native endianness, change one word, and then write it out.
17:46
<TabAtkins>
Hm, I think I need to see an example of DataView being used with WebGL.
17:46
<gsnedders>
In that case, it will normally be quicker to just convert the one thing you want to change
17:59
<annevk>
success
17:59
<annevk>
well some
17:59
<annevk>
http://blogs.msdn.com/b/shawnste/archive/2007/03/12/cp-951-hkscs.aspx
18:02
<annevk>
http://lists.w3.org/Archives/Public/www-archive/2012Mar/0051.html sounds promising
18:03
<annevk>
so IE treats them as aliases, no longer has different mappings depending on locale
18:03
<annevk>
so IE's mapping, perhaps with some PUA code points replaced with actual code points, sounds like the best way forward
18:03
<annevk>
including merging big5 and big5-hkscs
18:06
<zcorpan>
nice
18:10
zcorpan
created http://simon.html5.org/tools/js/unicodeize/ for spec writing
18:13
<annevk>
hmm
18:13
<annevk>
now I know my name is full of boring code points
18:29
<TabAtkins>
zcorpan: Yay, useful!
18:46
<zcorpan>
if anyone knows why the selection thing doesn't work in firefox and chrome when tabbing away from the textarea, lemme know
18:47
<zcorpan>
or get firefox/chrome fixed :-P
18:48
<smaug____>
zcorpan: what selection thing?
18:48
<zcorpan>
in http://simon.html5.org/tools/js/unicodeize/
18:48
<smaug____>
I guess I should try what happens in Opera
18:48
<smaug____>
ah, I see
18:49
<zcorpan>
http://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#dom-selection-selectallchildren is the spec
18:52
<smaug____>
zcorpan: does the output element get focus event in FF/CH ?
18:53
<smaug____>
yes...
18:54
<zcorpan>
i don't seem to get an event in http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1437
18:55
<zcorpan>
in chrome... get it in firefox when tabbing
18:55
<zcorpan>
not when clicking
18:59
<Hixie>
sweet kittens, our industry has a buzzword problem
18:59
<Hixie>
looks like "internet of things" is going to be the next "mobile web"
19:00
<zcorpan>
"internet of things"?
19:01
<rubys>
Hixie: I'd like to invite you to publish your complete Canvas 2D API editor's draft (including r7023 through r7038) at http://dev.w3.org/html5/2dcontext-hixie/
19:04
<smaug____>
o_O
19:04
<smaug____>
will there be a separate canvas spec in W3C ?
19:05
<rubys>
eventually, there will be something after HTML5, yes.
19:06
<annevk>
what is going to be published at 2dcontext then?
19:07
<rubys>
At the moment, that's frozen at March 7th. It will certainly have the result of the issue 201 decision folded into it. At this point, Hixie's draft goes beyond that with other new features.
19:08
<Hixie>
rubys: a "hixie" version of the canvas spec would just be the html spec with the 2d api in the canvas section, i'm not sure it makes sense to have a "hixie" version of just the 2d api
19:08
<rubys>
ultimately this may need to be done to all the specs, but we don't need to do all at once, and it makes sense to delay that for as long as is reasonable for the base HTML5 spec.
19:09
<annevk>
so why not call it -next then?
19:09
<annevk>
or -dev
19:10
<annevk>
seems kind of weird to put the nick of the editor in the URL
19:10
<rubys>
-next may be presumptuous and spur lots of extraneous discussions. I simply would like to see it get out there to be discussed. That's the best way to lead to a discussion about what should be in "-next"... I would much rather see leading by doing than yet another argument over who gets the pen.
19:10
<rubys>
annevk: the IETF does that all of the time, no?
19:10
<rubys>
we could go with Hickson I guess
19:11
<Hixie>
the ietf is a perfect example of the mess that happens when we do that :-)
19:11
<zcorpan>
can't http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#2dcontext be used for discussion?
19:12
<rubys>
Apple has patent concerns; Microsoft has other concerns. Simply republishing it in W3C space hopefully can get the technical discussions going instead of the non-technical ones.
19:12
<Hixie>
rubys: anyway, i'm happy to check in a draft that is a true "editor's draft" as opposed to the "majority draft" or whatever it is we have now; but as editor the only draft i'd be writing is a single html spec, like the whatwg's, not a split out set of specs. if you think that'd be helpful, though, i'd be happy to do that.
19:13
<Hixie>
the patent concerns are moot unless we publish a REC of the draft in question
19:13
<Hixie>
merely having it on dev.w3.org doesn't make any difference there
19:14
<rubys>
Hixie: I think it would be helpful if you were to publish a clearly separate Canvas 2D API spec, preferably under your name or nick, in W3C space. I am not suggesting that you change anything else about how you develop such a spec. I would prefer if this were not yet done for the other W3C specs at this time.
19:15
<annevk>
rubys: IETF also publishes in ASCII and text/plain
19:15
<Hixie>
rubys: i do not support having a separate canvas spec, so i would like to not frame it in such a way that it appears to be my choice
19:15
<rubys>
Hixie: I would be glad to frame it as something that I requested.
19:16
<Hixie>
rubys: there's a 2dcontext-LC/ directory in cvs right now that is woefully out of date, would it makes sense to copy what is currently in 2dcontext/ to 2dcontext-LC/ and then put 2dcontext/ back to tip-of-tree?
19:16
<annevk>
rubys: and actually, IETF only does that before a WG is formed
19:16
<annevk>
rubys: WG drafts don't have it
19:16
<Hixie>
rubys: (that seems like it would address your concerns and mine, if i understand yours correctly)
19:17
<rubys>
2dcontext-LC is what went into LC1. We likely will need to have an LC2. What goes into those drafts will increasingly be locked down.
19:17
<rubys>
I think we need another draft that doesn't have those locks in place. I think the Canvas doc would be a great way to start.
19:18
<annevk>
didn't you just say you want to freeze it?
19:19
<rubys>
annevk: there will at least be the need to apply the decision that is made for issue 201 to the W3C LC2 Canvas API draft.
19:19
<annevk>
and that cannot happen in 2dcontext-LC?
19:19
<rubys>
but at the moment, nobody is proposing adding ellipse support to the W3C HTML5 version of Canvas.
19:20
<annevk>
well it seems several people are
19:20
<annevk>
but they are not jumping through hoops
19:20
<annevk>
so for some definition of "proposing" I guess they are indeed not
19:20
<rubys>
annevk: agreed that we aren't disagreeing here :-)
19:20
<zcorpan>
hsivonen: jslint fixed. jshint not yet.
19:21
<annevk>
zcorpan: myth busted
19:21
<karlcow>
- Mike "Pomax" Kamermans
19:21
<karlcow>
processing.js
19:21
<karlcow>
https://www.w3.org/Bugs/Public/show_bug.cgi?id=14562
19:21
<zcorpan>
now i should probably file separate bugs to *do* whine about "<!--" and "</script>"
19:21
<karlcow>
did ask
19:22
<karlcow>
which led to https://www.w3.org/Bugs/Public/show_bug.cgi?id=14579
19:22
<rubys>
I stand by my original recommendation. I would really rather not have any name that appears presumptuous to the point where people feel the need to challenge it.
19:22
<Hixie>
rubys: is there any problem with using the existing 2dcontext-LC/ directory for the cherrypicked draft and 2dcontext/ for the wg draft? i don't understand your objection to that
19:23
<Hixie>
rubys: my objection to creating a third directory is that we are already littering the w3c space with obsolete copies of the canvas spec
19:23
<Hixie>
rubys: i keep getting people coming across old copies and asking me obsolete questions about them
19:23
<Hixie>
rubys: it's truly hurting interop
19:23
<Hixie>
rubys: mike did some work getting rid of some old ones, but there's still at least 3 already
19:23
<rubys>
hixie that will start a flame war that I simply don't want to fight right now.
19:24
<Hixie>
why would it start a flame war?
19:25
<rubys>
At the moment, what is in 2dcontext is what the HTML WG intends to be as a part of HTML5, and is subject to the revert policy in place.
19:25
<Hixie>
so just change that to be 2dcontext-LC/
19:26
<rubys>
I am not willing to fight that battle at this time. If you wish, feel free to decline my request to publish this separately.
19:26
<zcorpan>
or, i guess the html validator already whines about <!-- and </script>
19:27
<Hixie>
well it's already published separately, the request is to publish a version of the spec that fulfills certain chair decisions but not others, right?
19:27
<Hixie>
i mean, i'm not really sure whose draft this would be
19:27
<Hixie>
it doesn't represent what i would like, so it's not an editor's copy; it doesn't represent what the wg would like, so it's not a majority copy, it's not what we're going to publish so it's not a TR/ copy...
19:28
<Hixie>
whose draft would it be? what process would it be under? what would decide what it contains?
19:28
<rubys>
What I am suggesting is a Hixie version of the spec be published. Whether parts of it are cherry picked for the HTML5 time frame or are fodder for an HTML.next has yet to be determined.
19:28
<Hixie>
a hixie version of the spec is already published: http://whatwg.org/html
19:29
<Hixie>
it has the exact same patent situation as a draft in dev.w3.org
19:29
<rubys>
My experience is that such a document will not attract participation by Microsoft, and in my opinion, that situation is suboptimal.
19:30
<Hixie>
nor does a dev.w3.org draft, really. the amount of microsoft input in the htmlwg has been so minimal as to be de minimis
19:30
<zcorpan>
rubys: you said microsoft has "other concerns". are they secret?
19:31
<rubys>
I am willing to make my request be an official request of a W3C co-chair.
19:31
<Hixie>
so then it'd be a chair's copy of the spec?
19:32
<rubys>
zcorpan: I haven't had that discussion with Microsoft, nor am I likely to.
19:32
<Hixie>
seems weird for the chairs to maintain (or ask someone to have maintain for them) a copy of the spec that doesn't match the very decisions they're handing down...
19:33
<rubys>
Hixie: the HTML WG has had a policy for a while allowing individuals to post specs. Mostly that demonstrated (as expected) that there is a sincere desire to converge.
19:34
<rubys>
We have asked you to revert 7023 pending a decision on 201. Now I see that there are other changes that haven't been proposed. I'd like to see those get published in W3C space and to have a version of the spec that evolves slower and stabilizes.
19:36
<Hixie>
i'm happy to push the changes to dev.w3.org so long as we don't increase the number of different copies of the 2d api spec fragment in doing so
19:36
<Hixie>
i'm pretty open to a variety of ways in which we could avoid doing that
19:38
<rubys>
I believe that the LC one is pointed to by an announcement at some point. Once we complete this LC work, we should be able to archive that one and point to the latest stable spec.
19:39
<rubys>
As I see it, there are two active threads, one that is winding down, and one that is ramping up.
19:39
<annevk>
cannot really find that announcement fwiw
19:40
<annevk>
also, it violates W3C policy to use the WD style sheet on dev.w3.org so that draft would have to change anyway
19:40
<Hixie>
it's not the announcements i'm worried about, it's people randomly running into the draft and thinking it's the latest copy
19:41
<Hixie>
i've found about 5 different copies of the canvas api and extensions to it in the last few minutes in w3.org space, none of which are up to date (since there isn't a mainline one currently, which is what sam is asking for me to add).
19:43
<rubys>
Microsoft appears to feel strongly about issue-201, so different people will have different perspectives on what is considered up to date.
19:44
<rubys>
Heck, I would gladly invite Microsoft to produce a copy of the 2D Canvas spec to their liking (and have a history of making exactly such request).
19:45
<Hixie>
that would probably not resolve my concerns of there being too many different copies of the spec. :-)
19:46
<rubys>
I'm Darwinian in that respect. I think it would, just perhaps not quickly.
19:47
<rubys>
Found the post I was looking for: http://intertwingly.net/blog/2009/08/06/Disappearing-Silverware
19:48
<Hixie>
well the last time you asked them to do that it resulted in an additional spec that is still there on dev.w3.org, in an Attic directory, so I think evidence suggests otherwise. :-)
19:48
<jgraham>
The problem with many copies of the spec is that the harm they cause is in the short term not the long term
19:49
<Hixie>
indeed
19:51
<rubys>
I don't see the harm caused by a directory clearly labeled as attic, and can see an argument that the W3C needs to put a plan in place to move the 1st LC draft into such.
19:52
<rubys>
I do see considerable harm as labeling a spec that contains one of two competing proposals as "the latest".
19:53
<Hixie>
you're not the one fielding e-mails from people every day asking for clarifications about issues in the spec that were fixed months or years earlier, caused merely because they are looking at the TR/ page, or some random CVS-deleted Attic/ file, or whatnot.
19:54
<Hixie>
an alternative way to solving this problem, if we can't come to an agreement on how to have the latest copy in dev.w3.org, would be for the relevant issue to be resolved sooner rather than later.
19:55
<rubys>
at the moment, we have no counter proposal to issue 201, nor any proposal for the other additions that you have been making.
19:55
<rubys>
I've also seen reference to your plans for a v6 and beyond.
19:56
<Hixie>
well, to be fair, you do have a counter proposal, you just don't have one that's been written up in the bureaucratic way you'd like. You even asked for the counter-proposal to be reverted, so you can't say you don't know about it. :-)
19:57
<rubys>
To me a complete proposal would include rationale.
19:58
<Hixie>
the rationale is presumably the same
19:59
<Hixie>
rubys: looking at the existing -201 issue, i can confirm that the exact same rationale would apply to what was reverted
20:00
<rubys>
In any case, I've made my request. If there is anything I can do to convince you to leave the stable copy as it stands and publish a -hixie version along side it, please let me know.
20:00
<Hixie>
rubys: if you like i can submit a CP that is identical in every way except the details section, but that just seems like bureaucracy for the sake of bureaucracy
20:00
<rubys>
would that CP include ellipse?
20:00
<Hixie>
sure, why not
20:01
<Hixie>
they're part of the Path object, after all
20:01
<Hixie>
how else would you make accessible ellipsoid hit regions?
20:02
<Hixie>
gotta go, lunch
20:02
<Hixie>
bbiab
20:03
<rubys>
looking at http://html5.org/tools/web-apps-tracker I see a number of changes that appear to go beyond hit testing.
20:04
<rubys>
I'll wander off, but I would like to see a -hixie draft and a Change Proposal that describes why what appears in that draft is a better fit for HTML5 than what is in http://www.w3.org/wiki/Canvas_hit_testing .
20:58
<annevk>
why does data:text/html,&%23x26BD; (soccer ball) not render in browsers other than Safari?
21:13
<TabAtkins>
Because most people don't have a font that'll display it, but Safari's last resort font has a bunch of emoji stuff, and so maybe has a soccer ball too?
21:13
<TabAtkins>
There's nothing wrong with the url - it produces the correct character in the page.
21:16
<annevk>
seems like a bug of sorts to me
21:18
<TabAtkins>
What, the non-rendering?
21:19
<TabAtkins>
That's not a bug, it's font support. There's nothing buggy about it.
21:20
<TabAtkins>
Change your url to a character that the default font stack can render, and it works fine.
21:20
<annevk>
given that my OS has such a font, I would expect browsers to render it
21:21
<TabAtkins>
They can't realistically search your entire set of OS fonts when attempting to render a page.
21:21
<TabAtkins>
And I don't think OSes provide a utility for quickly asking "do you have a font that can render this character?".
21:21
<TabAtkins>
You can bug them to improve their default stack, of course.
21:22
<annevk>
doesn't mean it doesn't seem like a bug of sorts :)
21:22
<annevk>
right
22:04
jwalden
sees the soccer ball in Firefox in F15
22:04
<jwalden>
guess I have enough fonts installed for it
22:10
<zewt>
TabAtkins: that's not convincing at all, because it assumes incorrectly that views are only ever used for creating data that you hand off to WebGL
22:10
<zewt>
that's just obviously false
22:13
<gsnedders>
See: pdf.js.
22:13
<zewt>
the solution is to define both these views and all WebGL access as little endian, say "if you're big-endian, you're on your own", and then ignore big endian because big endian is dead
22:14
<TabAtkins>
Using a DataView, particularly once it's been expanded to be as easy to use as the other array views, seems to be the preferred answer.
22:14
<zewt>
dataview is completely irrelevant
22:14
<TabAtkins>
Why so?
22:14
<zewt>
views exist, so people will use them; dataview existing doesn't change taht
22:14
<zewt>
also that
22:14
<zewt>
we can't remove alert() just because there are other ways to display messages; people use alert
22:15
<TabAtkins>
DataView is meant to be *the* way to send/receive from servers.
22:15
<zewt>
but it *isn't*
22:15
<TabAtkins>
Right now, sure. Because DataView wasn't widely implemented.
22:15
<zewt>
views exist, and people use them (and I'll use them, because it's much nicer to have an array view of an array instead of calling a function)
22:15
<zewt>
doesn't matter--views still exist and will still be used
22:15
<TabAtkins>
And so any advice about how to use TypedArrays *today* can't reasonably tell people to use DataViews.
22:16
<gsnedders>
zewt: Big endian is *not* dead because typed arrays are done for things apart from WebGL. pdf.js, for example.
22:16
<TabAtkins>
The "array view of an array" thing is the "once DataViews are fixed up to be as convenient as the other arrays" thing.
22:16
<zewt>
gsnedders: find me a marketshare % of big endian systems and tell me it's not dead, heh
22:16
<zewt>
(of big endian systems that implement modern APIs, including ArrayBuffer and WebGL)
22:17
<TabAtkins>
From what I understand, a number of file formats (that you may want to read with an arraybuffer) are big-endian.
22:17
<gsnedders>
zewt: Well, of BE systems, yes, but file formats are still often BE.
22:17
<smaug____>
aklein: ping
22:17
<zewt>
(why is Firefox's address bar autocomplete so utterly broken? I type "typed arrays", hit enter; I see that it had the typed array spec selected when I was at "typed", but then it decided to jump to some random google search when I finished typing)
22:17
<aklein>
smaug____: pong
22:17
<zewt>
gsnedders: file formats aren't the issue (there *should* be explicitly big-endian views)
22:17
<smaug____>
aklein: about attribute filters
22:18
<smaug____>
aklein: sicking suggested that attribute filter applies only to non-namespaced attributes
22:18
<jgraham>
TabAtkins: Surely you have done the web thing long enough to know that if there are two ways to do something and one is wrong, authors will do the wrong way 80% of the time, the right way 10% and invent an entirely new and wrong way 10%
22:18
<smaug____>
aklein: what do you think about that
22:18
<zewt>
TabAtkins: DataView is an inherently less convenient API than views, for accessing arrays
22:18
<TabAtkins>
I'd say the percentages are more balanced, overall. They don't *instinctively* reach for the bad one. They just do it randomly, like a gas filling a room. Brownian motion and all that.
22:18
<TabAtkins>
zewt: Yes. Right now.
22:19
<zewt>
jgraham: (I object to the idea that accessing arrays inside a file format via views is "wrong"; it's the right, clean thing to do, and the "design" is wrong)
22:19
<zewt>
TabAtkins: what is "right now"? who is proposing changes to it?
22:19
<smaug____>
aklein: I don't care too much, but would could change my patch (which sicking is reviewing) if you agree with the change
22:19
<smaug____>
s/would//
22:19
<zewt>
the only thing needed are eg. Int16BEArray, etc
22:19
<TabAtkins>
zewt: Ken?
22:19
<jgraham>
zewt: Sure. I was thinking of an abstract example
22:19
<aklein>
smaug____: I don't care too much either, but I think we'd have to change our code too
22:20
<sicking>
aklein: it seems to me that if someone observes the "value" attribute, and a page modifies the "xlink:value" attribute and we notify the observer, it seems unlikely that the observer would check that it's the "correct" value attribute that is changed and just assume that any notifications is to the attribute that it cares about
22:20
<zewt>
one thing I need to recommend is that Int16LEArray (and friends) be added, so people can at least sidestep the issue
22:20
<jgraham>
My point was just that saying "but there is a way to get this right" has never been good enough
22:20
<TabAtkins>
zewt: I don't know how you'd use a normal view to access data from a BE file format with varying-width records.
22:20
<zewt>
but kenneth has dug in his heels on this so far he seems unwilling to do anything at all
22:20
<jgraham>
There is a way to generate well-formed XML, but that didn't happen either
22:20
<zewt>
TabAtkins: views are used for arrays (fixed-width); variable-width (eg. structs) *is* what DataView is good for
22:20
<TabAtkins>
zewt: I now understand his reasoning a bit better. It seems correct that trying to do LE everywhere would just mean "BE devices get *really slow* WebGL".
22:21
<zewt>
TabAtkins: that's the only possible thing that can happen
22:21
<zewt>
the alternative is "big-endian devices get broken WebGL"
22:21
<jgraham>
TabAtkins: Instead they will get broken WebGL
22:21
<TabAtkins>
Rather than the current one, which is "BE devices break when you're reading data that you assumed was LE".
22:21
<zewt>
that's not correct; that's wrong
22:21
<TabAtkins>
I've been told that, right now, BE devices work just fine in WebGL with typed arrays.
22:21
<zewt>
you *should* be able to assume everything is little-endian. because nobody is, and nobody should have to, test on obscure big-endian devices; this is web 101--interoperability
22:22
<TabAtkins>
They fail when you pull binary data off the network without using a dataview.
22:22
<zewt>
which is broken
22:22
<sicking>
aklein, smaug____: It seems to me that only observing the null-namespace is less bug-prone, and at least in the gecko implementation simpler since we wouldn't have a attributeNamespace property on MutationRecord
22:22
<zewt>
you should never have to care about the endianness of the system you're on; it should have no visible effects on code, ever; and you should definitely not have to test on it
22:23
<aklein>
sicking: now I'm a bit confused, are you saying attributeFilter won't stop the observer from telling me about _all_ namespaced attributes?
22:23
<zewt>
it doesn't matter that fixing it makes big-endian systems slow--and who cares? nobody's making big-endian platforms anymore
22:23
<smaug____>
sicking: it wouldn't change the record
22:23
<smaug____>
sicking: only about filtering
22:23
<jgraham>
TabAtkins: I am 100% sure that wih the current setup BE devices will be broken on most real sites that depend on binary data
22:23
<smaug____>
sicking: record must have the namespace
22:23
<sicking>
smaug____: how so?
22:23
<TabAtkins>
zewt: Shrug. From what I've heard, making the LE-everywhere assumption means that the common WebGL/WebAudio/other APIs that both generate and consume data in-page will be unacceptably slow on BE devices.
22:23
<smaug____>
because you need to know which attribute changed
22:23
<TabAtkins>
They're "work", but that's irrelevant.
22:23
<sicking>
smaug____: oh, for when you are observing all attribute changes?
22:24
<TabAtkins>
*They'll
22:24
<zewt>
what BE devices?
22:24
<smaug____>
sicking: yes
22:24
<jgraham>
TabAtkins: I would like some proof of that with actual hardware
22:24
<TabAtkins>
zewt: Aren't you assuming that BE devices exist and are important?
22:24
<TabAtkins>
jgraham: Ask Ken. He alluded to years of experience with Java's NIO.
22:24
<sicking>
aklein: sorry, yeah, so it wouldn't simplify the implementation a lot, but it seems less bugprone when attribute filters are used
22:25
<jgraham>
Then I would like someone that actually ships in those devices to say taht they would prefer the site to not work than to be slow
22:25
<jgraham>
s/in/on/
22:25
<zewt>
no, I want this fixed so other APIs (eg. encoding API) don't keep getting derailed with "well we can't return UTF-16LE as Int16Array because it's native endian!" nonsense
22:25
<TabAtkins>
jgraham: "Slow", past a certain point, is a synonym for "doesn't work".
22:25
<aklein>
sicking: I assume this discussion is happening on a review, can you send the link?
22:25
<TabAtkins>
jgraham: You wouldn't play a videogame running at 3fps. ^_^
22:25
<zewt>
also, because it's a major, infrastructural API, and shouldn't have serious fundamental errors in the spec that everyone has to wink and ignore
22:25
<jgraham>
TabAtkins: Do you have any data to say we are remotely at that point?
22:26
<sicking>
aklein: still reviewing, but when i submit the review it'll appear here: https://bugzilla.mozilla.org/show_bug.cgi?id=641821
22:26
<TabAtkins>
jgraham: Ken asserts that we are. I have no further data than that.
22:26
<jgraham>
That's not useful
22:26
<TabAtkins>
jgraham: Sorry. He provided some limited assertions in his recent emails. If you want more detail, respond there.
22:26
<jgraham>
(someone who has already made up their mind backing up their position with an assertion but no data)
22:27
<aklein>
sicking: ah, ok, was hoping you'd laid out your suggestion there. what I'm wondering is, if I observe with attributeFilter == ['foo'], will I hear about changes to someNamespace:bar? or will I not hear about any namespaced attributes if I have an attributeFilter?
22:27
<smaug____>
(aklein: sicking is shouting comments about the patch and API from the other side of the table)
22:27
<TabAtkins>
zewt: From what I understand, we're screwed anyway. If it's not native-endian, performance-critical stuff like WebGL won't work. If it is native-endian, naive use of the API will break on unexpected endianness.
22:28
<jgraham>
(and "doesn't work" is always a synonym for "doesn't work". The only way the curent situation could end well is if BE devices became so common that people had to test on both. I would bet on the opposite)
22:28
<TabAtkins>
Luckily, the "worst case" that's been talked about (the author having to test and manually reorder bytes) doesn't exist once you have DataView.
22:28
<sicking>
aklein: sorry, i don't remember enough of the spec. If you observer with attributeFilter == ['foo'], would you hear about changes to bar (in null namespace)?
22:28
<jgraham>
Which authors won't use...
22:28
<TabAtkins>
DataView still isn't maximally convenient, but it doesn't seem hard to come up with usability improvements.
22:28
<zewt>
TabAtkins: web-compat trumps performance
22:28
<aklein>
sicking: no
22:28
jgraham
-> sleep
22:29
<TabAtkins>
zewt: Make up a new LE-only binary data that you can use for non-performance-critical stuff, then.
22:29
<sicking>
aklein: ok. Then no. I don't think you should hear about someNamespace:bar, nor someNamespace:foo either
22:29
<zewt>
especially since the performance thing is meaningless (what BE platforms are there that this is actually optimizing for?)
22:29
<smaug____>
aklein: so the if you have filter you wouldn't get records about any namespaced attribute changes
22:29
<sicking>
aklein: i.e. there would be an implicit "null:" on everything in the filter
22:29
<zewt>
TabAtkins: ... sorry, what?
22:29
<TabAtkins>
zewt: I'm confused. You are questioning whether there are any BE platforms worth optimizing for. But then you complain that other APIs will break on BE platforms.
22:29
<TabAtkins>
Do you care about BE platforms or not?
22:30
<sicking>
aklein: namespaced attributes are used extremely rarely. It's only used in SVG and XBL1 as far as I know
22:30
<TabAtkins>
sicking: And SVG is dropping them in SVG2.
22:30
<aklein>
sicking: yeah, I'd be fine with this for that reason
22:30
<sicking>
TabAtkins: woohoo!!!!
22:30
<aklein>
seems like DOM4 is trying to deprecate them too
22:30
<TabAtkins>
Fucking XLink.
22:30
<zewt>
i've never claimed to care about BE platforms, but the argument that we need a broken spec that nobody would ever implement (if there ever were any) in order to optimize for those systems is just nonsense
22:30
<aklein>
(at least by deemphasizing them in the spec text)
22:30
<smaug____>
aklein: how is DOM4 trying to deprecate them?
22:31
<TabAtkins>
zewt: I'm still confused, though. Your *vehement* objection to the current spec seems to be predicated on things breaking in BE platforms.
22:31
<aklein>
smaug____: sorry, not "deprecate" so much as emphasizing the null namespace case
22:31
<shepazu>
sicking: doesn't RDFa use namespaced attributes?
22:31
<TabAtkins>
But then you dismiss arguments about performance on BE platforms.
22:31
<sicking>
shepazu: please god no!
22:31
<TabAtkins>
shepazu: No.
22:31
<shepazu>
it did at one point, I thought...
22:31
gsnedders
cares about web-compat and perf. on BE platforms
22:31
<zewt>
TabAtkins: my objection is that the spec is unimplementable, and doesn't reflect reality
22:31
<aklein>
smaug____: but this is why I don't care much about dropping them: I never use 'em
22:31
<smaug____>
:)
22:31
<gsnedders>
However, I don't think there's a solution that solves both.
22:32
<zewt>
(unimplementable due to web compat, that is)
22:32
<TabAtkins>
zewt: Your charge of "unimplementable" is based on BE platforms having problems with it due to breakage.
22:32
<TabAtkins>
So once again, do you care about BE platforms or not?
22:32
<smaug____>
aklein: sicking: I'll file a spec bug
22:32
<zewt>
why are you asking me questions that I just answered?
22:32
<TabAtkins>
Because you'r enot answering them.
22:32
<zewt>
i type fast enough already; I don't need practice
22:32
<sicking>
smaug____: awesome, thanks!
22:32
<TabAtkins>
gsnedders: That's my fear.
22:33
<TabAtkins>
gsnedders: If Ken can be proved wrong regarding the perf concerns, great. But he is experience in this, so I'm inclined to trust him. But I'm also clueless about this, so shrug.
22:33
<gsnedders>
TabAtkins: I'd rather go for web-compat and slow than no web-compat and fast in the short term.
22:33
<shepazu>
which devices are BE? ARM-based, or what?
22:33
<gsnedders>
I don't know what the relative bottle-necks are with this stuff. Depends on what you're using them for.
22:34
<TabAtkins>
zewt: You keep dismissing the "native endianness is needed for perf" by saying "who cares about perf on BE platforms?". But then you argue against native-endianness by saying that it breaks on BE platforms.
22:34
<gsnedders>
shepazu: ARM is almost entirely LE now. Some MIPS stuff is.
22:34
<TabAtkins>
shepazu: Yes, ARM is the major one.
22:34
<gsnedders>
TabAtkins: What major ARM device is BE?
22:34
<gsnedders>
(That can run a web browser)
22:34
<TabAtkins>
gsnedders: Maybe, but like I said, past a certain point "slow" means "broken" for things like games.
22:34
<TabAtkins>
gsnedders: I have no clue. I thought I'd been told that ARM is BE.
22:35
<gsnedders>
Android, iOS, Sybmian, Windows Phone… they all use LE mode.
22:35
<zewt>
TabAtkins: specs that are interoperable and don't expose platform obscurities is much more important than performance on obscure platforms
22:35
<gsnedders>
TabAtkins: Many RISC CPUs, ARM inc., are bi-endian.
22:35
<gsnedders>
Most bi-endian CPUs nowadays are used in LE mode.
22:35
<zewt>
gsnedders: qualify: "run a modern web browser" (eg. with WebGL, ArrayBuffers, the rest)
22:35
<gsnedders>
zewt: Pretty much that dfn
22:36
<TabAtkins>
zewt: Once again, that doesn't answer my question. Bad perf, in certain contexts, is equivalent to "broken". So you're saying that it's bad that the API is broken in BE platforms under some circumstances, but it doesn't matter that it's broken in BE platforms under other circumstances.
22:37
<zewt>
you can always get bad performance; you can't make that go away (you can always write WebGL apps that tax the GPU so that it's only practically usable on a desktop); so no, I don't consider slow as equivalent to broken
22:37
<gsnedders>
TabAtkins: Bad perf in certain contexts or broken in most contexts is the option here.
22:37
<TabAtkins>
Your argument is thus inconsistent. You could instead be arguing that you think perf is an irrelevant circumstance, but you haven't made that argument so far.
22:37
<zewt>
you're the only one claiming that slow == broken
22:38
<TabAtkins>
zewt: For games, it is. Do you challenge that assertion?
22:38
<TabAtkins>
For a game designed for 30fps, you can't reasonably play it at 3fps.
22:38
<TabAtkins>
It's functionally equivalent to the game throwing an error immediately, for all the good it does you.
22:39
<gsnedders>
TabAtkins: Most BE hardware with modern web browsers, even if content was delivered in BE form with native arrays, couldn't really push a 30fps game.
22:39
<zewt>
so you're saying WebGL is broken because it's possible to write a game that requires the fill rate of a $500 Geforce, and runs at .1FPS on a phone?
22:39
<zewt>
the game doesn't work, but that's not a bug in the spec or the API
22:39
<zewt>
likewise, if byte swapping makes your app too slow to run, that's unfortunate but not a bug
22:39
<TabAtkins>
zewt: Strawman. It's definitely possible to design a game optimized for phone-level hardware. The perf drop is then significant.
22:40
<TabAtkins>
I'm unsure why you think "too slow to run" isn't a problem.
22:40
<zewt>
it's not at all equivalent to the API being broken, which the spec currently is
22:41
<gsnedders>
TabAtkins: Somehow we need a solution that allows interop in all cases, even with bad perf if you use the wrong API on the wrong hardware.
22:41
<TabAtkins>
...it's exactly the same. You use the API, it runs fine on your platform, but it's unusable on other platforms.
22:41
<gsnedders>
That's my opinion, on the whole.
22:41
<TabAtkins>
That's equivalent to using the API and it erroring out on other platforms.
22:41
<zewt>
i'm also a bit appalled that anyone with any web experience is actually seriously arguing that it's okay to force web developers to care about endianness
22:41
<gsnedders>
However, I think the shit has mostly sailed.
22:42
<gsnedders>
So practically we might be unable to do little more than spec stuff as LE
22:42
<Hixie>
any web intents people around?
22:42
<TabAtkins>
gsnedders: I'm normally with you, but bad perf is *really* killer for gaming, which is a case I'd like to strongly support. So I'd prefer something that doesn't have bad perf, and is easy to use in a compat way.
22:43
<gsnedders>
TabAtkins: What I'm basically suggesting there is always a way to get native perf on a certain endianness, but there may be more ways to get bad, byte-swapping perf on it too, though the behaviour will always be consistent.
22:44
<TabAtkins>
Maybe.
22:44
<TabAtkins>
I wonder if we can do something like make XHR return a DataView for "arraybuffer"?
22:44
<TabAtkins>
Probably not, now.
22:45
<gsnedders>
A Uint8DataView makes the most sense, IMO
22:45
<zewt>
ouch, that's the most confusing name imaginable :P
22:45
<TabAtkins>
A DataView with UInt8 array-like behavior?
22:46
<gsnedders>
Better than ClampedUint8DataView
22:46
<gsnedders>
Oh, no, I'm thinking of the arrays again.
22:46
<gsnedders>
Duh.
22:46
<gsnedders>
For some reason I always think they're data views.
22:46
<roc>
TabAtkins, annevk: "They can't realistically search your entire set of OS fonts when attempting to render a page." ... well, that's exactly what Firefox does
22:46
<roc>
if necessary
22:47
TabAtkins
liked the ES record stuff that progressed too slowly and got preempted by this, because it could have let you describe the fields of your data so you get automatic byte-swapping.
22:47
<TabAtkins>
roc: I didn't know that!
22:47
<TabAtkins>
I assumed you had a normal font-stack with Last Resort at the end.
23:04
<TabAtkins>
So what's this "LE mode" I'm hearing about? And what's its relevance to the discussion?
23:05
<roc>
I discovered yesterday that ARM CPUs can switch endianness on the fly with a single instruction
23:06
<Hixie>
wow
23:06
<Hixie>
that's hardcore
23:06
<zewt>
how does that actually work? i'd think changing the endianness of your pointers would do ... bad stuff
23:06
<zewt>
only affects math, maybe?
23:06
<roc>
"carefully"
23:06
<zewt>
heh
23:06
<zewt>
"wear a helmet"
23:06
<roc>
I assumed it affects all loads and stores
23:07
<zewt>
is the opcode MSHRMCLD?
23:07
<roc>
http://www.doulos.com/knowhow/arm/Hints_and_Tips/Byte_Swapping/
23:07
<TabAtkins>
Oh, wow: "Oops! Google Chrome could not connect to hint.fm
23:07
<TabAtkins>
Other users are also experiencing difficulties connecting to this site, so you may have to wait a few minutes."
23:07
<TabAtkins>
That's pretty cool. <3 anonymous usage data.
23:08
<TabAtkins>
roc: I suppose that wouldn't help the GPU, though?
23:08
<roc>
There is a way to make the Web safe for BE machines. Have Chrome randomly emulate BE 10% of the time.
23:08
<Hixie>
i've proposed that kind of thing in the past
23:08
<zewt>
what about big-endian systems with little-endian GPUs?
23:08
<zewt>
(sorry, I had to say it)
23:08
<roc>
TabAtkins: yeah, I think what actually matters here is BE *GPUs*
23:08
<Hixie>
e.g. my websocket design required the ua to randomise the order of headers in the handshake
23:09
<TabAtkins>
I keep proposing stochastic prefix inclusion. It hasn't yet made it past the laugh test.
23:09
<zewt>
Hixie: that sounds challenging to test, heh
23:09
<TabAtkins>
But I feel like it's kinda close.
23:09
<zewt>
(a bit unreasonable to expect of servers, though)
23:09
<TabAtkins>
(That is, only release prefixed things to the release channel in X% of browsers.)
23:09
<zewt>
(er, clients, I guess)
23:10
<zewt>
seems sort of questionable to expect people to introduce complexity (and therefore bugs) in order to reduce bugs
23:10
<TabAtkins>
That's pretty much been the argument against it, yeah.
23:10
<TabAtkins>
But randomness is so useful!
23:10
<TabAtkins>
So many things can be solved easier with randomness than with a deterministic process.
23:10
<zewt>
especially since it's expecting people to introduce bugs in *their* stuff, to reduce bugs in someone else's
23:13
<roc>
It seems to me that WebGL performance issues on BE machines could be solved in the driver.
23:15
<TabAtkins>
No clue.
23:16
<TabAtkins>
roc: Btw, if you're still interested in measurement APIs and such (improvements in the vein of getBoundingClientRect, etc.), we're gaining someone who wants to do spec/impl work and is interested in this.
23:23
<Philip`>
ARMv7 apparently always reads instructions as little-endian (except for a legacy mode in the "real-time" profile which can optionally be hardwired to do big-endian); otherwise the endianness just affects all load/store instructions (including NEON ones) (not registers or arithmetic or anything)
23:24
<TabAtkins>
Looking at DataView in practice, I see why it's not expected to be used. http://code.google.com/p/webglsamples/source/browse/hdr/hdr.js#235
23:24
<TabAtkins>
Sheesh.
23:24
<TabAtkins>
You need to take an array buffer, wrap it in a data view, iterate over it with some moderately long boilerplate, and copy it into another array buffer.
23:25
<TabAtkins>
This could be made *enormously* more convenient to use.
23:26
<Philip`>
(I don't see anything saying SETEND can only be used from privileged modes, so maybe it can actually be used arbitrarily by applications?)
23:29
<TabAtkins>
Hixie: If you didn't see it, lunch next week on tuesday.
23:30
<Hixie>
TabAtkins: awesome. at goog?
23:30
<TabAtkins>
Yeah.
23:30
<TabAtkins>
Hopefully with tantek too.
23:30
<Hixie>
any idea what time?
23:30
<TabAtkins>
Let me check scrollback...
23:31
<TabAtkins>
noon
23:31
<Hixie>
k
23:31
<Hixie>
added to calendar
23:32
<Hixie>
do we have a meeting place planned?
23:33
<TabAtkins>
not yet
23:33
<Hixie>
k
23:34
<Hixie>
ok, i'm outta here. i'll be at San Jose's FRC regional the next three days. back monday.
23:45
<roc>
zewt: what do you mean, "Benoit's email"?
23:48
<roc>
hmm, I'm missing email
23:51
<zewt>
roc: "FWIW, here is a way to do this that will always work and won't rely on "luck". The key idea is that by the time one draws stuff, all the information about how vertex attributes use buffer data must be known. ..."
23:51
<roc>
I found it in the archives
23:53
<zewt>
uh, wait, what the
23:54
<zewt>
kenneth is actually talking about polymorphism dispatch overhead in Java as if it has any relevance to JS?
23:55
<TabAtkins>
The implication, I assume, is that similar JITing concerns may apply.
23:55
Philip`
supposes the most irritating case is if you have overlaps like "char data[] = { 0x01, 0x02, 0x03 }; glVertexAttribPointer(a, 1, GL_SHORT, 0, 0, data); glVertexAttribPointer(b, 1, GL_SHORT, 0, 0, data+1);", which should give one value 0x0102 and one 0x0203
23:56
<zewt>
but there's really no parallel, i think, between the way JS and Java dispatch works and optimizes
23:56
<TabAtkins>
Philip`: Ooh, that's true.
23:56
<Philip`>
(so you'd have to expand into non-overlapping arrays if you wanted to swap bytes)
23:56
<zewt>
Philip`: is "shoot the programmer in the head" an acceptable answer?
23:56
<TabAtkins>
Damn, if you pack that way you can't early-swap at all.
23:57
<Philip`>
zewt: I don't think it's explicitly undefined behaviour, so shooting the programmer is unlikely to be permitted, especially since it will violate the invariance requirements
23:57
<zewt>
Philip`: it violates the "you really, seriously need to be shot in the head" requirement
23:58
<zewt>
if WebGL was designed sanely, it just wouldn't allow that--but they're obsessed with trying to make WebGL just like OpenGL (a serious design mistake, if you ask me)
23:58
<zewt>
(making it an overlay of it, so they don't have to actually define it all, is good, of course)