04:36
<zcorpan>
<http://www.w3.org/mid/9B2DE9094C827E44988F5ADAA6A2C5DA01B93A59⊙Hppc>;
05:37
<zcorpan>
i wonder what http://lists.w3.org/Archives/Public/public-html-xml/2010Dec/0029.html would be if hsivonen wasn't on the call
07:19
<boblet>
amusing that in the MS “HTML5 site ready” article links to brucel’s snarky piece on IE’s testing center as evidence of “strong developer support”
07:19
<boblet>
British wit is indeed tricksy for the beginner
07:31
<zcorpan>
so according to timj he was the only one to think that exposing endianness in ArrayBuffer was a problem, everyone else thought it would work out fine. and now it's too late to change it
07:32
<zcorpan>
i guess we'll see how it goes
08:11
<hsivonen>
TabAtkins: if >> truncates to 32 bits, does it truncate first? that is, if you've overflown 32 bits, can you actually shift the overflown part with >> ?
08:17
<Ms2ger>
"I also completely disagree that one has to be constrained by what existing browsers do."
08:50
<erlehmann>
zcorpan, „how it goes“? you mean: one endianness becomes de facto standard, right?
08:52
<zcorpan>
erlehmann: seems like one possible outcome
08:54
<Dashiva>
TabAtkins: Yes, it truncates first
08:54
<zcorpan>
erlehmann: another is that people sniff for stuff unrelated to the endianness to decide which endianness to use, and we get stuck with that for compat
08:56
<Dashiva>
You'd think if you were exposing endian-specific behavior you'd also expose a property indicating the endianness
08:56
<erlehmann>
zcorpan, so opera and firefox may use one endianness, that, of course, microsoft, apple and nokia will deride as “proprietary” while implement their own, for which royalties will have to be paid to ENDIAN-LA.
08:57
<zcorpan>
lol
08:57
<erlehmann>
ZING! :D
09:15
<hsivonen>
Will Apple ship WebGL for PowerPC? Or will Opera be the only one of the top 5 vendors left shipping WebGL-relevant code for big-endian hardware?
09:23
<smaug____>
are all the major mobile platforms little-endian?
10:01
<hsivonen>
smaug____: Arm is little-endian and Intel Atom is too.
11:31
<hsivonen>
"Since it’s unlikely that Opera or Firefox would change their script loading/blocking behavior, this actually works just fine." http://www.nczonline.net/blog/2009/12/29/feature-detection-is-not-browser-detection/
11:33
<bga_>
Netscape alive!
11:36
<hsivonen>
bga_: ?
11:37
<bga_>
} else if (document.layers){ //Netscape < 6
11:37
<bga_>
element = document.layers[id];
11:40
<hsivonen>
ah
11:42
<hsivonen>
I saw code for Netscape 4 in a lib released this month
11:44
<bga_>
cool stuff http://www.useragentman.com/shared/js/helpers.js :)
11:54
<hsivonen>
this I hadn't seen before: https://twitter.com/#!/getify/status/26109887817
11:58
<bga_>
__parent__ too
11:58
<bga_>
__magics__ must die imho
12:01
<hsivonen>
http://labs.opera.com/news/2010/12/22/ reveals who is implementing the WAC stuff
13:34
MikeSmith
didn't know getify had a twitter account
13:46
<MikeSmith>
hsivonen: got some patches awaiting your review
13:46
<MikeSmith>
https://bitbucket.org/validator/syntax-patches/qseries?apply=t&qs_apply=spaces-around-url
13:46
<MikeSmith>
above is for allowing spaces around attribute values that expect IRIs
13:46
<MikeSmith>
that currently has the non-conforming side effect of allowing, e.g., content="5; url= http://example.com " in meta/@http-equiv=refresh
13:47
<MikeSmith>
so I think I'll also need either to add some checking for that in the assertions-checking code
13:47
<MikeSmith>
or I'll need to convince Hixie to make it conformant
13:55
<MikeSmith>
hsivonen: the other patch is this:
13:55
<MikeSmith>
https://bitbucket.org/validator/validator-patches/qseries?apply=t&qs_apply=mathml2-update
13:56
<MikeSmith>
which is for updating the MathML schema to the one that David Carlisle has made available at http://www.w3.org/Math/RelaxNG/mathml3-restricted/
13:57
<MikeSmith>
which is essentially a MathML2-compatiable subset of MathML3
13:58
<MikeSmith>
"with all element and attribute names introduced at MathML3 removed" but with more useful constraints on microsyntax/datatypes of MathML2 attribute values
14:35
<karlcow>
http://www.debeterevormgever.nl/html5-ie-without-javascript/
15:20
<Rik`>
karlcow: six years ago http://dean.edwards.name/my/abbr-cadabra.html
15:21
<karlcow>
ah cool Rik`
15:21
<Rik`>
every time someone finds a new cool technique on the web, there is a good chance Dean Edwards did it first :)
15:22
<karlcow>
is that part of the 3 laws of Internetics?
15:22
<karlcow>
:p
15:25
<bga_>
hehe
15:25
<bga_>
Dean is our god
15:52
<yod>
karlcow - the other two being that there is always someone wrong on the internet, and that any of us may or may not be a dog?
15:57
<pesla>
Does anyone know why Firefox returns a floating point number when getting the computed style for fe. the height of an element (=> 101.2px)?
16:43
<TabAtkins>
Because that's the computed style? (Actually, it's the "used value", in CSS parlance.)
16:44
<TabAtkins>
pesla: ^^^
16:48
<pesla>
TabAtkins: Why does Gecko, unlike WebKit and Trident, not round it to the pixel? I didn't know about the existance of sub-pixels actually ;)
16:48
<TabAtkins>
Gecko does round to the pixel for the "actual value", which is what is used to actually render.
16:50
<bga_>
pesla parseInt('101.2px') :P
16:50
<pesla>
bga_: Yea, i know. I'm just interested in the concept of subpixels.
16:50
<pesla>
I'm not sure why they'r usefull
16:50
<bga_>
ok
16:56
<karlcow>
yod, what about cows? :p
16:57
<yod>
whatever rocks your arch
16:58
<karlcow>
now you are talking…
17:08
<amphibi>
My group at http://www.myefact.com/ embraces open web technologies.
17:09
<TabAtkins>
Okay?
17:09
<paul_irish>
TabAtkins: correct response is: "cool story, bro."
17:09
<TabAtkins>
Damn, you're right. I fail at memes.
17:10
<paul_irish>
;)
17:10
<TabAtkins>
Yo, Paul, what song should I download at the bing music store?
17:12
<paul_irish>
TabAtkins: MOVITS! - Fel del av gården
17:12
<TabAtkins>
Will do.
17:14
<paul_irish>
TabAtkins: only because i doubt http://youtu.be/SPbijgSYe_4 is on their store.
17:14
<TabAtkins>
<3 Pogo
17:16
<TabAtkins>
Ah, this is just a Pogo tribute.
17:18
<bga_>
animated flash captchas >_<
17:18
<TabAtkins>
lolwut
17:22
<bga_>
TabAtkins http://diplodocs.ru/flash2/lecteurC_EMFSIIFRTH12215QNAUORITGDE244144HXLDDIWLYOY.swf
17:22
<TabAtkins>
Wow.
17:36
<TabAtkins>
Huh. I've reached the point where 80% of my spam is in Chinese. That's just bizarre.
17:37
<TabAtkins>
Though I suppose machine-generated broken chinese is better than machine-generated broken english, because I can't distinguish it from normal chinese.
17:58
<karlcow>
TabAtkins: if you are reading chinese fluently it is easier to hit delete key
17:58
<karlcow>
oops
17:58
<karlcow>
you are not
17:59
<TabAtkins>
I can't read *any* chinese, so it's all the same to me. ^_^
18:29
<karlcow>
david_carlisle: text/mathml is to be banished (or it is accepted) (putting aside application/mathml+xml)
18:30
<david_carlisle>
banished?
18:31
<amphibi>
Don't banish things. :(
18:31
<david_carlisle>
do you mean the mime type or mathml itself? (text/mathml was never used/registered as far as I know?)
18:35
<karlcow>
text/mathml mimetype. Some people are using online it seems
18:38
<david_carlisle>
shrug, perhaps. The interesting case for mathml on the web is anyway mathml in a document so without a mathml specific mime type. I don't think i )or the math wg) would have a view. Of course individual implementations, if they are currently checking for that and doing something, will need to take a decision about whether to carry on supporting that going forwards.
18:49
<jwalden>
dear lazyirc: is anyone still pushing shared workers? and if anyone is, are any of those entities thinking about implementing content security policies?
18:51
<TabAtkins>
Shared workers are indeed being implemented. I don't know if anyone's caring about CSP.
18:52
<jwalden>
Gecko has CSP these days
18:52
<jwalden>
pretty sure we don't have shared workers
18:52
<jwalden>
I am curious whether anyone has thought through the interaction of CSP's forbid-calls-to-eval-like-stuff with shared workers and the same prohibition in them
18:53
<jwalden>
this occurred to me just now on reading the proposed solution to https://bugzilla.mozilla.org/show_bug.cgi?id=609748
18:53
<jwalden>
it is also possible I have been entirely misled as to what shared workers are by the name, but I hadn't gotten that impression from ancient threads on it I dimly remember reading
18:55
<TabAtkins>
Shared Workers are just workers that can respond to messages from multiple pages, not just the one channel like normal workers.
18:55
<jwalden>
yes
18:56
<jwalden>
so, does that mean a shared worker should be able to eval/Function, or no?
18:56
<jwalden>
by default the answer's obviously yes
18:56
<TabAtkins>
I have no idea. ^_^ CSP stuff isnt' on my radar.
18:56
<jwalden>
guess I'll poke people on the Mozilla side, or something
18:59
<Hixie>
that's not quite an accurate description of the difference
18:59
<Hixie>
a shared worker is a worker to which one can open a channel by name after it is created
19:00
<Hixie>
both shared workers and dedicated workers can respond to messages from multiple pages and can have multiple channels, etc
19:01
<jwalden>
this seems...potentially problematic if the worker can eval, but the page accessing the worker shouldn't be able to
19:01
<Hixie>
(shared workers also have a different lifetime definition)
19:01
<Hixie>
jwalden: well it's all same-origin currently
19:01
<jwalden>
sure
19:01
<jwalden>
CSP is same-origin paranoia
19:01
<Hixie>
but sure, CSP should apply to workers too
19:01
<Hixie>
shared or not shared
19:02
<Hixie>
doesn't really matter
19:02
<jwalden>
CSP is a per-page thing, though, not a per-origin thing
19:02
<jwalden>
comes in HTTP headers
19:03
<jwalden>
I suppose one could argue this is undesirable complexity, for this case and conceivably others
19:03
<AryehGregor>
TabAtkins, comments on latest blog post: 1) Hash functions do not use "advanced math". In most cases, they just mess around with the values a lot, and then they get publicized in crypto circles for a few years, and people figure they're safe if no one finds a break. Actually, few cryptographic primitives are provably reducible to hard mathematical problems. 2) 30-character salts are just silly. Twenty random ASCII characters is already wa
19:03
<AryehGregor>
y overkill. 3) You don't need an industrial supercomputer to crack short passwords. I just wrote a program (http://aryeh.name/gitweb.cgi?p=hpc-final;a=tree;f=single) that can do 220 million SHA1 hashes a second on a $200 GPU. That gives you all 6-character ASCII passwords in about an hour if you don't make the hash slower. 4) For slow hashes, PBKDF works fine (see RFC 2898). Basically just iterate a standard hash function a large number
19:03
<AryehGregor>
of times, it's about two lines of code.
19:03
<AryehGregor>
(It would be nice if XChat used a multiline input for long messages so I had some idea how long it was before I pasted.)
19:04
<jwalden>
heh
19:04
<TabAtkins>
AryehGregor: Huh. I was sure that hashing was closely related to crypto. Oh well.
19:04
<AryehGregor>
(It would also be nice if I could find a better client than XChat.)
19:04
<AryehGregor>
TabAtkins, hashing is part of crypto, sure.
19:05
<AryehGregor>
It doesn't involve advanced math, though. The math is pretty basic.
19:06
<AryehGregor>
(at least for the hash functions I'm familiar with, which currently consists of SHA1)
19:06
<TabAtkins>
I'll make a correction. My point is just that people shouldn't screw around with trying to create their own hash.
19:06
<AryehGregor>
No, obviously not.
19:07
<AryehGregor>
But it's not math, it's cryptanalysis, and in particular being studied by lots of crypto people for a few years.
19:07
<TabAtkins>
(2) 20 vs 30 char salt doesn't really matter. I just chose 30 arbitrarily because it produced a pleasingly large number.
19:07
<AryehGregor>
Which is why you have things like the SHA3 competition. The idea is that cryptographers have a lot of incentive to break the finalists, because they've already seen a lot of scrutiny, and if you can find a break that no one else did, that's a pretty good publication.
19:08
<TabAtkins>
And because I often use 30char strings to inject entropy when I'm hashing something for verification purposes.
19:10
<AryehGregor>
Actually, regarding (4), PBKDF is not optimal for slowing down GPUs, which is what that HPC final link I gave is about. But I didn't come up with a superior system that's easy to deploy in a typical web app.
19:11
<TabAtkins>
(3) I didn't say you needed one. I said that you could use one to get sub-second cracking times, which is an impressively small number.
19:11
<AryehGregor>
I can get sub-second cracking times for four-letter passwords.
19:11
<AryehGregor>
With arbitrary ASCII.
19:11
<TabAtkins>
I don't doubt it.
19:13
<AryehGregor>
It's a lot more impressive to say it can be cracked on a $200 GPU, even if the timespan is a bit longer.
19:13
<AryehGregor>
An 8-character password selected completely at random can be done in less than a week.
19:14
<AryehGregor>
(if it's ASCII)
19:14
<TabAtkins>
I'll amend it.
19:18
jwalden
sees "pretty good publication" and immediately mentally abbreviates it, to hilarity
19:19
<TabAtkins>
AryehGregor: So no recommendations on slow hashes?
19:19
<AryehGregor>
TabAtkins, PBKDF, as I said.
19:19
<AryehGregor>
Go look at the RFC.
19:19
<AryehGregor>
Just take any hash function and run it lots of times.
19:19
<TabAtkins>
Oh, I thought you just said it wasn't optimal for slowing down GPUs.
19:19
<AryehGregor>
$hash = $pass; for ($i = 0; $i < 10000; $i++) { $hash = sha1($hash); }
19:20
<AryehGregor>
Well, it's not, but that's hard to avoid. The GPU will still be probably 100 times faster than the CPU of comparable cost, certainly tens of times faster.
19:20
<AryehGregor>
The problem is that GPUs just have vastly more compute units than CPUs. The way to slow it down a bit would be to throw in uncacheable memory access, but that's hard to conveniently arrange.
19:20
<AryehGregor>
PBKDF will still make the problem orders of magnitude better.
19:21
<AryehGregor>
Like, say, four orders of magnitude better, which buys you two arbitrary ASCII characters.
19:21
<TabAtkins>
Gotcha. Reading the RFC now, then will push an update.
19:29
<TabAtkins>
AryehGregor: Made the edits.
19:30
<TabAtkins>
Also, at some point over the xmas weekend I should finally add comment functionality, so you can just leave the comments on the blog itself. ^_^
19:30
<AryehGregor>
You still say "hash functions use advanced math closely related to cryptography".
19:31
<TabAtkins>
s/advanced math/techniques/
19:32
<AryehGregor>
Well, that paragraph is no longer technically incorrect, I don't think.
19:33
<TabAtkins>
Heh.
19:33
<AryehGregor>
Still a bit confused, but good enough.
19:34
<TabAtkins>
I'm confused about what's confused.
19:37
<AryehGregor>
Well, you know how sometimes you read something about a subject you're an expert in and go "Okay, the author of this clearly only has a vague grasp of what they're talking about"? It's like that.
19:37
<AryehGregor>
I mean, no offense.
19:37
<TabAtkins>
Hmm. You shouldn't be getting that impression at all. Perhaps it's because I'm purposely speaking in low-level terms?
19:38
<AryehGregor>
You can speak in low-level terms and still make it clear that you know what you're talking about.
19:38
<TabAtkins>
I mean, aside from the fact that I was pretty sure cryptography was strong math rather than just screwing around with stuff, I *do* know what I'm talking about here.
19:38
<AryehGregor>
Like, "it's impossible to make a transformation actually one-way" -- whether one-way functions exist is one of the major open problems in cryptography.
19:38
<AryehGregor>
"hash functions use techniques closely related to cryptography" -- no idea what that's even supposed to mean, really.
19:38
<TabAtkins>
If it's a deterministic transformation it's reversible in principle.
19:39
<AryehGregor>
Not necessarily computationally reversible.
19:39
<TabAtkins>
Sure, but I'm not saying that.
19:39
<AryehGregor>
That's what "one-way function" means.
19:39
<AryehGregor>
http://en.wikipedia.org/wiki/One-way_function
19:39
<TabAtkins>
I didn't use that term.
19:39
<AryehGregor>
You used the term "one-way".
19:39
<TabAtkins>
Yes?
19:40
<AryehGregor>
Together with "transformation".
19:40
<AryehGregor>
Well, whatever.
19:40
<TabAtkins>
Yes?
19:40
<AryehGregor>
And "transformation" means the same thing as "function".
19:40
<TabAtkins>
Sure, but you're still talking about a different domain. Something being computationally infeasible is different than something being impossible.
19:41
<AryehGregor>
Yes, but the language you use is still confusing to someone who knows what a one-way function is, because you're using jargon to mean something from its standard meaning. Even if that fits its colloquial meaning.
19:41
<AryehGregor>
So it makes it sound like you don't know what a one-way function is.
19:42
<TabAtkins>
I'm not talking to people who already know what a one-way function is. I'm saying that it's technically impossible to make a transformation unreversible, and then stating that it's possible to make it *very difficult* to reverse.
19:42
<AryehGregor>
Likewise, saying that "hash functions use techniques closely related to cryptography" makes it sound very much like you don't know how major hash functions were actually developed.
19:42
<AryehGregor>
Okay, well, anyway.
19:43
<AryehGregor>
Doesn't matter, the explanation is good enough for its target audience.
19:43
<TabAtkins>
That latter sentence is still really clumsy. Let me tweak it.
19:45
<TabAtkins>
Okay, tweaked.
19:46
<TabAtkins>
Argh, though, I'm still bothered by your other nitpick. In the immediately preceding sentence I explicitly call hashes "one-way transformations". The sentence in question, then, is just a clarification of the term.
19:46
<Hixie>
jwalden: sure. i meant that it should apply to the workers, e.g. via the http headers used for loading the script.
19:47
<paul_irish>
Hixie: know of anything in the spec about iframe recursion?
19:47
<AryehGregor>
Of course, a one-way function need not be a useful cryptographic hash function. One-wayness is really too weak for passwords, because it only cares about random inputs, and passwords are not close to random.
19:47
<jwalden>
Hixie: yes; the issue here would be a non-CSP'd page creating that shared worker (with eval enabled), then a CSP'd page with eval forbidden connecting to that shared worker and getting working eval
19:47
<paul_irish>
http://jsfiddle.net/TFvev/1/show/ recurses forever and ever in webkit but cuts off in Op and FF at some point.
19:47
<Hixie>
paul_irish: there are various things, do you have a more specific question?
19:48
<AryehGregor>
I wonder if there are definitions that better capture what's needed in a good password hash function.
19:48
<TabAtkins>
Sure. By the time people get into the subject enough to know that I'm being overly-simplistic, they should know enough to understand the full import.
19:48
<Hixie>
paul_irish: hm
19:48
<jwalden>
whereas with a normal worker it's straightforward: CSP blocks eval in page, it blocks it in workers
19:48
<paul_irish>
Hixie: just noticing some deliberate differences.
19:48
<paul_irish>
not a big deal
19:48
<AryehGregor>
An obvious modification is to allow the attacker to determine the probability distribution of inputs, and then require that they should be able to do only negligibly better than guessing the mode.
19:48
<Hixie>
paul_irish: i don't recall there being anything about a depth per se
19:49
<AryehGregor>
(for any arbitrary input distribution of the attacker's choice)
19:49
<Hixie>
paul_irish: but it's probably reasonable for the UA to have a "hardware-implementation clause" limit
19:49
<Hixie>
er
19:49
<Hixie>
hardware-limitation
19:49
<TabAtkins>
paul_irish: Change the example so that, after a short timeout, a script walks down the iframes and puts INCEPTION in the bottommost one.
19:50
<paul_irish>
lol
19:50
paul_irish
*applause*.
19:51
AryehGregor
observes that he also once reported an iframe nesting incompatibility between browsers and Hixie also brushed it off as hardware limitations
19:52
<TabAtkins>
32 nested iframes should be enough for anyone.
19:52
<TabAtkins>
Urgh, s/32/64/
19:52
<AryehGregor>
It's good to spec hardware limitations within reason, the way you can have a max nesting level of 53 or whatever Unicode bidi algorithm.
23:24
<AryehGregor>
What's up with Wordpress replacing all hyphens with en dashes, when most hyphens are actually more correctly hyphens?
23:36
<gsnedders>
It depends what you're writing, and upon style, etc. — in my case, most probably are en/em dashes.
23:42
<AryehGregor>
But it's better to leave things the way the user typed them than change them, if you have a substantial possibility of mis-changing them. Even if it's under 50%. Because if you leave it alone you've done nothing wrong, you just repeated what the user wrote. But if you change it incorrectly, you make it impossible for the user to write correctly.
23:42
<gsnedders>
Indeed. I'm absolutely against screwing stuff.
23:42
<AryehGregor>
Changing hyphens to en dashes really only makes sense if you use appropriately narrow heuristics.
23:43
<AryehGregor>
For instance, if the hyphen is both preceded and followed by a space, or if it's in between two digits.
23:43
<AryehGregor>
Then it's almost certainly meant to be an en dash (I can't think of any legitimate hyphen use there).
23:44
<AryehGregor>
On a totally different note, searching for my name online gives almost exclusively computing-related things.
23:44
<AryehGregor>
This is sad, because it makes it look like I have no interests other than computers. When in fact, I just don't do them online much.
23:46
<gsnedders>
The internet makes me look like a mixture of an emo and a computer geek.
23:54
<MrOpposite>
Good night
23:56
<AryehGregor>
Are you, in point of fact, a mixture of an emo and a computer geek?
23:57
<gsnedders>
No. I was never as emo as I overtly appeared, and nor am I solely a computer geek.
23:58
<gsnedders>
(And I certainly don't appear emo now)