00:00 | <mkanat> | erlehmann: We were referring to EXI. :-) |
00:00 | <gavinc> | erlehmann: Right, which is of course a violation of the XML spec |
00:00 | <erlehmann> | mkanat, making it even harder to parse? |
00:00 | <mkanat> | erlehmann: Yeeeeah. |
00:01 | <erlehmann> | gavinc, i see what you did there. fun fact: once upon a time you could remote-crash XMPP clients (those that used a real XML parser) by sending namespace-malformed XML |
00:01 | <erlehmann> | at least knocked them offline. |
00:01 | <finnala> | Specs schmecks. Isn't that how the web works? ;) |
00:01 | <erlehmann> | nowadays you'll only knock yourself offline. |
00:01 | <erlehmann> | finnala, the word is „schmocks“ |
00:03 | <Yuhong> | Tag soup can be even worse of course. I already mentioned https://bugzilla.mozilla.org/show_bug.cgi?id=607222 |
00:04 | <TabAtkins> | That has nothing to do with tag soup. It's DOM scripting. |
00:05 | <Yuhong> | Yep, the reason I say it is related to tag soup is that it involves document.write which writes tag soup and an appendChild of the base element. |
00:07 | <Yuhong> | Also: http://ln.hixie.ch/?start=1155195074&count=1 |
00:08 | <TabAtkins> | document.write's problems go *far* beyond tag soup. It's a basic layering violation. |
00:09 | <MikeSmith> | Yuhong, TabAtkins - about the validator behavior for shape, Philip` is right. I added that error reporting because without it there, the message "Error: The shape attribute on the a element is obsolete. Use area instead of a for image maps." gets reported for every <a> element, and the user is, like, "Huh?", because they don't have any shape attributes on those elements in their source and the don't know that XML requires the parser |
00:09 | <MikeSmith> | add them |
00:10 | <MikeSmith> | if people find that annoying they shouldn't use XML |
00:10 | <TabAtkins> | Or use a custom DTD, I guess. |
00:10 | <MikeSmith> | yeah. and/or they should select the "don't load external entities" option |
00:10 | <MikeSmith> | or maybe we should make the "don't load external entities" option the default (if it's not otherwise) |
00:11 | <MikeSmith> | hmm, no, can't do that |
00:11 | <MikeSmith> | because then it will report all the named character references as errors |
00:11 | <MikeSmith> | yippee for SGML legacy misfeatures |
00:13 | <gavinc> | This stuff? Why RDF XMLLiteral is still a -really- bad idea. |
00:13 | <TabAtkins> | HTMLLiteral! |
00:16 | <gavinc> | Mm, can HTML be easily compared for equivalence? (also, canonical lexical form?) |
00:17 | <TabAtkins> | Canonicalization is the devil. |
00:17 | <TabAtkins> | In other words, no. |
00:18 | <gordo> | when i use link rel="icon" type="image/png" sizes="48x48" |
00:19 | <gordo> | and various other sizes |
00:19 | <gordo> | do browsers make a request for every size? |
00:19 | <gordo> | or just one |
00:19 | <zewt> | why not test it? heh |
00:19 | <gordo> | favicons don't seem to appear in the net tab of browser developer tools |
00:20 | <gavinc> | TabAtkins: Canonicalization isn't really that much of an issue. But lexical to value mapping is. Seems like that would end up with needing an HTML parser in order to parse RDF. Same as today with XMLLiteral needing an XML parser |
00:21 | <TabAtkins> | I'll defer to other people who've told me that canonicalization is an issue. But otherwise, yes, you're right - comparison requires an HTML parser to parse RDF. |
00:22 | <Yuhong> | I think canonicalization of HTML is even worse due to it being tag soup which it's error handing was only recently standardized. |
00:23 | <gavinc> | But I think an optional defined datatype for HTMLLiteral would be decent, and preferable to XMLLiteral in real usage. Yes, comparing it by value would require an HTML parser but some implementations will have one lying around anyway being in a browser already |
00:23 | gavinc | thinking out loud |
00:24 | <TabAtkins> | What are the timplementations of RDF in browsers? |
00:25 | <gavinc> | Okay, valid point |
00:25 | <gavinc> | Well, in theory an implementation of the RDF API |
00:26 | <gavinc> | and RDFa API |
00:40 | <Hixie> | nessy: ping |
00:44 | <Philip`> | Maybe XMLLiteral would be saner if its value space was DOMs, not strings-which-are-canonicalisations-of-DOMs |
00:44 | <Hixie> | has to be serialised somehow; the idea is to store the information in a database |
00:48 | <gavinc> | One idea was to have the value space be the XML infoset, but even creating that is complicated |
00:48 | <gavinc> | and an HTMLLiteral wouldn't have an infoset |
00:55 | <gavinc> | Oh, I don't think I've asked anyone here yet to kick Turtle in HTML tires yet http://dvcs.w3.org/hg/rdf/raw-file/default/rdf-turtle/index.html#in-html |
01:20 | <AryehGregor> | Ouch. |
01:20 | <AryehGregor> | I never thought about the fact that properties we add to Document will be in global scope for inline event handlers. |
01:20 | <AryehGregor> | That's bad. |
01:23 | <Hixie> | yeah that's screwed me several times already |
01:29 | <zewt> | no way to segregate new properties somehow, so they're not visible from there? |
01:29 | <zewt> | scoping nightmares go |
01:35 | <MikeSmith> | are the "final rendered dimensions of cells within a table" not exposed in the DOM? |
01:36 | <MikeSmith> | height and width of a particular cell? |
01:41 | <mkanat> | MikeSmith: That's just computed style, isn't it? |
01:42 | <MikeSmith> | mkanat: hmm, yeah, I would think so |
01:59 | <AryehGregor> | Awesome, it's even worse than I thought -- the element itself is also in the scope chain. |
01:59 | <AryehGregor> | zewt, that's exactly what I think we should do -- make new properties (at least those with short names that might cause conflict) not get hit from on* as bare names. |
02:45 | <MikeSmith> | Hixie, annevk - regarding the "WHATWG on Google+" discussion on the whatwg list, the parts about people needing to read through diffs |
02:46 | <MikeSmith> | I notice that diff has this "-show-function-line=regexp" option |
02:47 | <MikeSmith> | which could be used to find the nearest preceding <h1>-<h6> heading |
02:47 | <MikeSmith> | and/or the nearest preceding element with an id value |
02:48 | <MikeSmith> | and that heading text and id value would then be included in the diff |
02:49 | <MikeSmith> | and then http://html5.org/tools/web-apps-tracker could show the heading titles for the sections of the spec affected by that change |
02:50 | <MikeSmith> | and provide links back to the spec |
03:13 | <MikeSmith> | hmm, I forgot that Hixie doesn't use many IDs in his source.. |
03:13 | <MikeSmith> | oh |
03:13 | <MikeSmith> | but the index file does have them |
05:29 | <erlehmann> | ha, i thought i might be on hacker news for my work on libglitch. but now this. http://news.ycombinator.com/item?id=3264074 |
05:29 | <erlehmann> | i hope many people whime in on this discussion. it is important to have mindshare for the open web. |
06:23 | <erlehmann> | >For quite a few years people used the Internet Explorer icon on pamphlets and posters as an icon representing The Internet. It seems people are now starting to use Facebook's icon for that. |
06:23 | <erlehmann> | facepalm m( |
08:13 | <yaffle> | hello! |
08:17 | <yaffle> | http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#messageevent |
08:18 | <yaffle> | why we need "origin" attribute for MessageEvent from server-sent-events ? |
08:25 | <yaffle> | or for MessageEvent from websockets ? |
08:25 | <Hixie> | we don't |
08:25 | <yaffle> | when it can be usefull? |
08:25 | <Hixie> | it's only useful for messages from window.postMessage(), iirc |
08:25 | <yaffle> | so, why this is presented in the spec? seems, some internet bloggers writes their aritcles and propagates "origin" attribute checks every time... |
08:25 | <Hixie> | you should check the 'origin' attribute all the time when receiving messages from window.postMessage() |
08:27 | <yaffle> | yes, i know, but checking this for messages from websockets and servern-sent-events is redundantly |
08:27 | <Hixie> | does it even have a value for those? |
08:28 | <yaffle> | http://www.html5rocks.com/en/tutorials/eventsource/basics/#toc-security |
08:31 | <Hixie> | yeah that's pretty much pointless. can you file a bug so that i can clarify that that warning is especially relevant for window.postMessage() messages and not so much EventSource and WebSocket ? |
08:32 | <yaffle> | @Hixie, ok |
08:34 | <Hixie> | thanks |
08:38 | <erlehmann> | tantek, do you like refbacks? if not, why not? |
08:43 | <tantek> | erlehmann, assuming you're talking about http://en.wikipedia.org/wiki/Refback then no |
08:44 | <tantek> | because they're too easily open to abuse |
08:44 | <tantek> | HTTP header forgery can be used to trick a refback enabled site into accessing some other random site out there |
08:45 | <erlehmann> | tantek, and then there is no link to the site and everything is well. |
08:45 | <hsivonen> | tantek: why is it bad to do a GET to a random site out there? |
08:45 | <erlehmann> | or not? |
08:46 | <tantek> | it's an attack surface on a server |
08:46 | <tantek> | for example, it's a trivial way to cause a DDOS |
08:47 | <tantek> | if you can trick 1000s of servers out there to issue a get request on one random site out there |
08:47 | <erlehmann> | tantek, what do you recommend instead? |
08:48 | <tantek> | there is no "Instead". the protocol is flawed all by itself. |
08:48 | <tantek> | go back to the drawing board. ;) |
08:49 | <tantek> | actually, given that I was able to explain a trivial DDOS scenario - and I'm not even a security expert, why isn't this documented on the wikipedia article? |
08:49 | <erlehmann> | tantek, no. i mean: what do you recommend instead of using linkbacks? |
08:52 | <tantek> | oh I know - erlehmann, here's your homework assignment in return for that answer, go update the wikipedia article to add a criticism section noting the trivial DDOS abuse of Refback enabled servers, with a <ref> cite to my statements above http://krijnhoetmer.nl/irc-logs/whatwg/20111122#l-387 :) |
08:52 | <Hixie> | it's already pretty trivial to cause a server to get a lot of GETs, that's not a particularly interesting security issue imho |
08:52 | <tantek> | or just add it to the existing Security issues section |
08:53 | <erlehmann> | what Hixie said. |
08:53 | <tantek> | nah, I call theoretical on that |
08:53 | <Hixie> | you can call what you like :-) |
08:53 | <tantek> | worthy of documenting as a vulnerability introduced by implementing the protocol |
08:53 | <erlehmann> | tantek, you are a clever and mean person. |
08:54 | <Hixie> | if you want to do a DDOS of the nature you describe it's far less work to just post a link on some popular site to some porn or a kitten, and include on that page a link to the victim site |
08:56 | <tantek> | Hixie, if that were true, people would be doing it all the time on sites like http://cuteoverload.com/ but that doesn't appear to be happening. |
08:56 | <Hixie> | the reason they don't do it is that a bunch of GETs isn't a particularly interesting attack |
08:56 | <Hixie> | same reason they don't do it with pingback, trackback, spam e-mail, etc |
08:56 | <Hixie> | all of which are existing ways to do what you describe |
08:58 | <foolip> | Hixie, jgraham, I was at one point writing a change tracking tool that used the outline algorithm to determine sections |
08:58 | <foolip> | but I got bored, as usual |
08:59 | <tantek> | Hixie, perhaps more likely, there just aren't sufficient numbers of Refback enabled servers yet to perform an interesting attack. |
08:59 | <tantek> | perhaps because the vulnerability is so obvious. |
09:00 | <Hixie> | there's plenty enough servers that get tons of traffic per link that can be used to cause the attack you describe |
09:00 | <Hixie> | reddit, for instance |
09:00 | <Hixie> | slashdot |
09:00 | <Hixie> | indeed the effect is even named after slashdot |
09:00 | <tantek> | sure, and that does happen |
09:00 | <Hixie> | it used to be a problem |
09:00 | <tantek> | articles get slashdotted |
09:00 | <Hixie> | and it isn't anymore |
09:00 | <tantek> | it used to be |
09:01 | <tantek> | until slashdot perhaps dropped in popularity |
09:01 | <Hixie> | slashdot has far more traffic now than it used to |
09:01 | <tantek> | by people that actually read and click? twitter-level attention spans have reduced that too |
09:02 | <tantek> | now you're more likely to get the effect if @KevinRose tweets a link to your site |
09:02 | <Hixie> | the reason it's no longer a problem is that it's so trivial to perform the attack you describe, that any serious web server software has long been hardened against that kind of attack |
09:02 | <Hixie> | anyway, bed time |
09:02 | <Hixie> | nn |
09:02 | <tantek> | nn |
09:11 | <erlehmann> | nn? |
09:11 | <erlehmann> | nighty-nighty? |
09:11 | <erlehmann> | tantek, i agree with Hixie on this. if 1000 (single) GETs are a problem, maybe one should stop hosting pages on embedded hardware. |
09:12 | <erlehmann> | or use better server software, written in C, with libowfat and tinyldap. |
09:13 | <erlehmann> | tantek, i think will implement refback and see how it goes. big problem: hashbang sites. :( |
09:39 | <annevk> | MikeSmith: that diff stuff seems interesting |
09:39 | <annevk> | MikeSmith: in most cases you can generate the ID from the header value |
09:39 | <annevk> | MikeSmith: using the same algorithm Anolis uses |
09:39 | <MikeSmith> | ah yeah |
09:39 | <MikeSmith> | right right |
09:40 | <MikeSmith> | hadn't thought about that |
09:40 | <hsivonen> | MikeSmith: I think I might have solved http://www.w3.org/Bugs/Public/show_bug.cgi?id=10174 |
09:40 | <annevk> | MikeSmith: that will be a problem with duplicate "Introduction" sections and such, but they are not that frequent |
09:40 | <hsivonen> | it's a shocking bug |
09:40 | <hsivonen> | in the code that converts bytes to UTF-16 code units |
09:40 | <MikeSmith> | hsivonen: yeah? |
09:41 | <hsivonen> | the code returns an EOF sign where doing so can't be right |
09:41 | <MikeSmith> | annevk: and for code in intro sections it's non-normative anyway, so nobody should care too much |
09:41 | hsivonen | tests some more |
09:41 | <MikeSmith> | s/code/spec text/ |
09:41 | <annevk> | MikeSmith: and I think I can run custom diff on my server |
09:42 | <MikeSmith> | annevk: cool. If I can help let me know |
09:42 | <annevk> | if you can provide the commandline thingie |
09:42 | <hsivonen> | Unicode conversion loops are hard |
09:42 | <MikeSmith> | I'm also happy to help with some of the other ideas that were discussed in that thread, if anybody else wants to put time into it |
09:42 | <annevk> | we could start with that and see what it does on web-apps-tracker |
09:43 | <MikeSmith> | annevk: the command line thing is just that same exact thing I put into the message |
09:44 | <MikeSmith> | it's really only that one line of code that invokes the diff command with the arguments needed |
09:44 | <MikeSmith> | so you should be able to just cut and paste it out of there |
09:45 | <MikeSmith> | and make the subversion config change for whatever user you have web-apps-tracker running under |
09:47 | <MikeSmith> | the fact that it breaks right exactly at byte 56K seemed like it must be something more than just coincidental |
09:47 | <MikeSmith> | 0xE000 |
09:47 | <MikeSmith> | that number even looks scary |
09:47 | <hsivonen> | it falls on a multiple of a buffer size |
09:47 | <MikeSmith> | yeah |
09:51 | <erlehmann> | how does the yellow highlighting work in the logs? |
09:55 | <MikeSmith> | hsivonen: thanks for the fix |
09:55 | MikeSmith | goes to push the change to w3c validator.nu backend |
10:07 | <annevk> | TabAtkins / ojan / etc. I think we should do it with a Web IDL annotation instead |
10:07 | <annevk> | I guess I should say on the list |
10:13 | <annevk> | so MikeSmith, I currently have "svn diff -r %s%s %s" |
10:14 | <MikeSmith> | OK |
10:14 | <MikeSmith> | you don't need to change that |
10:15 | <annevk> | svn diff does support --diff-cmd |
10:16 | <MikeSmith> | yeah |
10:16 | <MikeSmith> | true |
10:16 | <MikeSmith> | so yeah, you can do it that way |
10:16 | <MikeSmith> | instead of in the config file |
10:17 | <MikeSmith> | "svn diff --diff-cmd diffwrap -r %s%s %s" |
10:17 | <annevk> | I don't have full control over the server |
10:17 | <MikeSmith> | ah |
10:17 | <annevk> | the diff utility I have does support -F |
10:17 | <annevk> | but obviously it does not have -r |
10:17 | <MikeSmith> | yeah |
10:18 | <MikeSmith> | it's not going to pass that -r to the external diff util |
10:18 | <annevk> | okay |
10:18 | <MikeSmith> | or maybe it does, but the wrapper doesn't read that arg |
10:19 | <MikeSmith> | so you just need to have a "diffwrap" file somewhere |
10:19 | <MikeSmith> | and put into it: |
10:19 | <MikeSmith> | #!/bin/sh |
10:19 | <MikeSmith> | diff -u -F '<h[1-6]' ${6} ${7} |
10:19 | <MikeSmith> | maybe you don't need the -u in there |
10:20 | <MikeSmith> | dunno |
10:20 | <MikeSmith> | hmm, or maybe you do, come to think of it |
10:20 | <annevk> | I'm going to try with |
10:20 | <annevk> | command = "svn diff -r %s%s %s --diff-cmd diff -u -F '<h[1-6]'" |
10:20 | <MikeSmith> | yeah |
10:20 | <MikeSmith> | tried that already |
10:20 | <MikeSmith> | won't work |
10:21 | <MikeSmith> | even if you properly quote "diff -u -F '<h[1-6]'" |
10:21 | <MikeSmith> | it needs it to be in script |
10:22 | <MikeSmith> | because subversion can never do things that way everybody does them |
10:22 | <MikeSmith> | the intuitive way |
10:22 | <MikeSmith> | it likes to do them the asstarded way |
10:22 | <annevk> | it does not seem to do anything |
10:23 | <MikeSmith> | read the intro to http://svnbook.red-bean.com/en/1.2/svn.advanced.externaldifftools.html if you care to know the ugly details |
10:24 | <annevk> | oh |
10:24 | <annevk> | so this won't do anything |
10:24 | <MikeSmith> | um |
10:25 | <MikeSmith> | I think you may need to put the --diff-cmd before the -r part |
10:25 | <MikeSmith> | or at least before the final %s |
10:25 | <MikeSmith> | which is a filename |
10:25 | <MikeSmith> | and which needs to be the last arg, I think |
10:26 | <annevk> | ok |
10:26 | <annevk> | MikeSmith: so I need to make that diffwrap script? |
10:27 | <MikeSmith> | yup |
10:28 | <annevk> | sigh |
10:28 | <annevk> | nothing is working |
10:29 | <MikeSmith> | dunno what error you're getting |
10:31 | <MikeSmith> | but of course you have to either give --diff-cmd the absolute path to the diffwrap script, or you need to put the diffwrap script into whatever PATH the web-apps-tracker user has set |
10:31 | <annevk> | did it work for you with that script? |
10:31 | <MikeSmith> | yup |
10:32 | <annevk> | I can just copy and paste the template? |
10:32 | <annevk> | and then replace $DIFF with "diff" I suppose and remove the variable declaration |
10:32 | <MikeSmith> | you gotta make that script chmod 755 too |
10:33 | <MikeSmith> | yeah, sure |
10:33 | <MikeSmith> | and add the -F '<h[1-6]' part |
10:37 | <annevk> | ooh in there? |
10:37 | <MikeSmith> | heh |
10:37 | <MikeSmith> | yeah man |
10:37 | <annevk> | also -u ? |
10:38 | <MikeSmith> | yup |
10:38 | <annevk> | this means the Python stuff ends up looking like this: |
10:38 | <annevk> | command = "svn diff --diff-cmd diffwrap -r %s%s %s" |
10:38 | <MikeSmith> | yeah |
10:38 | <annevk> | still yielding nothing |
10:38 | <annevk> | maybe I should add the .sh? |
10:39 | <MikeSmith> | yeah, if it has a .sh extension, yeah |
10:39 | <MikeSmith> | and also you probably need to put the absolute path |
10:39 | <MikeSmith> | not just --diff-cmd diffwrap |
10:40 | <MikeSmith> | but -diff-cmd /home/annevk/bin/diffwrap.sh |
10:40 | <MikeSmith> | or whatever |
10:45 | <annevk> | MikeSmith: doesn't work :( |
10:46 | <MikeSmith> | you not getting any error message? |
10:46 | <annevk> | maybe, I'm just logged in via ssh and trying it live |
10:46 | <MikeSmith> | you sure the diffwrap script is executable? |
10:47 | <MikeSmith> | -rwxr-xr-x |
10:47 | <annevk> | hmm |
10:47 | <annevk> | when I execute that it says diff: unrecognized option `--right' |
10:48 | <MikeSmith> | ah |
10:48 | <MikeSmith> | yeah |
10:48 | <MikeSmith> | remove that part from the line in the script |
10:48 | <annevk> | including LEFT / RIGHT ? |
10:48 | <MikeSmith> | yeah, don't do $DIFF --left $LEFT --right $RIGHT at all |
10:49 | <MikeSmith> | I don't even understand what the hell that stuff is |
10:49 | <hsivonen> | 'Would it help if the TAG were to "Recommend" to W3C to not be a "bad netizen"?' |
10:49 | <MikeSmith> | instead make it diff -u -F '<h[1-6]' ${6} ${7} |
10:49 | <MikeSmith> | and "Somehow getting a regular "have obligations related to registration been met" |
10:49 | <MikeSmith> | check into the W3C document publication/advancement procedure shouldn't be too |
10:49 | <MikeSmith> | difficult." |
10:50 | <MikeSmith> | gotta love that way of approaching things |
10:50 | <MikeSmith> | annevk: or diff -u -F '<h[1-6]' $LEFT $RIGHT should work too |
10:50 | <MikeSmith> | if you have those variables in your script |
10:51 | <MikeSmith> | but I don't see any point in having them because you can just do diff -u -F '<h[1-6]' ${6} ${7} directly |
10:51 | <annevk> | this works |
10:51 | <MikeSmith> | sweet |
10:51 | <annevk> | but it seems something else in the script breaks because of this |
10:51 | <MikeSmith> | oh |
10:52 | <annevk> | ah yeah |
10:52 | <annevk> | --- /tmp/tmp.27 2011-11-22 10:53:17.000000000 +0000 |
10:52 | <annevk> | +++ /tmp/tmp.28 2011-11-22 10:53:17.000000000 +0000 |
10:52 | <annevk> | is no longer accurate |
10:52 | <annevk> | and therefore I can not extract the information from it I am trying to extract |
10:53 | <MikeSmith> | ah yeah |
10:53 | <MikeSmith> | but is working int he oupt |
10:53 | <MikeSmith> | *in the output |
10:53 | <MikeSmith> | if you wait for the page to load |
10:53 | <MikeSmith> | shows the diff at the bottom |
10:54 | <MikeSmith> | hmm |
10:54 | <MikeSmith> | but ends up with some cases like <h6><dfn title="attr-input-type-file"> |
10:54 | <MikeSmith> | because it truncates that part at 40 chars |
10:54 | <MikeSmith> | I think |
10:55 | <MikeSmith> | oh well |
10:55 | <MikeSmith> | can refine it later |
10:55 | <MikeSmith> | and/or make hack the diff source and build a binary that doesn't truncate at 40 chars |
10:55 | <MikeSmith> | because I think that's a hard-coded limit |
10:58 | <hsivonen> | manu-db: regarding your W3C Conference talk: why is giving your bank account number to someone a bad idea? |
10:58 | <hsivonen> | manu-db: is the U.S. system so broken that people can take your money if they know your account number instead of just sending you money? |
11:00 | <annevk> | MikeSmith: is there any way we can change back those log lines? |
11:00 | <jgraham> | At least in the UK giving out your bank number can, in some cases, be used to set up direct debits I think |
11:00 | <MikeSmith> | annevk: maybe |
11:01 | <MikeSmith> | but I don't understand why it's changing them to begin with |
11:01 | <jgraham> | hsivonen: http://news.bbc.co.uk/2/hi/7174760.stm |
11:01 | <MikeSmith> | annevk: what should those log lines actually say? |
11:01 | <annevk> | usually they give back what svn diff returns |
11:01 | <annevk> | the actual svn to and from numbers |
11:02 | <MikeSmith> | annevk: well, you already have those, don't you? |
11:02 | <annevk> | not if you revTo is 0 |
11:03 | <MikeSmith> | ah |
11:03 | <MikeSmith> | really? |
11:03 | <MikeSmith> | I mean, if you are doing svn diff --diff-cmd diffwrap -r %s%s %s |
11:03 | <MikeSmith> | then it's just those first pair of %s%s, right? |
11:03 | <hsivonen> | jgraham: oh, right. Direct debit. |
11:04 | <hsivonen> | jgraham: the protocol for setting up direct debit is bogus here, too. |
11:05 | <annevk> | MikeSmith: one can be omitted |
11:06 | <annevk> | MikeSmith: and then we still need to know the other one for the UI |
11:06 | <annevk> | well we don't need to |
11:06 | <annevk> | but we could before |
11:07 | <hsivonen> | jgraham: I wonder if banks had usability people who advocated for the bogus direct debit setup protocol or if they were just full of FAIL without usability people winning over security people |
11:11 | <annevk> | MikeSmith: see e.g. http://html5.org/tools/web-apps-tracker?from=2011&to=1999 now |
11:11 | <annevk> | MikeSmith: for how it looks |
11:11 | <hsivonen> | aargh. # in data: URL for the lose |
11:11 | <annevk> | MikeSmith: for the other feature, see http://html5.org/tools/web-apps-tracker?from=6830 |
11:12 | <annevk> | MikeSmith: note how the UI knows it's against 6831 |
11:12 | MikeSmith | looks |
11:12 | <annevk> | MikeSmith: http://html5.org/tools/web-apps-tracker?from=6829 here again, the UI knows it's against 6831; and it figured that out from the log |
11:12 | <annevk> | I commented out diffwrap |
11:13 | <MikeSmith> | ah |
11:15 | <hsivonen> | I hadn't realized the HTML spec had outgrown Validator.nu's size limit again |
11:15 | <MikeSmith> | hsivonen: yeah |
11:16 | <hsivonen> | time to set it to 7 MB, I guess |
11:16 | <MikeSmith> | annevk: so maybe we can figure out later some way to get around that so your python script can still get the data it needs |
11:16 | <hsivonen> | at least the limit is use case-driven |
11:16 | <annevk> | yeah, or we kill that feature |
11:16 | <annevk> | always require both fields |
11:16 | <annevk> | oh there might be another issue |
11:17 | <annevk> | if you fill in a revision larger than actually exists |
11:17 | <annevk> | you could poise the cache |
11:17 | <annevk> | so you always want to know the revision numbers the diff ran against |
11:17 | <annevk> | there's some other ways to get around too, but this was rather trivial |
11:18 | <MikeSmith> | OK. well I'm happy to help more later if I can |
11:18 | <MikeSmith> | right now I gotta go get some food |
11:18 | <annevk> | I should get some lunch too |
11:18 | <annevk> | :) |
11:55 | <hsivonen> | Hixie: I adjusted the size limit on Validator.nu to accommodate the HTML spec again |
11:59 | <jgraham> | foolip: Oh, if I understand what you were going for, that seems simple and clever. |
11:59 | <foolip> | jgraham, you mean diff-sections? |
11:59 | <jgraham> | Yeah |
12:00 | <jgraham> | I didn't really read the code much, so I might not have understood |
12:00 | <foolip> | it splits the spec into directories and files |
12:00 | <foolip> | then git log -- sections/video/bla will only show commits in that subsection |
12:00 | <jgraham> | Right |
12:00 | <jgraham> | So you can subscribe to particular sections or files |
12:01 | <foolip> | yeah, that would be the idea |
12:01 | <jgraham> | s/sections/directories/ |
12:01 | <jgraham> | Like I said, that seems clever and simple |
12:01 | <foolip> | but the tooling to actually do that is missing so far, feel free to step in :) |
12:02 | <jgraham> | Well… maybe :) I fear trying to commit to getting more done :) But this does seem like I would particularly benefit from it |
12:13 | <annevk> | foolip: MikeSmith's diff command thingie does give you section titles for changes |
12:13 | <annevk> | foolip: and it works |
12:14 | <annevk> | foolip: it doesn't seem like it would be a big burden to go from there to some kind of push notification if you find a particular section |
12:14 | <annevk> | foolip: could have a twitter account per section :) |
12:17 | <jgraham> | The moaning of the G+ haters will be nothing to my wrath if you start publishing data exclusively on twitter |
12:17 | <hsivonen> | foo¬i;bar is my least favorite part of named character reference tokenization |
12:18 | <annevk> | jgraham: define data |
12:21 | <zcorpan> | hsivonen: what's your most favorite? |
12:22 | <hsivonen> | zcorpan: hard to say. named character reference tokenization doesn't have particularly nice parts |
12:31 | <eightfold> | can someone have a look at this: |
12:31 | <eightfold> | http://jsfiddle.net/abmTH/ |
12:35 | <eightfold> | i want to hide .PreviewSizes based on the content of pxField |
12:37 | <zcorpan> | i'll say my favorite is <a href="©="> |
12:37 | <zcorpan> | but then i don't have to implement it :) |
12:42 | <eightfold> | bah, that was supposed to go in #jquery. sorry. |
12:55 | <foolip> | annevk, yeah, I tried that as well, but with that approach you can either only follow <h1> sections or need to follow each and every sub-section, I think |
12:56 | <jgraham> | annevk: Data is like pornography; I know it when I see it :p |
13:11 | <annevk> | foolip: that's true, but the subsections are in a database |
13:11 | <annevk> | foolip: because of the section annotation system |
13:11 | <foolip> | annevk, oh, ok |
13:11 | <annevk> | basically, there's a couple of dots, but how to connect them... |
13:11 | <foolip> | well, whoever sets up a working solution first wins! |
13:11 | <foolip> | I hope it isn't me |
13:53 | <annevk> | MikeSmith: it seems we should give people at least a week before marking things as NEEDSINFO after you already requested some information |
14:05 | <zcorpan> | what's the difference between needsinfo keyword and RESOLVED NEEDSINFO? |
14:05 | <annevk> | needsinfo can be added by anyone |
14:05 | <annevk> | resolving can only be done by editors |
14:29 | <zcorpan> | i see |
16:24 | <jgraham> | TabAtkins: You will excuse me while I don't hold my breath for the "batch processors" selectors spec |
16:58 | <grendzy> | Hi! Drupal community is looking for a more sophisticated parser to replace PHP DOM (a.k.a SimpleXML, I think based on libxml2). Is http://code.google.com/p/html5lib/ abandoned? Last commit was almost 2 years ago. Thanks! |
17:01 | <jgraham> | I am not aware thatanyone is actively working on the PHP port |
17:01 | <jgraham> | If you would like to take over that would be easy to arrange |
17:01 | <jgraham> | But you should maybe check the performance before you decide what you want to do :) |
17:03 | <smaug____> | wasn't there some plan to support hsivonen's parser with libxml2 |
17:05 | <smaug____> | grendzy: take hsivonen's parser, and generate php code from java files :) |
17:07 | <hsivonen> | smaug____: there's a plan. now that View Source is out of the way, it might actually become real |
17:08 | <erlehmann> | grendzy, as far as i can say, html5lib was usable 1 year ago. |
17:09 | <erlehmann> | i used the PHP portion for a wordpress plugin. |
17:09 | <erlehmann> | and am now using python. |
17:09 | <erlehmann> | PHP is pig disgusting. |
17:14 | <grendzy> | thanks folks… anyone mind if I quote this chat on a drupal.org discussion? |
17:15 | <AryehGregor> | Go ahead. |
17:15 | <AryehGregor> | It's publicly logged. |
17:15 | <grendzy> | cool, thanks again for the feedback |
17:23 | <jarek> | grendzy: this channel is already logged on http://krijnhoetmer.nl/irc-logs/ |
17:57 | <Ms2ger> | "Funnily enough, I've just been talking to the DOM5 and DOM6 API designers..." |
17:57 | <Ms2ger> | Anybody know those? |
18:09 | <smaug____> | Ms2ger: where is that coming from? |
18:10 | timeless | saw that |
18:10 | timeless | can't remember |
18:14 | <miketaylr> | public-webapps? |
18:19 | <timeless> | ah yes, in a Selectors API 2 thread |
19:19 | <rillian_> | foolip: what do you think about video.advance(optional unsigned long frames) ? |
19:20 | <rillian_> | the idea would be to have something you could call the single-step when paused |
19:20 | <zewt> | might be expensive to implement for some codecs |
19:20 | <rillian_> | yeah, I was just thinking skipping many frames could be very expensive |
19:20 | <rillian_> | in a variable frame rate stream |
19:21 | <rillian_> | video.advance() wouldn't be bad though |
19:22 | <zewt> | don't know if there are use cases for small values of frames but greater than 1 |
19:22 | <Hixie> | hsivonen: thanks. i think it's only a temporary issue though, i'll be removing a lot of text soon which should solve the problem anyway. |
19:22 | <zewt> | perhaps it would be cheap enough to just call advance() multiple times--if the decoding itself is done lazily, it would still allow frame skipping optimizations |
19:23 | <rillian_> | zewt: yeah. I think the idea is just to scan faster |
19:24 | <rillian_> | but if it's unlimited, someone might try to use it to seek, not realizing it's an expensive operations on some formats |
19:24 | <zewt> | right |
19:24 | <hsivonen> | Hixie: the old limit was around 5 MB. the spec was around 6 MB. the new limit is 7 MB |
19:24 | <zewt> | (some people might still call advance() a ton to try to seek, but you can only babysit so much) |
19:24 | <rillian_> | *is* it expensive on vfr mp4? |
19:24 | <zewt> | not sure |
19:24 | <rillian_> | I guess it's pretty bad on webm |
19:25 | <rillian_> | you can go a chunk at a time, but still |
19:29 | <Hixie> | hsivonen: oh, wow. |
19:29 | <Hixie> | hsivonen: i wonder what i added to make the difference so high |
19:30 | <danbeam> | anybody know if it's intentional that it's pretty much impossible to find out if setting a style from the JS/DCOM will actually trigger a CSS transition / [webkitT]ransitionEnd event? I'm having issues where I'd like to fire a callback on webkitTransitionEnd but if there's no style that ends up changing (i.e. you simply set the same style) you'll never reach this event handler as you never triggered a transition... |
19:30 | <Hixie> | hsivonen: it still seems to catch errors all teh way to near the bottom of the spec |
19:30 | <Hixie> | hsivonen: so i assumed it was just on the edge |
19:32 | <rillian_> | zewt: I think reason for the argument was so you could call video.advance(-1) |
19:32 | <zewt> | doesn't have to be an integer to allow that (though also, scanning backwards can be pretty expensive) |
19:33 | <rillian_> | which isn't as expensive as large n, but it still a lot of new code |
19:33 | <rillian_> | zewt: right |
19:33 | <zewt> | not necessarily much code, but it's often an expensive operation |
19:34 | <rillian_> | well, you might have to rememeber the last keyframe, if you're not already? |
19:35 | <zewt> | only if you want to optimize it further, but that's very low-level... |
19:36 | <zewt> | (depending heavily on the codec, of course--many formats you'll need to keep the keyframe around anyway) |
19:36 | <zewt> | (or multiple keyframes) |
19:38 | <danbeam> | s/DCOM/DOM/ ** |
19:38 | <rillian_> | well, the reason this never works is you really want to just buffer a bunch of decoded data so you can step around |
19:38 | <rillian_> | which is what editing applications do |
19:38 | <rillian_> | but that adds a lot of footprint for a feature which mostly isn't used |
19:38 | <zewt> | generally when it works, seeking backwards is just painfully slow, decoding everything over and over |
19:39 | <zewt> | editing applications tend to just reencode the video in something designed for it (stuff that doesn't keyframe once a year) |
19:39 | <rillian_> | that too |
19:40 | <rillian_> | anyway, I think it has to map to a low-level call inside the playback engine |
19:40 | <rillian_> | because for variable frame rate formats, you can't be sure you're moving to a particular frame number without codec- and container- specific knowledge |
19:42 | <rillian_> | which is why fixed frame rate is the ONE TRUE WAY! *ahem* |
20:15 | <Ms2ger> | Hmm, nice |
20:16 | <Ms2ger> | Apparently all of Gecko/Webkit/Presto let you do handle = setInterval(); clearTimeout(handle); |
20:22 | <annevk> | Ms2ger: isn't that how that feature works? |
20:23 | <Ms2ger> | Not per spec afaict |
20:23 | <Ms2ger> | Note interval <-> timeout |
21:10 | <jgraham> | Ms2ger: Oh, that is interesting |
21:11 | <jgraham> | Presumably the reverse is also true so clearInterval and clearTimeout are synonyms? |
21:12 | <Ms2ger> | That's true in Gecko, haven't tested |
21:14 | <jgraham> | Any reason not to make the spec say that? |
21:14 | <Ms2ger> | Probably not, I filed a bug |
21:16 | <TabAtkins> | jgraham: I wouldn't hold your breath, no; it'll certainly take more than a minute or two to do it. |
21:16 | <TabAtkins> | But I've talked with fantasai about it, and we both think it's a reasonable idea. |
21:19 | <jgraham> | TabAtkins: Well ignoring the fact that selectors is turning into something that closely resembles line noise already (or Perl), waiting years for the inevitable wrangling about who owns the spec and where it is allowed to discuss it and then more time as people debate synatax seems relatively unappealing compared to slapping the already-implemented-in-Opera API onto XPath and covering all the same use cases. Even if we still so the other thing. |
21:19 | <jgraham> | *do |
21:23 | <TabAtkins> | Do you already understand XPath? |
21:23 | <erlehmann> | i once made a content management system using XSLT |
21:23 | <jgraham> | Me? I understand it enough to use it when I use lxml |
21:23 | <erlehmann> | madness |
21:23 | <jgraham> | XSLT != XPath |
21:23 | <jgraham> | XSLT is indeed nuts |
21:24 | <erlehmann> | jgraham, i had to use Xpath in between. |
21:24 | <jgraham> | Sure, XSLT depends on XPath |
21:24 | <TabAtkins> | jgraham: Then you are an extremely tiny minority of authors. Almost *all* authors are unaware that there even is such a thing as XPath, and would react badly if we tried to tell them to use a completely different selection syntax if they want a new feature, that doesn't work with any of the old features. |
21:24 | <erlehmann> | jgraham, i think tha difference between perl line noise and CSS is that CSS is single-pass tokenizing. you can't parse perl. (at all) |
21:25 | <jgraham> | TabAtkins: The selectors way might be a good long term thing for that reason |
21:25 | <TabAtkins> | And, heh, if you think CSS is line noise, I don't see how you don't think even worse of XPath. ^_^ |
21:25 | <erlehmann> | what TabAtkins says, it sounds reasonable |
21:25 | <jgraham> | Even though selectors scales badly due to the syntax |
21:25 | <erlehmann> | XPath is just lots of JS comments to the trained eye (starting with //) |
21:26 | <jgraham> | XPath mostly has a consistent syntax afaict |
21:26 | <erlehmann> | scales badly? |
21:26 | <jgraham> | Selectors just picks a new character for each new feature |
21:26 | <jgraham> | By 2050 I will probably need to have emoji input to make complex selectors |
21:26 | <TabAtkins> | Only for syntax-level features. Most features can be exposed through pseudoclasses and similar. |
21:27 | <erlehmann> | what became of :outside? |
21:27 | <Ms2ger> | ::outside* |
21:27 | <erlehmann> | ::outside i mean |
21:27 | <TabAtkins> | Doesn't exist yet. The draft speccing is is currently abandoned. |
21:27 | <erlehmann> | I WANT OUTSIDE |
21:27 | <erlehmann> | breaking out of div hell is great. |
21:27 | <jgraham> | erlehmann: Thank you for demonstrating my point :) |
21:28 | <TabAtkins> | erlehmann: I know, I want functionality like that too. |
21:28 | <erlehmann> | jgraham, i like CSS. it can do, err, stuff. |
21:29 | <erlehmann> | here, take some blog.fefe.de/?css=http://daten.dieweltistgarnichtso.net/src/fefe-anaglyph-css/anaglyph.css |
21:29 | <erlehmann> | (caveat: red-cyan glasses needed.) |
21:30 | miketaylr | goes blind |
21:30 | jgraham | isn't saying anything about CSS in general |
21:31 | <erlehmann> | miketaylr, that blog allows external CSS. i also made an imageboard style and a facebook-like one once. |
21:31 | <erlehmann> | :) |
21:31 | <miketaylr> | ooo cool |
21:31 | <erlehmann> | it is a fun demo ground for neat tricks |
21:33 | <erlehmann> | http://blog.fefe.de/?css=http://daten.dieweltistgarnichtso.net/src/fefesbook-css/fefesbook.css |
21:33 | <erlehmann> | see what i did there? |
21:33 | <miketaylr> | heh |
21:33 | <miketaylr> | aw bummer, http://blog.fefe.de/?css=data:text/css,h1{color:green} |
21:33 | <miketaylr> | :P |
21:34 | <erlehmann> | i use html::before |
21:34 | <erlehmann> | BOW BEFORE ME |
21:34 | <erlehmann> | :D |
21:35 | <erlehmann> | maybe i should do an article on abusing CSS |
21:35 | <erlehmann> | hehe |
21:35 | <erlehmann> | selectors fun is fun! |
21:48 | <finnala> | With great power comes great responsibility |
22:32 | <TabAtkins> | Yup, Bjoern is now in my killfilter. Nearly every interaction I have with him is him trolling. |
22:37 | <TabAtkins> | Hmm, looks like a recency illusion, actually. He's only recently been trolling, and only in CSS stuff. I'll remove the filter and let him ride a while longer. |
22:44 | <Hixie> | bjoern h? |
22:44 | <TabAtkins> | Yeah. |
22:47 | <Hixie> | i haven't found him trolling, though i have for hte past few years found his priorities are more theoretical than i am comfortable with |
22:47 | <Hixie> | he used to be emminently practical in his feedback |
22:47 | <TabAtkins> | Yeah, when I looked back through my archives, his feedback on html or js stuff seems fine. |
22:47 | <Hixie> | now he tends to talk about process and theoretical spec correctness issues |
22:48 | <Hixie> | (much like julian) |
22:50 | <jgraham> | TabAtkins: FWIW I think accusing Robin of "arguing badly" was unjustified |
22:51 | <jgraham> | AFAICT there is no actual disagreement about facts only about priorities |
22:52 | <jgraham> | Everyone agrees that selectors don't address all the use cases today. The only disagreement is about whether the remaining use cases are important enough to address now rather than in a hypothetical future selectors spec |
22:53 | <jgraham> | At the cost of having nice API for two selection methods in the short term as opposed to nice API for one method and hideous API for one method |
22:53 | <TabAtkins> | Possibly. He was being needlessly sarcastic, and then compounded it with impugning my motives and hyperbolizing. |
22:54 | <TabAtkins> | I claimed he was arguing badly at the sarcasm point, though, where it was much more weakly justified. |
22:55 | <TabAtkins> | At this point I think it's quite accurate, though. |
22:56 | <jgraham> | Anyway I will go to sleep now. No doubt there will be a deluge of mail about this to look forward to :) |
23:10 | <Hixie> | anyone know if in mysql there's a way to check if a column's value is equal to one of a set of strings? short of manually constructing a sequence of ORed expressions? |
23:11 | <Hixie> | hmm, looks like IN (?, ?) will do it |
23:11 | <Hixie> | i wonder if there's a way to make DBI automatically fill the right number of ?s |
23:13 | <Philip`> | I just use '... IN ('.(join ', ', map '?', @data).')' to get the right number of them |
23:14 | Philip` | has never encountered a more elegant method |
23:14 | <TabAtkins> | Hixie appears to be above the crass practice of direct SQL string creation. |
23:14 | <Hixie> | Philip`: yeah that's what i'm doing, but i was hoping for something neater |
23:14 | <Philip`> | It's less crass if you're dynamically generating placeholders, and not putting user-supplied data into the query string |
23:15 | <Hixie> | yeah, it's not terrible |
23:15 | <Hixie> | it's still not pretty though :-) |
23:16 | <Philip`> | You could always create a temporary table, insert each item into that table, then do the query with "foo IN (SELECT value FROM that_temporary_table)" |
23:16 | <Hixie> | i would assume that that has worse perf characteristics |
23:16 | <Hixie> | what i'd like is just to be able to put a single ? in the query, and pass DBI an arrayref and have it expand it appropriately |
23:46 | <annevk> | oops |
23:46 | <annevk> | bit over aggressive there on the wiki |
23:47 | <Hixie> | no worries |
23:51 | <annevk> | ojan: annotating everything with [Scope] on Document/Element and their derived interfaces seems like it would add a lot of noise |
23:51 | <zewt> | i've wanted sql apis to be able to do things like select("select * from table where id in (?)", [1,2,3]), and know (or have a simple way of saying) that the array should be expanded appropriately |
23:52 | <annevk> | ojan: I can see how that makes sense if the new set becomes larger... but at this point in time? |
23:52 | <AryehGregor> | Hixie, the ? stuff probably maps to prepared statements on the DB side, no? Not something in the library? |
23:52 | <zewt> | (the same thing as what hixie said, actually) |
23:52 | <zewt> | no, ? is usually "expand an (escaped) parameter here" |
23:53 | <AryehGregor> | Yes, but is that done by the client library or the server? |
23:53 | <zewt> | library |
23:53 | <AryehGregor> | I guess it's probably done by the client library in this case. |
23:53 | <zewt> | the communication to the server is just the resulting SQL |
23:53 | <AryehGregor> | Although MySQL supports a feature with the same syntax, it would take three statements to use it, I guess: http://dev.mysql.com/doc/refman/5.6/en/sql-syntax-prepared-statements.html |
23:54 | <annevk> | from twitter "I use the first thing that autocompletes in the devtools :)" so that's how people end up using document.width |
23:54 | <AryehGregor> | More, actually. |
23:54 | <Hixie> | AryehGregor: either way |
23:54 | <AryehGregor> | What's document.width anyway? |
23:54 | <Hixie> | AryehGregor: i don't mind how it's implemented ;-) |
23:54 | <AryehGregor> | I saw people talking about it. |
23:54 | <annevk> | it's nothing now |
23:54 | <zewt> | iirc i've wanted the same syntax to be able to fill in array literals (with postgres) |
23:55 | <annevk> | I guess it's time to find some more features to remove |
23:55 | <annevk> | well, not right now, now it's sleepy time :) |
23:56 | <Philip`> | zewt: Common advice is to use the ? placeholders so the server can cache the optimised query and reuse it with any arguments, which seems incompatible with the idea that the expansion is done by the client library |
23:56 | <ojan> | annevk: yeah...i just wouldn't want new features to fall through the cracks |
23:56 | <ojan> | but i guess the consequences aren't that bad |
23:56 | <ojan> | my hope is more that we could reduce the list over time |
23:57 | <ojan> | but maybe it's not worth the effort |
23:57 | <zewt> | the main reason for ? placeholders is to abstract away string escapes |
23:57 | <zewt> | anything else might be useful but a distant second... |
23:57 | <AryehGregor> | Philip`, it might be two different features using the same ? syntax. |
23:57 | <zewt> | that's definitely what prepared statements are for; i don't know if non-prepared statements do that too |
23:58 | <zewt> | though i guess i wouldn't be surprised, at least with postgres which (last i knew) is a lot more aggressive about optimizing than mysql |
23:58 | <TabAtkins> | Philip`: It's compatible with the idea that you don't have to worry about escaping, because the client library handles it all for you. |
23:59 | <zewt> | though optimization is a bit trickier than that, since you don't know which parts of the query are static and which are variable |
23:59 | <zewt> | (which you do know with prepared statements) |
23:59 | <AryehGregor> | MySQL is great at optimizing, providing you tell it exactly what optimizations to do and are fine with completely rewriting your queries in harebrained ways to trick it into being not completely retarded. |
23:59 | <Hixie> | nessy: ping |