00:02
<Philip`>
Does Gmail have a "next unread message in folder" button? (I want to find the 6 unread out of ~2000, and don't fancy paging through the whole list...)
00:04
<Lachy>
can't you sort by read status?
00:05
<Philip`>
I can't see any way to sort by anything
00:05
<Lachy>
really?
00:06
<Philip`>
Yes
00:06
<Philip`>
I hope I'm not just missing something obvious...
00:06
<Lachy>
wow, one more reason not to use gmail
00:06
<Lachy>
I can't see a way to sort the list of spam in my gmail inbox either.
00:06
<Philip`>
I guess the idea is that you search instead of sorting
00:07
<Lachy>
yeah, but what keyword do you use for unread messages?
00:07
<Lachy>
I just use IMAP. Although Thunderbird has some annoyng limitiations that I hope they fix soon
00:08
<Philip`>
Hmm, the advanced search thing lets you search for unread messages with e.g. a certain From address
00:08
<Philip`>
It doesn't seem to let me search for unread messages with a certain label (because 'unread' and labels are all choices in a single drop-down list), but the From thing works well enough here
00:09
<Lachy>
LOL
00:09
<Lachy>
I thought google would at least know how to make a usable search interface
00:10
<Lachy>
although, I must admit that gmail's search ability is superior to that of any mail client on the desktop
00:10
<Philip`>
Aha, I can use the search box with "label:blah is:unread", which is entirely unintuitive and seemingly undocumented
00:10
<Philip`>
(although admittedly I haven't tried looking for documentation, but I'm just a normal lazy user so that's the documentation's fault for not coping with me)
00:11
<Lachy>
aha, so you want a help system that pops up and gives you exactly what you want when you need it?
00:11
<Lachy>
... like Clippy! :-)
00:12
<Philip`>
Not quite like that, since Clippy gives me exactly what I don't need when I don't want it
00:15
<Hixie>
jwalden: odd. are you logged in?
00:16
<jwalden>
Hixie: yes
00:16
<Hixie>
odd
00:16
<Hixie>
i've filed the bug
00:16
<jwalden>
cool
00:17
<jwalden>
does Google have any external bug-reporting system, other than employee connections?
00:17
<jwalden>
;-)
00:17
jwalden
suspects not
00:19
<Hixie>
jwalden: yeah, there's a feedback form somewhere
00:20
<Philip`>
It's irritating when you don't get any feedback from your feedback
00:20
<jwalden>
not quite the same, for ^ reason
00:21
<Hixie>
yeah
00:21
<Hixie>
i know
00:21
<Philip`>
It's nice reporting Mozilla bugs because you can see that someone has actually looked at what you wrote
00:21
<Hixie>
we have public bug reporting systems for all our open source projects
00:22
<Hixie>
but can you imagine the spam we'd get if we made the main google search engine have a public bug reporting system...
00:22
<Hixie>
not that i think that's a reason to not have one
00:23
<Philip`>
(Being public isn't always sufficient - I tried reporting some IE8 bugs (including one crash) via the only apparent route (posting on the newsgroup), and as far as I can tell my posts got ignored entirely and not entered into any bug tracking system)
00:23
<jwalden>
it's certainly understandable, just not pleasing
00:23
<Philip`>
(Complaining on IRC with developers present is a far more effective solution)
00:23
<Hixie>
ie has some public bug system
00:23
<Hixie>
i could never get it to work right though
00:24
<Philip`>
It's read-only to general members of the public, from what I read and from what I tried
00:24
<Philip`>
or maybe you can still write comments and vote on issues, but can't file new bug reports
00:25
<Hixie>
how do i spec showModalDialog() without making the web worse
00:26
<Philip`>
Define it to be modal only with respect to the page content, and not with respect to other tabs or browser chrome?
00:27
<Philip`>
(so it's not much worse than overlaying a giant invisible div over your page to stop people interacting with it)
00:27
<Philip`>
I suppose it's too late to use the lessons from XHR and make showModalDialog asynchronous
00:33
<tomg>
asynchronous how?
00:33
<Philip`>
I have no idea
00:34
<tomg>
how isn't it asynchronous?
00:37
<Philip`>
It's not asynchronous because the function call doesn't return until much later
00:38
<tomg>
showModelessDialog then
00:39
<jwalden>
== open?
00:40
<Philip`>
I suppose it could block all user interaction, but return immediately and still run scripts in the background window
00:40
<tomg>
no
00:40
<tomg>
showModelessDialog opens an always-on-top dialog where you can still interact with the original opening page
00:40
<Philip`>
(though showModalDialog couldn't do that without totally breaking anyone who currently uses it)
00:42
<Philip`>
Hmm, the very first page I found that uses showModalDialog is complaining that the 'arguments' array doesn't accept strings longer than 4K, so it's splitting its input string into a load of 4K chunks to pass them into the dialog
00:42
<Philip`>
(http://www.icrc.net/ )
00:43
<Philip`>
s/'arguments' array/'arguments' argument/
00:44
<tomg>
showModalDialog is fundamentally very poorly designed
00:45
<tomg>
awful IE4 hack on
00:45
<tomg>
with truly bizarre syntax
00:46
<Philip`>
I hope the documentation is wrong when it says the last two arguments are each independently optional
00:47
<tomg>
hmm
00:47
<Philip`>
("vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])" - does that mean I can say showModalDialog(url, features)?)
00:47
<Philip`>
(I can't see how that would work without mind-reading)
00:48
<jwalden>
I think it means the last argument, if multiple args are present, is the features
00:48
<jwalden>
still, miscommunicated
00:48
<Hixie>
Philip`: don't question msdn
00:49
<Hixie>
Philip`: once you start down that road, you'll have decades of work ahead of you
00:49
<Philip`>
http://www3.asmenet.it/opencms/opencms/asmenet/caloveto/ - window.showModalDialog(TitleModal,sURL,sparam); - looks like they forgot to check what arguments the function actually takes
00:50
<tomg>
msdn is a bit like the bible
00:51
<Philip`>
We need an MSDN5
00:51
<Hixie>
Philip`: later on that msdn page:
00:51
<Hixie>
"You can set the default font settings the same way you set Cascading Style Sheets (CSS) attributes (for example, "font:3;font-size:4"). To define multiple font values, use multiple font attributes.
00:51
<Hixie>
"
00:53
<takkaria>
Humphrey Lyttelton has died. :(
00:53
<tomg>
yes :(
00:53
<tomg>
MSDN is wrong by the way, you can't set features without an argument
00:58
<Philip`>
MSDN is wrong?!
00:59
<tomg>
I know
00:59
<tomg>
first time for everything
00:59
<tomg>
quick, billg⊙mc
01:02
<takkaria>
append "sorry to hear your profits dropped 11% this quarter"
01:04
<Philip`>
Hixie: Hmm, font-size (and font) do seem to work, but I can't find any other CSS properties that do anything
01:04
<Philip`>
"font-size:4" is a bit silly since it uses 4pt font
01:04
<Philip`>
s//a /
01:13
<Philip`>
I like how Syck gives me excellent error messages when parsing probably-broken YAML
01:14
<Philip`>
like "Segmentation fault", and, uh, that's about its whole range
01:15
<Dashiva>
Such an informative error at that
01:17
<Philip`>
Aha, PyYAML is much better (but much much slower) and points me at line 4495 and tells me exactly what I've done wrong
02:05
<Hixie>
showModalDialog can be used for cross-domain communication!
02:05
<Hixie>
crazy
02:13
<othermaciej_>
it can?
02:13
<othermaciej>
oh
02:13
<othermaciej>
because you can show something from another domain as a modal dialog and it can return a value
02:13
<othermaciej>
wacky
02:19
<Hixie>
othermaciej: and you can pass a value
02:19
<Hixie>
i'm amazed nobody has used this before
02:19
<Hixie>
i mean you get some flicker, sure
02:19
<Hixie>
but that never stopped people before
02:28
<Hixie>
holy batman
02:28
<Hixie>
you can send strings to other domains in firefox using returnValue without creating a window
02:29
<Hixie>
oh but you have to have created the window using showModalDialog()
02:33
<Hixie>
you can't navigate the browsing context in ie
02:38
<mcarter>
othermaciej, Hixie, another concern about the connect() function vs. constructor connecting arugment: if a TCPConnection constructor causes a network access, then prototype-based subclassing becomes impossible. Maybe thats intended?
02:39
<Hixie>
and fragment identifiers don't work at all
02:39
<Hixie>
mcarter: why does it become impossible, and why is that a problem?
02:39
<othermaciej>
mcarter: prototype-based subclassing of builtin DOM classes does not seem super important
02:40
<Hixie>
how would you override the XMLHttpRequest constructor or the Image constructor?
02:41
<othermaciej>
you could make an object that has an XMLHttpRequest instance or an HTMLImageElement instance as its prototype
02:41
<othermaciej>
although I do not know why you would want to
02:41
<mcarter>
well, you generally would do SubClassTCPConnection.prototype = new TCPConnection()
02:41
<mcarter>
its just a thought, It probably has no bad implications -- I just don't know much about how often native types are subclassed
02:42
<Hixie>
how does that work with any constructor that does any work at all?
02:42
<Hixie>
e.g. Image(width)
02:43
<othermaciej>
it is certainly not very useful
02:43
<Hixie>
k, i won't worry about it :-)
02:43
<othermaciej>
SubClassImage.prototype = new Image() would still leave you with only one read HTMLImageElement
02:43
<Hixie>
showModalDialog is insanity in a bottle
02:43
<othermaciej>
and it wouldn't be insertable into the DOM or anything
02:43
<othermaciej>
Hixie: it's high on my list of most-loathed feature that we had to actually implement
02:44
<Hixie>
the browsers all do it differently -- go figure, no spec, no interop
02:45
<Hixie>
http://www.whatwg.org/specs/web-apps/current-work/#showmodaldialog
02:45
<Hixie>
is what i have so far
02:49
<heycam>
Hixie, s/the the/the/ a couple of times in that section 4.4
02:49
<heycam>
actually, just search for "the the" in the document there are a few more instances
02:49
<heycam>
(though a couple aren't typos)
02:49
<Hixie>
thanks, will fix
02:51
<Hixie>
heycam: so returnValue brings up an interesting problem
02:51
<Hixie>
i need a DOM attribute that is not there unless a particular condition is in effect
02:51
<Hixie>
window.returnValue is nothing at all unless the browsing context was created by showModalDialog
02:52
<heycam>
so ('returnValue' in window) has to be false?
02:54
<Hixie>
typ
02:54
<Hixie>
yup even
02:54
<Hixie>
and true if the Window was created by showModalDialog
02:54
<Hixie>
actually no
02:54
<Hixie>
true if the Window is for a browsing context that was created by showModalDialog
02:56
<Hixie>
i guess i can just say it's an interface implemented by those windows
02:56
<Hixie>
that's what mozilla does
02:56
<heycam>
hmm
02:57
<heycam>
i guess that solves it
03:00
<Hixie>
IE doesn't send these dialogArguments cross-origin at all
03:01
<Hixie>
hmm
03:01
<Hixie>
dinner first
03:01
<Hixie>
bbl
05:40
<inimino>
mcarter: is there a mailing list for the TCPConnection stuff you're implementing?
06:57
<mcarter>
inimino, the best mailing list to use is http://groups.google.com/group/orbited-users
06:58
<mcarter>
inimino, its all a part of an upcoming release
06:59
<inimino>
mcarter: thanks, subscribed
07:00
<mcarter>
inimino, keep in mind, thats also a end-user-facing list
07:00
<inimino>
inimino: right
07:02
<inimino>
btw I tried implementing something like what othermaciej was talking about earlier in Apache and it looked like it would involve writing a new MPM at the time
07:02
<othermaciej>
what is MPM?
07:03
<inimino>
the Apache modules that handle actual the actual sockets, processes, threads
07:04
<inimino>
"multi-processing module" is the expansion
07:05
<inimino>
you don't have enough control in a plain vanilla module to hold the socket open and do Comet-type stuff
07:07
<inimino>
at least not efficiently
07:08
<othermaciej>
are MPMs harder to write?
07:09
<inimino>
othermaciej: yes, and Apache can only use one MPM at a time
07:11
<inimino>
othermaciej: the main ones are the worker MPM, event MPM, prefork MPM
07:11
<inimino>
each one has it's own strategy for handling sockets, spawning worker threads, etc
07:13
<inimino>
I was hoping the newer Event MPM would let me do what I wanted with Comet in an efficient way, but Apache really isn't written to support long-term connections
07:15
<mcarter>
inimino, some of the work we're doing with orbited is all about integrating synchronous webservers with comet
07:16
<othermaciej>
inimino: so none of the MPMs gives regular type modules a raw connected socket to play with?
07:16
<mcarter>
inimino, for instance, we have it setup so you can do full duplex to your webapp. when you do browser->server, it results in an HTTP callback hitting your web server (the orbited server makes the http call), and when you do server->browser you use a custom client to dispatch back to the browser via orbited
07:18
<inimino>
othermaciej: I'm trying to recall the exact problems I ran into, I ended up not using Apache so the details are a little fuzzy
07:19
<inimino>
mcarter: so orbited is acting like a reverse proxy in front of e.g. Apache?
07:20
<mcarter>
inimino, sort of. you still make static requests directly to apache
07:20
<mcarter>
inimino, you can use orbited for purely downstream if you want. in which case you make xhr requests directly to apache
07:21
<inimino>
mcarter: so orbited runs on a different port?
07:21
<inimino>
I guess I should install it and read the docs ;-)
07:22
<mcarter>
inimino, heh, it does run on a different port
07:22
<inimino>
ok
07:22
<mcarter>
inimino, right now the 0.3 release that we have is very experimental. we're waiting on the next release to be much more stable, as well as support the TCPConnection api
10:52
<hsivonen>
Philip`: are there non-linked pages under http://canvex.lazyilluminati.com/misc/stats/ ?
10:52
<hsivonen>
I'm trying to navigate to your charset analysis and I don't find it
10:53
annevk
thought modal dialogs were evil and would not be supported by HTML5
10:54
<hsivonen>
at it was http://philip.html5.org/data/charsets.html
11:18
<hsivonen>
http://www.w3.org/mid/481226BB.1000108⊙ac
11:31
<annevk>
seems people still don't understand that attributes are not in a namespace
11:31
<Lachy>
I don't get why he thinks chameleon namespaces are a good idea
11:45
<hsivonen>
I replied
11:52
<annevk>
you know, it would be fun if we had journalists for our little markup wars
11:52
<annevk>
for day-to-day reports, that is
11:53
<hsivonen>
annevk: having one issue or another up on Slashdot from time to time would be a more regular thing if we had embedded journalists
11:54
<annevk>
that doesn't seem bad per se
12:05
<annevk>
hmm, the Forms WG is still busy to retrofit XForms to fit HTML syntax
12:05
<annevk>
http://lists.w3.org/Archives/Public/public-forms/2008Apr/0108.html
12:06
<hsivonen>
annevk: what's there to gain from such retrofitting compared to WF2?
12:07
<annevk>
I think the idea is that: 1) Everything will map to XForms and can be implemented by an XForms processor. 2) XForms will become easier to learn.
12:08
<hsivonen>
annevk: so what do authors or implementors gain if there's an 'XForms processor' compared to a WF2 processor?
12:08
<hsivonen>
or scripting and XHR
12:09
<annevk>
So the perceived gain is that XForms will still be around I suppose.
12:09
<annevk>
I think the sunk cost fallacy might apply here as well.
12:09
<hsivonen>
oh yes indeed
12:16
<hsivonen>
Philip`, takkaria: I just checking in a refactoring on the parsing algorithm that needs no lookahead and breaks entity consumption and all into main loop states
12:17
hsivonen
proceeds to refactor the code some more
12:18
<hsivonen>
actually, parseErrorUnlessPermittedSlash is still a method
12:18
<hsivonen>
I'll remove it in due course as I implement the MathML stuff
12:23
<Philip`>
hsivonen: http://philip.html5.org/data.html links to most of my stuff
12:23
<hsivonen>
Philip`: thanks
12:24
<Philip`>
(except "most" means there's still a load that I haven't bothered linking to)
12:24
<Philip`>
(which I should get around to at some point)
12:25
<hsivonen>
it's fun how goto is considered harmful, but switch/continue programming is essentially goto and it's really useful for tokenization
12:25
<annevk>
Philip`, could you remove a { color: inherit; text-decoration: inherit; } and a:hover { text-decoration: underline; } from that page?
12:25
<hsivonen>
though switch/continue only produces natural loops, so I guess it's better for compilers than unrestricted goto
12:26
<Philip`>
annevk: I was trying to avoid having the entire page be underlined, since pretty much all the text is links and that'd look ugly
12:26
<hsivonen>
Philip`: the text now lacks the clickability affordance
12:27
<Philip`>
I think I agree the current solution is more ugly than the alternative :-)
12:28
<Philip`>
Fixed
12:29
<hsivonen>
Philip`: thanks
12:29
hsivonen
sees the spec is moving from en-GB-x-hixie to en-US-x-hixie
12:32
<Philip`>
hsivonen: switch/continue is much more constrained than goto, so it's not subject to lots of the possible abuses of goto
12:32
<Philip`>
e.g. you can only jump out of switch blocks, you can't jump into them
12:35
<Philip`>
I think I read somewhere that ANTLR was changing from generating Java code to generating JVM bytecode, mostly so it could use 'goto' and generate more efficient parsers
12:41
<hsivonen>
Philip`: I have two main patterns: state = State.FOO; continue consume; and state = State.FOO; continue reconsume;
12:41
<hsivonen>
Philip`: the former means: goto read character, then goto FOO.
12:41
<hsivonen>
Philip`: the latter means goto FOO
12:42
<hsivonen>
I suppose bytecode rewriting the latter case to pure goto wouldn't be a big win
12:42
<hsivonen>
I don't know if the former could be rewritten to gotos. that is, I don't know if the Java byte code allows holding a jump position in a variable
12:43
<hsivonen>
for doing goto FOO after first doing goto read
12:43
<hsivonen>
anyway
12:44
<Lachy>
I just noticed htmlfive.net now appropriately says this at the top: "Please bear with me as this site is constructed. As of now, most of the content from this site comes from the official WHATWG blog. Please note that this site does not contain original content, and is a central location for all known news concerning HTML5. All articles and pages on this blog, unless explicitly stated otherwise, are licensed under the MIT license. "
12:44
<Lachy>
I wonder if that was there before and we just didn't notice it
12:47
<hsivonen>
Philip`: it seems to me that Java byte code-level inline rewriters are out of fashion even though generating JVM byte code from non-Java languages is on the rise
12:50
<hsivonen>
Philip`: do you know if Antlr will do something that a generic byte code rewriter are a smarter javac couldn't do with switch/continue pattern recognition?
12:51
<hsivonen>
one would think that setting the switch condition variable and saying continue immediately would be a pattern that a compiler *could* be written to pick up
12:52
<hsivonen>
s/rewriter are/rewriter or/
12:52
<hsivonen>
it's scary that I now make typos that look like speech-to-text errors
12:54
<Philip`>
Hmm, might be http://www.antlr2.org/blog/antlr3/codegen.tml under "October 19, 2004" that I was thinking of
12:56
<hsivonen>
I sure hope a massive switch is no longer "slow as death" compared to "slow" method calls
12:56
<hsivonen>
on HotSpot
12:57
<Philip`>
It would be nice if "hope" could be replaced by something more reliable, like benchmarks :-)
12:57
<hsivonen>
Philip`: oh I do intend to run a benchmark in due course
12:57
<hsivonen>
Philip`: but it will suck if the result is that the new code is slower than the old code
13:04
<hsivonen>
hmm. I wonder how I can run a valid Java6 or Java7 benchmark on x86_64 server VM when the my Linux system is virtualized
13:05
Philip`
likes being able to do large changes to a thousand of lines of tokeniser code (e.g. to add inner loops for runs of characters inside each state) just by adding a dozen lines of OCaml to his tokeniser-generator :-)
13:09
<hsivonen>
it'll be fun to update all the tokenizer tests to include a selfClosing flag...
13:12
<hsivonen>
Philip`: profiling suggested that having multiple call sites to read() might be a problem, so I'm going to inline read and make it appear in the code only once
13:12
<hsivonen>
since it's easy to do when the tokenizer states are in a switch
13:13
<hsivonen>
read() itself is huge, so apparently inlining it on multiple call sites wouldn't be smart
13:18
<hsivonen>
does anyone know if running Linux under Parallels is a valid benchmark setup if the OS X side is mostly idle?
13:19
<hsivonen>
hmm. I wonder if Parallels only does 32-bit guest OSs...
13:21
<Philip`>
It ought to be reliable for purely user-space code
13:23
<Philip`>
(though it's kind of hard to write purely user-space code, if you do things like access enough pages of memory)
13:24
<hsivonen>
so far I've found that crossing to file system in FileInputStream is a big deal, so anything benchmarking purely tokenizer CPU should read from a byte[]
13:25
<hsivonen>
I gained quite a bit of perf by reducing the number of times the IO goes out of the JVM
13:29
<Philip`>
It's always a pain when you want to do clever algorithm optimisations, but the bottleneck is just in getting data into the program
13:31
<hsivonen>
when I benchmarked the Validator.nu HTML parser vs. Xerces, I found that first I had to do better in terms of IO buffering
13:31
<hsivonen>
only then the rest starts to matter
13:31
Philip`
once made a program of his run about ten times faster just by switching from 'wxFile' to 'wxFFile' (which is functionally very similar but seems to have a much more appropriate implementation)
13:31
<hsivonen>
even if parsing is IO-bound anyway, the CPU time above IO can still be made better
13:32
<hsivonen>
eliminating Schematron will dramatically alter the compute/IO interleaving in Validator.nu
13:34
<Philip`>
Do shared hosting services put a limit on how much IO you can use, like they do with CPU?
13:34
<hsivonen>
I have no idea
13:34
<hsivonen>
in fact, I have almost no idea of the characteristics of the Validator.nu host Xen VM except for the RAM size
13:35
<hsivonen>
I don't know what CPU or IO throttles there may be
13:35
<hsivonen>
so far it has worked well enough
13:37
<hsivonen>
interestingly, RAM seems to be what's expensive in Xen hosting
13:38
<hsivonen>
if you want a lot of RAM on Xen, Amazon EC2 starts looking a lot cheaper relative to other offerings
13:43
gsnedders
is starting to find Python to be more and more limiting for the spec-ge
13:43
<gsnedders>
*gen
13:47
<Philip`>
Limiting in functionality, or in performance?
13:48
<gsnedders>
Philip`: performance.
13:49
<Philip`>
gsnedders: By how many orders of magnitude?
13:49
<Philip`>
It seems worthwhile to have something that actually works, even it'll need lots of optimisation later
13:49
<Philip`>
s//if /
13:49
<gsnedders>
Philip`: well, things like html5lib are are far slower than something like WebKit's HTML parser
13:50
<gsnedders>
and there's the fact that I did to do looping over every Node in the document, multiple times
13:50
<gsnedders>
And large amounts of execution are slow in any interpreted language, really
13:50
<hsivonen>
gsnedders: try Jython and the Validator.nu HTML parser :-)
13:50
<Philip`>
gsnedders: html5lib can be fixed by doing a chtml5lib, which is somebody else's problem
13:51
<gsnedders>
neither of those solve the looping problem :)
13:52
<Philip`>
You could modify your code to do less looping :-)
13:53
<gsnedders>
Philip`: How do I build a TOC without looping over the document? :)
13:53
<gsnedders>
hmm…
13:53
<Philip`>
You don't need to loop over every node, only over every heading
13:54
<gsnedders>
Philip`: How do I find the headings?
13:54
<Philip`>
Use a fancy treebuilder that lets you do fast XPath to find elements :-)
13:54
<gsnedders>
XPath is hard to do quickly :)
13:54
<Philip`>
Or do the TOC-looping at the same time as all the other looping, to avoid the "multiple times" problem
13:54
<hsivonen>
the great thing is that an XPath impl. does no looping :-)
13:54
<Philip`>
gsnedders: It's easier when it's implemented in a C library
13:55
<gsnedders>
Philip`: That's what I've been doing. Multiple times remains two loops, though :)
13:56
<gsnedders>
hsivonen: how do you impl. XPath without looping?
13:56
<hsivonen>
gsnedders: note the ':-)'
13:56
<gsnedders>
Ah. You mean it in that way :)
13:57
<Philip`>
gsnedders: How slow is the script, anyway?
13:58
<gsnedders>
Philip`: I can't exactly quantify it, but I can say it is far too slow on a large document like HTML 5 :)
13:58
<Philip`>
The multipage spec splitter already iterates through the entire minidom tree once (to fix up href=#... links), and that's not insanely slow
13:59
<Philip`>
gsnedders: "time python specgen.py source"? :-p
13:59
<gsnedders>
Philip`: It's not really much quicker than the pre-existing W3C spec-gen, which parses the document about 10 times (in C)
13:59
<gsnedders>
Philip`: It's too incomplete for it to be overly meaningful :P
13:59
<gsnedders>
Philip`: And I just started rewriting a bit of it and it currently doesn't really work much at all :P
14:00
<Philip`>
gsnedders: Surely you have it in some version control system so you can still get a version that doesn't not work? :-)
14:00
<gsnedders>
Philip`: Yeah, but I'm lazy :)
14:02
<gsnedders>
Philip`: And it's an excuse to actually write some C++ myself :P
14:02
<Philip`>
I suppose I mostly just think that trying to write it in C++ would be insane and complex; Java/Jython would be a much better way to avoid the interpret overhead
14:03
<Philip`>
*interpreter
14:03
<gsnedders>
I don't think it would.
14:03
<gsnedders>
The complex parts can be solved by using WebKit for HTML and DOM.
14:04
<Philip`>
That's not solving complexity, it's just swapping complexity for other complexity
14:04
<hsivonen>
If you run the java process as a long-running service process that you send stuff to through a socket, you'll have the code compiled down to native code with JVM start penalty
14:04
<gsnedders>
It's somebody else's problem. That'll do :)
14:05
<Philip`>
gsnedders: The complexity is in integrating their code with yours, which is your problem
14:05
<Philip`>
(Or do they just have a public API for "parse this string of bytes into a Document object"?)
14:06
<gsnedders>
Philip`: I haven't looked at it that closely, but what I've seen of WebKit makes me expect it to be simple enough
14:09
Philip`
is not yet convinced :-p
14:48
<hsivonen>
hmm. it seems to me that keeping the ability to switch decoders on the fly is more trouble than it's worth
14:49
<hsivonen>
because efficient buffered character decoding will have most often read ahead anyway so that the decoder has already hit non-ASCII after meta
16:34
<Philip`>
Ooh, Konqueror does canvas shadows
16:34
<Philip`>
so there's two mostly-interoperable implementations now
16:49
<Philip`>
http://www.freepatentsonline.com/y2006/0005114.html
16:53
<takkaria>
what a horrible patent
16:55
Philip`
guesses this is what http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2007-March/010129.html referred to
17:15
<Philip`>
Hixie: "The tabIndex DOM attribute must reflect the value of the tabIndex content attribute." - the second tabIndex should be lowercase
20:02
<annevk>
Philip`, I think you already raised the shadows thing (making it mandatory)
20:03
<annevk>
Philip`, also, CSS3 UI has nav-index to specify "tab" order through CSS
20:08
<Philip`>
annevk: I only remember (/could find emails referring to) making gradients mandatory
20:10
<annevk>
ah, maybe I misremembered
20:57
<Philip`>
http://philip.html5.org/tests/canvas/misc/cross-domain-pattern.html - Opera (9.5) loses
23:03
<jwalden>
sigh
23:05
<Philip`>
jwalden: Is that a sigh of "I used the wrong address for the WHATWG list again", or a different one?
23:05
<jwalden>
no
23:05
<jwalden>
see latest
23:06
<jwalden>
just the sigh of "isn't this stuff done yet?"
23:07
<Philip`>
Ah
23:07
<Philip`>
I guess one problem with addEventListener is that it won't work in IE8
23:07
<jwalden>
I feel like we're near a precipe past which we fall into bikeshedding
23:07
<jwalden>
and I don't know which side we're on
23:07
<jwalden>
what's new?
23:07
<Philip`>
and it'd be nice if people could write simple code that works in all implementations
23:07
<othermaciej>
I think people are familiar with using the attachEvent workaround for events in IE
23:11
<Philip`>
Hmm, my canvas security-check tests give random results in WebKit
23:11
<jwalden>
nice!
23:12
<othermaciej>
random?
23:12
<othermaciej>
I didn't think we used an RNG for domain security checks
23:12
<Philip`>
It changes each time I reload the pages
23:13
<Philip`>
I'm not sure it's exactly a cryptographically-strong source of randomness, but it's not as constant as I'd like
23:15
<Philip`>
It only seems to happen when I run the tests inside iframes
23:15
<Philip`>
and only when they're on the local network, not over the internet
23:15
<jwalden>
darn
23:15
<jwalden>
that rules out my chance to reimplement Math.random
23:18
<othermaciej>
Philip`: oh, we have problems with reloads of frames off local disk sometime, could be that
23:18
<othermaciej>
but also we give local files universal access rights to all remote resources
23:19
<Philip`>
othermaciej: It's not local disk (except for maybe cached), it's across the (local) network
23:19
<Philip`>
Looks like a random one of the nine iframes on the page is allowed to called toDataURL on a tainted canvas
23:20
<othermaciej>
weird
23:22
<Philip`>
Hmm, either I was interpreting it wrong or it changed, since all but one are allowed to call toDataURL now that I've changed my tests around
23:23
<Philip`>
and now it's not happening at all
23:27
<Philip`>
Someone can have fun trying to debug this...
23:29
<Philip`>
Oh, now it does work over the internet for me
23:30
<Philip`>
Does anyone see http://philip.html5.org/misc/iframe-canvas-security/iframes.html not having nine identical iframes in WebKit?
23:32
<jwalden>
something trunk-like (a touch old) is showing nine frames each containing a single continuous yellow rectangle
23:33
<Philip`>
There should be either two yellow rectangles, or one plus a "data:image/png,..." line
23:33
<jwalden>
Firefox trunk is showing nine frames with two yellow rectangles each
23:33
<jwalden>
and JavaScript error: , line 0: uncaught exception: [Exception... "Security error" code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)" location: "http://philip.html5.org/misc/iframe-canvas-security/06.html Line: 12"] in the console
23:33
<jwalden>
x9
23:33
<Philip`>
Firefox is giving the intended behaviour
23:34
<othermaciej>
the results randomly change for me when I reload
23:34
<othermaciej>
only one frame shows two rectangles and it changes which
23:34
<Philip`>
othermaciej: Aha, then it looks like I'm not crazy and it's a real bug
23:34
<jwalden>
so I assumed given seems consistent here
23:34
<othermaciej>
hello f a weird bug
23:34
jwalden
updates tree, sees if that makes a dif
23:35
<Philip`>
jwalden: I'm not sure what would cause only a single yellow rectangle, unless you're using Safari 1 and don't have <canvas> support
23:35
<hasather>
Philip`: on first load, most of the upper squares were black, on reload everything is yellow
23:35
<jwalden>
no, this was a svn checkout that's no more than a month old, I think
23:35
<Philip`>
hasather: Oh, that sounds dodgy in a different way
23:36
<hasather>
Philip`: may be, it's WebKitGtk (r32531)
23:36
<Philip`>
(Argh, stupid non-existence of print-screen key on Apple keyboards...)
23:37
<jwalden>
swedish campground-shift-3 I think
23:38
<hasather>
jwalden: it's not for campgrounds ;)
23:38
<Philip`>
I'm using Windows so that doesn't work :-(
23:39
<hasather>
jwalden: although I see http://www.folklore.org/StoryView.py?project=Macintosh&story=Swedish_Campground.txt says that
23:39
<jwalden>
hasather: http://folklore.org/StoryView.py?story=Swedish_Campground.txt
23:39
Philip`
tries remembering his password to report a bug
23:39
<jwalden>
jinx!
23:41
<hasather>
jwalden: it's mostly used for stuff like viking graves and things like that
23:43
<Philip`>
http://philip.html5.org/misc/iframe-canvas-security/webkit-r32574.png
23:45
<Philip`>
hasather: Ah, I can imagine WebKitGtk might have lots of differences - I'll have to add it to my test-results page some time
23:45
<Philip`>
(Still seems dodgy if it thinks drawing a yellow bitmap onto a transparent canvas results in black, though)
23:55
<Hixie>
jwalden: i'll change the spec to match whatever you decide on
23:55
<Hixie>
jwalden: firing at window is good with me
23:56
<jwalden>
dangt
23:56
<jwalden>
s/t/it/
23:56
<jwalden>
where'd othermaciej go?
23:57
<jwalden>
Hixie: still no bubbling, tho, to be clear?
23:58
<Hixie>
i'd rather it didn't bubble; it's like 'load' and other such "document-wide" events that don't bubble
23:58
<jwalden>
well, I suppose it doesn't really matter if it's on window, does it?
23:58
<Hixie>
indeed
23:58
<jwalden>
Hixie: I'm fine with it dispatching at window
23:59
jwalden
goes to update those bloody tests again
23:59
<Hixie>
on the long term if we put it on window then that allows me to make the event dispatch to window and body like with, e.g., 'load', without breaking compat
23:59
<Hixie>
so i like the change
23:59
<Hixie>
i mostly was leaving it on document to not give you pain :-)