00:07
<jamesr>
Philip`: qq - do you have any canvas 2d tests for globalCompositeOperation=copy and fillText()?
00:07
<jamesr>
in the suite?
00:07
<jamesr>
we fail on that currently in WebKit
00:08
<jamesr>
and implementations might use different logic for their text drawing routines than for other draw calls
00:08
<Hixie>
oh hey it turns out anyone can get an account, not just those who have sent feedback
00:08
<Hixie>
wonder when i changed that
00:10
<Philip`>
jamesr: I don't think so, though I have a note in my write-only todo list about that
00:13
<Hixie>
ok i've updated the status boxes to have an edit link
00:13
<Hixie>
also slightly tweaked them
00:15
<Hixie>
any transition experts in the house? how do i transition from height:0 to height:auto?
00:15
<jamesr>
lawl
00:15
<jamesr>
:(
00:15
<jamesr>
you don't
00:15
<hober>
heh
00:15
<jamesr>
you can measure what height:auto would resolve to and then transition from 0 to that value
00:16
<hober>
Hixie: transitions to or from auto don't work
00:16
<Hixie>
ok. that's lame.
00:16
<TabAtkins>
Hixie: Transition max-height from 0 to a mild overestimate of the height.
00:16
<Hixie>
someone fix that.
00:16
<TabAtkins>
Yes, it is totally fucking lame.
00:16
<Hixie>
TabAtkins: hmm, good idea.
00:17
<Hixie>
ok i hid the ID in the status boxes, it now appears on hover
01:06
<TabAtkins>
Cross-origin XHR is completely disallowed, right? Even just sending the request, not just receiving the response?
01:09
<jamesr>
sicking: you there?
01:10
<sicking>
jamesr: yo
01:10
<sicking>
TabAtkins: how do you mean?
01:10
<sicking>
TabAtkins: you can do cross-origin XHR using CORS
01:10
<TabAtkins>
Right, but outside of that it's disallowed.
01:10
<sicking>
TabAtkins: which means that you can make the request in many cases without the server opting in
01:11
<TabAtkins>
sicking: What do you mean? What I'm asking about is using XHR to send data from client->server only, not caring about the response back.
01:11
<TabAtkins>
(Actually asking about a different API that effectively accomplishes that.)
01:12
<sicking>
TabAtkins: yup, you can basically do that, as long as you use POST with a limited set of Content-Types
01:12
<TabAtkins>
Without having to invoke CORS?
01:12
<sicking>
well, it invokes CORS
01:12
<sicking>
but CORS doesn't do anything until it start receiving a response
01:13
<sicking>
since CORS is response-header based
01:13
<sicking>
note, that you can only do this if your POST is fairly "plain"
01:13
<TabAtkins>
That's what I thought. So the actual message from client->server gets through regardless.
01:13
<sicking>
i.e. you can't set any custom headers
01:13
<sicking>
TabAtkins: yup
01:13
<TabAtkins>
kk.
01:13
<sicking>
TabAtkins: just like with <form>
01:14
<TabAtkins>
All right, cool.
01:15
<TabAtkins>
(Context is someone pinging me about the feasibility of a built-in bugreporting function, that lets you specify a url to post to, some custom data to send, and a list of UA-provided data that you'd like, so the browser can let the user decide what to send and then post for you.)
01:15
<jamesr>
sicking: for XHR 'text' can be considered a parsed format
01:16
<jamesr>
sicking: what happens if the text is encoded in utf-8 and only part of the codepoint sequence (or whatever unicode calls it) is in the most recently received packet?
01:16
<sicking>
jamesr: then you don't return that character until in the next progress notification
01:16
<jamesr>
but the idea is the browser could ditch most of the response?
01:16
<sicking>
jamesr: yup
01:17
<sicking>
all but the last few bytes
01:18
<jamesr>
would be nice
01:18
<sicking>
TabAtkins: just make sure to not even return a error code indicating if the submission succeeded or not
01:18
<TabAtkins>
Ah, good point.
01:19
<jamesr>
what happens if you try to set .responseType after receiving a few progress events? it throws an error?
01:19
<sicking>
yes, that's already the case
07:28
<zcorpan>
ooooh http://dev.w3.org/csswg/selectors4/#attribute-case
07:36
<MikeSmith>
Hixie: I don't understand http://html5.org/r/6413
07:36
<MikeSmith>
the spec already states that maxlength on input@type=number is not valid
07:37
<MikeSmith>
so validator.nu currently emits an error for it
07:37
<MikeSmith>
this change would cause it to emit a warning in addition to an error
07:38
<MikeSmith>
unless I'm misunderstanding something
07:38
<MikeSmith>
but http://www.whatwg.org/specs/web-apps/current-work/multipage/number-state.html#number-state lists maxlength under "The following content attributes must not be specified and do not apply to the element"
07:40
<MikeSmith>
and http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary also indicates that maxlength is now allowed on input@type=number
07:41
<MikeSmith>
if the intent is to actually make it conforming but obsolete, it seems like those parts of the spec should be changed as well
07:41
<zcorpan>
MikeSmith: "should not" means it's allowed if you have a good reason
07:42
<MikeSmith>
OK
07:42
<MikeSmith>
but if so, those two parts of the spec should be changed
07:42
<zcorpan>
yeah
07:42
<MikeSmith>
I don't see how otherwise we can make any changes to the validation behavior
07:43
<MikeSmith>
I'm post a comment to the bug
09:52
<zcorpan>
so if i'm reading the spec right it allows <link rel="help shortcut icon" ...>
09:53
<zcorpan>
does that work in ie?
09:54
<zcorpan>
i guess it does since hsivonen tested it
09:55
<GlitchMr>
I will check :P
09:57
<GlitchMr>
http://glitchmr.pl/private/favtest.php
09:57
<GlitchMr>
It seems to work under IE9
09:58
<GlitchMr>
It also seems to work under Quirks Mode...
09:58
<GlitchMr>
validator.nu seems to accept such structure and it seems to not cause issues with IE
10:00
<GlitchMr>
But then, semantically it doesn't make sense
10:00
<GlitchMr>
How can be shortcut icon helpful?
10:03
<zcorpan>
heh
10:04
<zcorpan>
well it must be helpful for something else you wouldn't include it in the first place
10:04
<GlitchMr>
You can use <link rel="help" href="..."> for help pages for examples
10:05
<GlitchMr>
example*
10:05
<GlitchMr>
Many browsers show their help on "About"->"Help" or something like this. Some might have reason to insert help into webpage :P
10:06
<GlitchMr>
But favicon.ico is helpful by itself (in visual browsers), but it's not help page...
10:13
<zcorpan>
Hixie: can you make the status boxes increase z-index on hover so you can access ones that are overlapped by other status boxes?
10:26
<Ms2ger>
Oh hey, I'm below zcorpan in status annotation edits...
10:26
Ms2ger
goes off to fix that
12:43
Ms2ger
shoots
16:35
<dglazkov>
good morning, Whatwg!
16:41
<TabAtkins>
Alan Gresley just said my head might be filled with crack. ;_;
16:42
<jgraham>
Is this from the "chocolate teapot orbiting the sun" school of "might"?
16:43
<TabAtkins>
Not sure. Alan's kinda crazy himself.
16:45
<Philip`>
TabAtkins: Sounds like you could make a fortune by selling your head
16:46
<AryehGregor>
TabAtkins, what probability are we talking about here? I mean, not to put too fine a point on it, but that would m -- drat, Philip` beat me to it.
16:46
<AryehGregor>
I mean, what would that be, a few pounds of crack? What's the street value of that?
16:47
<dglazkov>
I somehow doubt it's crack.
16:47
<TabAtkins>
I like my head. If there's crack in there, evidence says that I'm using it to think.
16:47
<dglazkov>
ah. that's where the old "get cracking" saying comes from.
16:47
<Philip`>
Heads are nice, but money is nice too, so you have to balance both sides of the argument
16:49
<Ms2ger>
I mean, half a head would be about as useful, no?
16:49
<TabAtkins>
I use more than half of my head.
16:50
<gsnedders>
int a = 5; int *ptr = &a; size_t foo = ptr; <- foo is now the memory address that ptr points to, right?
16:50
<Ms2ger>
How much of that is just for waste-ink?
16:50
<Ms2ger>
gsnedders, surely that would warn
16:50
<TabAtkins>
Ms2ger: Ooh, good point.
16:51
<Philip`>
gsnedders: I think so, though I'm not sure size_t is guaranteed to be pointer-sized
16:51
Ms2ger
liked that name
16:51
<Philip`>
intptr_t is better if you want a pointer-sized int
16:51
<Ms2ger>
I think gsnedders actually wants = *ptr
16:51
<Philip`>
That would give foo = 5
16:52
<Ms2ger>
Right
16:52
<Ms2ger>
I knew that! ;)
16:52
<gsnedders>
Ms2ger: I don't want foo = 5; I want the address that ptr points to.
16:52
Philip`
has no idea what gsnedders actually wants
16:52
<Philip`>
Ah
16:52
<gsnedders>
The memory address of a, effectively.
16:52
jgraham
doesn't like to think about what gsnedders wants
16:53
<Philip`>
ptr is already the memory address
16:53
<Ms2ger>
Why the hell are you trying to stick that into a size_t?
16:53
<Philip`>
so if you copy it into another variable then it's still that memory address (modulo 2^something)
16:53
<gsnedders>
Philip`: Okay, that's what I thought.
16:54
<Ms2ger>
But you do want intptr_t or uintptr_t
16:55
<jgraham>
Gotta love C and all the million sometime-interchangable, but not safely, types
16:57
<Ms2ger>
Don't you like C++ more? It has namespaces!
16:57
<Philip`>
If you want to be like the cool kids you could store the pointer in the NaN space of a double
16:57
<Ms2ger>
Philip`, ... do you do that?
16:57
<Philip`>
I'm not cool enough :-(
17:01
<gsnedders>
Ms2ger: JS engines do, on 32-bit arches
17:01
<Philip`>
At least SpiderMonkey on 64-bit too
17:02
<Ms2ger>
JS engines are a mess of their own
17:02
Philip`
thinks nanboxing and nunboxing would be interesting new Olympic sports
17:03
<gsnedders>
Philip`: How? Assuming no pointer will be over 53-bits?
17:03
<Philip`>
gsnedders: 47 bits, I think
17:04
<gsnedders>
Then what about the other six? Obviously they have to reserve one NaN value as NaN, and it can't be zero (because then it's not NaN but Inf)
17:05
<gsnedders>
Ms2ger: (The reason why I was using size_t above was because that's what Cython does… although I know it isn't guaranteed to work…)
17:09
<Philip`>
gsnedders: amd64 only has 48-bit virtual address space, and I think the 48th bit is magic and is always 0 in interesting OSes
17:09
<gsnedders>
Philip`: Ah.
17:10
<Philip`>
(http://en.wikipedia.org/wiki/X86-64#Canonical_form_addresses etc)
18:13
<Hixie>
zcorpan: done (the z-index thing)
18:18
<Ms2ger`>
People might be somewhat interested in http://lists.w3.org/Archives/Member/w3c-ac-members/2011JulSep/0007.html (MO)
18:53
<espadrine>
Ms2ger`: There is no locked-up equivalent to that mailing-list, is there?
18:54
<Ms2ger`>
Hmm?
19:19
<espadrine>
Ms2ger`: We can't access http://lists.w3.org/Archives/Member/w3c-ac-members/2011JulSep/0007.html
19:19
<Ms2ger`>
Right
19:20
<espadrine>
without W3C names
19:20
<Ms2ger`>
Would've linked to a public copy if there was one
19:21
<espadrine>
too bad there isn't one
19:24
<gnarf>
seems to be an error in http://www.whatwg.org/specs/web-apps/current-work/multipage/urls.html#url-decomposition-idl-attributes regarding the "port" attribute
19:25
<gnarf>
ooo wait
19:25
<gnarf>
nvm
19:25
<gnarf>
read a column header wrong
19:26
<gnarf>
cancel the alarm!!!
19:26
gnarf
hides
21:29
AryehGregor
discovers another person who spells his name Areyeh -- interesting
21:46
<KevinMarks>
there's now a .ss TLD coming. Who's going to get c.ss ?
22:11
<karlcow>
http://highscalability.com/blog/2011/8/10/leveldb-fast-and-lightweight-keyvalue-database-from-the-auth.html
22:11
<TabAtkins>
Ooh, that sounds fun.
22:12
<karlcow>
wondering if it will show up in Google line of products
22:12
<karlcow>
ah it's already
22:12
<karlcow>
"LevelDB is being used as the back-end for IndexedDB in Chrome. For designing how to map secondary indices into LevelDB key/values, look at how the IndexedDB support within Chrome is implemented."
22:14
<TabAtkins>
Yeah, sqlite has corruption issues when it runs for a long time (not really its fault - its from occasional misplaced writes in other processes).
22:14
<Hixie>
"misplaced writes"?
22:15
<TabAtkins>
You know, writes to a dangling pointer or something. Otherwise known as "security vulnerabilities".
22:15
<Hixie>
how can you cause corruption in another _process_?
22:15
<Hixie>
don't modern OSes pretty much make that impossible?
22:15
<TabAtkins>
Dont' ask me. I'm recalling lunchtime conversation.
22:16
<Hixie>
if the problem is other code in the _same_ process randomly stomping on the space used by the sqlite library, it seems any library would suffer the same problem
22:16
<AryehGregor>
Hixie, maybe when two processes have the same database file open and one writes to it in a way that's not coordinated with the other, so the other winds up reading garbage somehow?
22:17
<Hixie>
that'd be a bug in sqlite's locking
22:17
<AryehGregor>
I thought only one process can open an SQLite database at a time, though.
22:17
<AryehGregor>
Yeah, I dunno.
22:17
<TabAtkins>
AryehGregor: It wasn't sqlite's problem directly; it was definitely memory corruption coming from elsewhere.
22:18
<zewt>
so it's very wrong to say "sqlite has corruption issues"
22:18
<Hixie>
yeah i don't see why sqlite would be any more at risk than leveldb
22:19
<Hixie>
but what do i know :-)
22:19
<zewt>
which I doubt anyone would accept anyway; sqlite should be high on any competent programmer's top-five list of most reliable libraries in the world
22:20
<karlcow>
the storage library the highest on my list is definitely… my fridge!
22:20
<karlcow>
every day, a few times a day.
22:21
<TabAtkins>
zewt: From the conversation I had with a guy working on indexeddb, sqlite made some not-strictly-required architectural decisions that mean that it holds its memory for too long, making it more subject to this kind of corruption.
22:22
<zewt>
sounds like a very contrived argument
22:22
<TabAtkins>
I may be misstating things.
22:22
<TabAtkins>
zewt: I'm not sure what you're trying to imply. We used sqlite. We had regular db corruption. We traced it to a problem with the design of sqlite.
22:23
<jgraham>
It seems to me that "it's not designed to be a k-v store" might be a god enough reason on its own to think about other solutions for indexeddb
22:23
<jgraham>
*good
22:23
<TabAtkins>
I'm not saying sqlite is horrible. I'm saying it didn't suit our needs, so we designed a new one.
22:23
<jamesr>
i don't think the primary motivation for leveldb was sqlite db corruption bugs
22:23
<jamesr>
although it may have been one
22:23
<TabAtkins>
jgraham: Indeed, that too.
22:23
<jamesr>
jgraham: exactly
22:23
<zewt>
... if library X writes to random memory locations and corrupts memory owned by library Y, it is not in any conceivable sense library Y's fault for "holding that memory for too long"
22:23
<TabAtkins>
jamesr: It was the reason that FileSystem is switching from sqlite to leveldb, at least.
22:23
<zewt>
"i shot some bullets down the street and someone got hit, it's hit fault for standing there for so long"
22:23
<Philip`>
Most databases have a separate server process, so only bugs in that process could scribble over the database, whereas SQLite runs in the address space of the host application so it's vulnerable to bugs in any applications that touch the database
22:24
<TabAtkins>
zewt: Robustness. If Y can avoid a lot of those problems, but it doesn't, then that's a problem.
22:24
<Philip`>
though LevelDB seems to be embedded in applications too so it'd be just as vulnerable
22:24
<zewt>
avoid problems caused by unrelated code smashing memory? sorry, that's utter nonsense
22:24
<gsnedders>
TabAtkins: Why have there not been issues with corruptions with the insane number of other people using SqLite3?
22:24
<TabAtkins>
zewt: I'm not blaming anybody, so don't treat it as a personal attack. I'm saying that we needed something that didn't stand in the street quite so long.
22:24
<zewt>
problems caused by code smashing random memory (or whatever) is the fault of that code and that code alone
22:24
<karlcow>
http://google-opensource.blogspot.com/2011/07/leveldb-fast-persistent-key-value-store.html
22:25
<TabAtkins>
gsnedders: No clue. Again, I'm relaying lunchtime conversation.
22:25
<zewt>
i'm not treating anything as a personal attack; i have nothing to do with sqlite development
22:25
<karlcow>
http://leveldb.googlecode.com/svn/trunk/doc/benchmark.html
22:25
<zewt>
i'm saying it's a ridiculous, nonsensical reason to change libraries.
22:25
<Hixie>
either it's a bug in sqlite that should be fixed, or it's a bug in the surrounding code and leveldb would be equally vulnerable, as far as i can tell
22:25
<jamesr>
no, there were others
22:25
<TabAtkins>
zewt: If you're shooting bullets into the street, it's your fault when you hit somebody. But if you're relying on something that needs to cross the street, it's better to rely on one that won't spend as long in the crossfire.
22:26
<jgraham>
Quick to the car metaphors!
22:26
<TabAtkins>
Car metaphors explains EVERYTHING.
22:26
<jgraham>
+,
22:26
<zewt>
changing libraries means whoever's firing the bullets is going to be hitting other things, and it'll be some other random piece of code being broken
22:27
<TabAtkins>
zewt: ...yes? And with luck, it'll be something that doesn't lose long-term data when it errors out.
22:27
<Hixie>
luck seems like a rather crappy design philosophy :-)
22:27
<zewt>
it's just nonsense FUD that'll lead less experienced developers to believe that "leveldb" (whatever that is) is more reliable than sqlite, which is bogus
22:27
<jamesr>
i'm pretty sure that leveldb is no safer to memory corruption in your process than anything else
22:28
<Hixie>
yeah i don't see how it could be
22:28
<TabAtkins>
zewt: Argh, I'm saying, very specifically, that one of *our* teams is running into this problem with sqlite, and is switching to leveldb because it fixes the architectural issue.
22:28
<zewt>
if you really want to protect from corruption, move your sqlite access into a helper process and proxy SQL commands to it
22:28
jgraham
thinks that having arguments based on half-remembered lunch conversations using metaphors involving violent death is probably not the road to enlightenment
22:28
<zewt>
which seems like a much simpler engineering task than changing backends
22:29
<zewt>
and much more effective
22:29
<TabAtkins>
zewt: I'm not talking about general engineering advice to the world at large.
22:29
<Philip`>
The road to enlightenment is strewn with randomly-shot bullets that luckily missed all the databases
22:30
<TabAtkins>
How true.
22:30
<jamesr>
since it's a piece of software
22:30
jamesr
agrees with jgraham and goes back to work
22:30
<jgraham>
Ah, well in that case I will know to take that one rather than the one paved with good intentions
23:12
<AryehGregor>
http://html5.org/r/6419 ++
23:12
<AryehGregor>
Way too many people get that wrong.
23:12
<Hixie>
srsly