| 00:02 | <Hixie> | i'll let y'all handle that one :-) |
| 00:02 | <Dashiva> | It seems to me that MoinMoin can't generate <th> in tables |
| 00:02 | <Dashiva> | How's that for accessibility... |
| 00:04 | <Philip`> | <td colspan="3" style="text-align: center"><p class="line891"><strong>Heading</strong></td> |
| 00:04 | <Philip`> | (via http://moinmoin.wikiwikiweb.de/HelpOnTables ) |
| 00:04 | <Dashiva> | Ayup |
| 00:06 | <Philip`> | The wiki-code for tables looks fairly ugly - does anybody have a nice way of marking up tables? |
| 00:09 | Philip` | kind of likes the LaTeX syntax, since you normally only need a single line of setup code and then every row is like "cell1 & cell2 & cell3 \\" which is about as minimal as possible |
| 00:09 | <Dashiva> | Mediawiki's way is bad because it clashes with template syntax, but just markup-wise it covers most of it |
| 00:09 | <Philip`> | (http://en.wikibooks.org/wiki/LaTeX/Tables etc) |
| 00:10 | <Dashiva> | (You can't do the fancy stuff like col/colgroup/thead etc, but they allow plain html for the complex stuff) |
| 00:11 | <Philip`> | (Does that mean you can write a simple table with the wiki syntax, then add a few more complex features, but once you get to a certain point and want another feature you have to rewrite the entire thing into HTML?) |
| 00:12 | <Dashiva> | No, you can just copypaste the output of the old code :) |
| 00:12 | <Lachy> | Hixie, you might be able to answer this more better than I can. http://blogs.msdn.com/ie/archive/2008/04/23/what-happened-to-operation-aborted.aspx#8422881 |
| 00:12 | <Philip`> | Dashiva: What if you want to remove that final feature and convert it back to the wiki syntax? :-) |
| 00:12 | <Dashiva> | Run a regexp on it :) |
| 00:12 | <Lachy> | s/more better/better/ |
| 00:13 | <Dashiva> | You could even write a wikicode serializer and link it to html5lib! |
| 00:15 | <Hixie> | Lachy: commented |
| 00:21 | Philip` | wonders if it's possible/sensible for a script to override document.write and intercept all the written strings |
| 00:22 | <Philip`> | (I'd like to let pages get proper HTML5 parsing by adding a line <!doctype html><script src=html5parser.js></script> to the top, but that seems like it'd be a bit messier if the page tries doing fancy scripting stuff itself) |
| 00:24 | <Lachy> | Hixie, there's a few more exceptions you forgot to mention, like always appending link and meta elements to the head, even if it's not open. |
| 00:24 | <Lachy> | though, I suppose that doesn't insepct the DOM to do that, it just maintains a separate head pointer |
| 00:48 | <mcarter> | hello |
| 00:49 | <mcarter> | othermaciej, I'm curious what your proposal is for an http based protocol for TCPConnection? |
| 00:49 | <mcarter> | othermaciej, Hixie mentioned that the protocol was your main objection |
| 00:49 | <othermaciej> | mcarter: I don't have a full proposal for how to satisfy the TCPConnection use cases |
| 00:50 | <mcarter> | othermaciej, Ok, I'm at least interested in the reasons for it |
| 00:50 | <othermaciej> | my two problems with it are: (1) it uses port/host addressing instead of URI addressing, which is a poor fit for the Web model |
| 00:50 | <mcarter> | othermaciej, I'm putting together a document about the pros and cons of http for TCPConnection |
| 00:50 | <othermaciej> | (2) it's bad to send non-http over the assigned ports for http and https |
| 00:51 | <othermaciej> | (3) I am worried that connection to arbitrary ports could lead to security issues, although Hixie tried hard to avoid them |
| 00:51 | <othermaciej> | (basically the only security mechanism though is assuming that no other protocol will happen to emulate the TCPConnection handshake, which seems pretty weak) |
| 00:52 | <othermaciej> | (given that other protocols have been found to have multiple interpretation vulnerabilities) |
| 00:52 | <othermaciej> | I guess that is three problems |
| 00:52 | <mcarter> | ok |
| 00:52 | <mcarter> | i had a couple of other concerns |
| 00:52 | <mcarter> | With SSL there is no way to do virtual hosting -- you have to route on ip address... HTTP/1.1 upgrade with TLS solves this problem |
| 00:53 | <othermaciej> | mcarter: I think a custom http method that begins a two-way session might be a promising solution, but I think that would require a proof of concept that it is viable on client and server side |
| 00:53 | <mcarter> | Http provides the Host header to avoid dns rebinding attacks |
| 00:53 | <mcarter> | othermaciej, it seems to me the way to do it is send an OPTIONS with an Upgrade: tcp/1.0 header as the client->server tcp handshake |
| 00:53 | <othermaciej> | mcarter: those are also good points |
| 00:54 | <mcarter> | also, HTTP based connections include query parameters and cookies, allowing for normal auth mechanisms |
| 00:55 | <mcarter> | othermaciej, i'll add your three points to my document |
| 00:56 | <mcarter> | the big hurdle is keeping it simple enough for Hixie's requirements, particularly that it be possible to implement in just a few lines of perl |
| 00:56 | <Philip`> | use Net::HTML5::Connection; |
| 00:56 | <Philip`> | run_server(); |
| 00:57 | <Philip`> | Should it be a few lines of Perl that a normal Perl programmer would write, or a few lines that a Perl golfer could write? |
| 00:57 | <mcarter> | Philip`, he wants it to be 3 lines with no support libraries |
| 00:59 | <Hixie> | i dunno about 3 |
| 01:00 | <Hixie> | i think i said a few dozen |
| 01:00 | <Hixie> | but the point is it has to be a fully compliant implementation |
| 01:00 | <Philip`> | Is there any problem that can't be solved in a few dozen lines of Perl? |
| 01:01 | <takkaria> | the travelling salesman problem? |
| 01:02 | <Philip`> | takkaria: That's a trivial problem to solve - just enumerate all possibilities and pick the best |
| 01:03 | <takkaria> | quickly, then. :) |
| 01:03 | <Philip`> | It's trivial to do it quickly, at least for certain input sizes :-) |
| 01:05 | <takkaria> | OK, I'll stop defending my quick and ill-thought-out reponse now |
| 01:05 | <takkaria> | anyone else want a go? :) |
| 01:12 | <Philip`> | perl -lpe'@==sort@p=map$_.shift@=,@@for@@=/,|\pL/g;$_=@p[$`]' |
| 01:12 | <Philip`> | Apparently that does the Burrows-Wheeler transform, but I don't quite see how :-/ |
| 01:14 | <jwalden> | Hixie: in 6.4.1, you can't check the origin of the target document while postMessage is running -- what happens if the target window is navigated to another location before the event is dispatched? |
| 01:18 | <jwalden> | as far as I can tell, the only thing you can/must do at postMessage time is determine the origin of the caller; everything else must happen immediately before the event is dispatched |
| 01:19 | <mcarter> | Hixie, oh, i think we could get it done in just a few lines of code even if it was http-based |
| 01:21 | <mcarter> | Hixie, i don't think saying "it should be implementable in 3-10 lines of perl" is unreasonable whatsoever |
| 01:26 | <othermaciej> | mcarter: my vague idea was to repurpose the CONNECT method, since that is likely to already work through proxies |
| 01:27 | <othermaciej> | mcarter: but developing the proper server-side support would be tricky |
| 01:27 | <othermaciej> | so I feel like it is not worth suggesting without proof-of-concept client and server impls |
| 01:27 | <othermaciej> | I think the two-way persistent connection problem may just have to get solved after HTML5 |
| 01:29 | <mcarter> | othermaciej, well, I'm working on a proof of concept so feel free to suggest to me any ideas you have |
| 01:39 | <mcarter_> | othermaciej, i lost connectivity there, but i had try to say that you should give me any ideas/suggestions you have for bi-directional communication protocols because I'm making a proof of concept client and server |
| 02:11 | <othermaciej> | mcarter: ok, so my idea was to overload CONNECT, have an apache module that lets a CGI script or similar handle this, and have it establish a two-way TCP connection |
| 02:11 | <othermaciej> | mcarter: using "upgrade" also seems like an interesting idea though may be less proxy-compatible |
| 02:11 | <Philip`> | Apache module sounds scary |
| 02:12 | <othermaciej> | I have no idea how hard or easy it is to write an Apache module but I assume it is easier than an IIS plugin |
| 02:12 | <Philip`> | Apache modules don't work too well in lighttpd either :-( |
| 02:13 | <othermaciej> | I'm not sure there is a viable solution that will work with every existing httpd |
| 02:13 | <othermaciej> | (Hixie's approach was basically to run services that don't hook into httpd at all on totally separate ports) |
| 02:15 | <Philip`> | I'm not sure what problem this is trying to solve, so I suppose I should find that out first |
| 02:16 | <othermaciej> | the problem is enabling full duplex messaging between a client and a server over a single established TCP connection (to avoid overhead of constantly creating and destroying connections) |
| 02:16 | <Philip`> | Server-sent events + XHR with HTTP pipelining? |
| 02:16 | <othermaciej> | the closest thing to it over http is http pipelining combined with a multipart (or otherwise incremental) http response |
| 02:17 | <Philip`> | (or just keepalive) |
| 02:17 | <Hixie> | my main use case was on a machine that didn't even have a web server |
| 02:17 | <Hixie> | but that's another story |
| 02:17 | <Hixie> | jwalden: woops, good point |
| 02:17 | <Hixie> | jwalden: fix on the way |
| 02:18 | <othermaciej> | XHR with pipelining might be viable, but there's no solution on the server side (afaik) to bind a pipeline to a single process which handles all requests on it |
| 02:18 | <othermaciej> | so if you have a front-end server that farms out requests to individual process/threads to serve them, you have not really solved the use case |
| 02:19 | <othermaciej> | also http pipelining is currently not viable on the client side |
| 02:19 | <Philip`> | I'm pretty sure Opera did XHR pipelining when I last tested it |
| 02:19 | <othermaciej> | Opera tries to use super clever heuristics to figure out when it can avoid any of the servers or proxies that create problems |
| 02:19 | <Philip`> | Ah |
| 02:20 | <Philip`> | That sounds interoperable |
| 02:20 | <othermaciej> | but I don't think anyone else has enough faith in their ability to come up with sufficiently clever heuristics |
| 02:21 | <Philip`> | Aren't the servers and proxies likely to cause just as many problems for a brand new persistent-two-way-connection-over-HTTP thing than for pipelining? |
| 02:21 | <othermaciej> | an http pipeline does also impose quite a bit of protocol-level overhead if your messages are small, though maybe that doesn't matter in practice |
| 02:21 | <mcarter> | othermaciej, i don't think the Uprade header has anything to do with proxies. We'll still need to put send a CONNECT to the proxy no matter what protocol we choose |
| 02:21 | <othermaciej> | Philip`: the problem with pipelining is that some servers (and proxies) will scramble multiple responses when you give them pipelined requests |
| 02:21 | <mcarter> | also, I don't like http pipe-lining at all -- the only way to restart a stream is to close the actual tcp connection, or send http responses back to all the "acks" that have built up |
| 02:22 | <othermaciej> | Philip`: however, CONNECT does give you a way to tunnel a connection over the proxy at least for SSL that seems to work |
| 02:22 | <mcarter> | othermaciej, with the apache stuff, i don't think the topic is how someone should implement tcp connection, rather what protocol should be used |
| 02:23 | <mcarter> | othermaciej, later on, apache or anyone else can go ahead and implement whatever api/interaction with their current stuff that they want |
| 02:24 | <mcarter> | Philip`, server sent events + XHR, without pipelining provides a pretty workable duplex stream, but its really hard to implement |
| 02:24 | <Philip`> | Is this feature meant to work for people with very restricted networks that allow nothing except HTTP (maybe HTTPS) connections and only to their proxy server? |
| 02:25 | <Philip`> | mcarter: Ah, I suppose the pipelining doesn't actually matter except for latency |
| 02:25 | <Philip`> | (but I was looking at this in the context of a multiplayer FPS, where latency is pretty important) |
| 02:26 | <mcarter> | Philip`, yeah, for upstream latency you'd have to do somethign with multipart to make it reasonable |
| 02:27 | Philip` | wonders which direction is upstream |
| 02:27 | <mcarter> | good point. From a client/server point of view, upstream counts as towards the server, at least thats how I use the term |
| 02:27 | <Philip`> | Okay |
| 02:27 | <mcarter> | Philip`, a full duplex mechanism for the browser should work over restricted networks where traffic must pass through firewalls and/or http forward proxies |
| 02:28 | <mcarter> | Philip`, so we'll definitely need to send a CONNECT to the forward proxy either way |
| 02:28 | <Philip`> | Are there proxies that block everything except GET and POST? |
| 02:28 | Philip` | doesn't know how much effort people put into making their networks useless |
| 02:29 | <mcarter> | possibly, but they still support CONNECT for https |
| 02:29 | <mcarter> | CONNECT to a proxy basically means, "now ignore any more bytes that go up or down this connection" |
| 02:30 | <Philip`> | That sounds like a good feature to lock down when all your annoying users are trying to Skype through your network |
| 02:30 | <othermaciej> | mcarter: one requirement that Hixie (rightly) states is that this new approach must be reasonably easy to deploy on the server side |
| 02:31 | <othermaciej> | mcarter: I haven't proposed a protocol in part because I feel like I would need to prove it is viable with code |
| 02:31 | <othermaciej> | just making a protocol proposal isn't very helpful in itself |
| 02:31 | <mcarter> | othermaciej, this is precisely what i'm working on |
| 02:31 | <mcarter> | othermaciej, i'm making an implementation of the TCPConnection api in the browser that speaks to a special server that understands sse and xhrs as being upstream and downstream |
| 02:32 | <mcarter> | othermaciej, then that server opens a raw socket connection to the destination, and speaks the appropriate protocol |
| 02:32 | <mcarter> | othermaciej, so any browser code can use the javascript api, and the server code can just be a socket server that implements whatever the protocol is supposed to be |
| 02:32 | <mcarter> | othermaciej, so I'm interested in feedback as I put together a few example server implementations of that protocol |
| 02:33 | <othermaciej> | mcarter: I don't see the point of that |
| 02:33 | <othermaciej> | mcarter: it doesn't do anything to show viability of directly integrating support for the protocol into an existing server infrastructure |
| 02:33 | <mcarter> | one of the demos could easily be an apache module, if thats what you think it would take to prove anything |
| 02:34 | <mcarter> | personally, i'm more with hixie that it should be a few lines of perl |
| 02:34 | <othermaciej> | well, it's certainly not the only way |
| 02:34 | <othermaciej> | a few lines of perl almost certainly can't be a specific URI on the same host and port your document came from |
| 02:34 | <othermaciej> | anything where you have to pick a custom host and port can't work purely within the same-origin security model |
| 02:35 | <mcarter> | othermaciej, i believe the plan is to allow at least cross-sub-domain and probably fully cross-domain tcp connections |
| 02:35 | <Hixie> | yeah |
| 02:35 | <othermaciej> | yes, that is what TCPConnection allows, and one of the things I dislike about it |
| 02:35 | <Hixie> | oh? |
| 02:36 | <jwalden> | hm, this making the argument thing isn't so non-trivial if you actually decide to be principled and determine what the argument *should* be if it's provided and not "*" |
| 02:36 | <othermaciej> | the only security measure is assuming no other current or future network service can emulate the handshake |
| 02:36 | <mcarter> | othermaciej, it doesn't really make sense to just come up with some special protocol to speak to http servers. As I see it, TCPConnection to *other* services/daemons will enable a whole class of applications |
| 02:36 | <jwalden> | s/thing/non-optional thing/ |
| 02:36 | <othermaciej> | (or can be tricked into emulating the handhsake) |
| 02:36 | <othermaciej> | but TCPConnection can't talk to an arbitrary existing service |
| 02:36 | <othermaciej> | it has to talk to a custom service written for TCPConnection |
| 02:37 | <Hixie> | jwalden: you only need to include it in the reply, really, right? in which case just pass event.origin |
| 02:37 | <mcarter> | othermaciej, of course. but custom socket services are trivial to write, and give you the power of full duplex communication without banging your head against a wall or using flash |
| 02:37 | <jwalden> | Hixie: I have so many convolutions in most of these tests that it isn't always that simple |
| 02:37 | <Hixie> | jwalden: heh |
| 02:37 | <jwalden> | Hixie: further, providing the literal value is good defense anyway |
| 02:37 | <othermaciej> | it's like combining the worst parts of something http-based (can't talk to existing services) and something socket-based (no URI addressing, no same-origin security, no ability to leverage common http-based infrastrucutre) |
| 02:38 | <othermaciej> | that is the core of what is wrong with TCPConnection, in my mind |
| 02:38 | <Hixie> | jwalden: oh i agree |
| 02:38 | <Hixie> | jwalden: i expect there are two major use-cases |
| 02:38 | <othermaciej> | I want the full duplex functionality on a URI on my server |
| 02:38 | <jwalden> | so except in one or two cases where I'm using a single file generically, I have to determine what the exact value is |
| 02:38 | <othermaciej> | not a separate port on some other host |
| 02:38 | <Hixie> | jwalden: talking to a specific page on a specific host (in which case, it's known), and talking to anyone (in which case, it doesn't matter) |
| 02:38 | <othermaciej> | with no addressing of resources below host granularity |
| 02:38 | <mcarter> | othermaciej, I agree that the tcpconnection should be able to talk to your standard server. an integration with apache for instance |
| 02:38 | <Hixie> | jwalden: though i agree that often test cases end up being complicated for this kind of thing! |
| 02:39 | <mcarter> | othermaciej, but why not also let it talk to a custom service? |
| 02:39 | <othermaciej> | imagine I am logged into www.mychatservice.com |
| 02:39 | <othermaciej> | and the site wants to send my messages back and forth over a full duplex connection |
| 02:39 | <othermaciej> | if it's not over http to the same server, it can't rely on my cookies as the auth credential |
| 02:39 | <jwalden> | on the plus side, I've discovered a test I'd written earlier doesn't meaningfully test what it was testing any more since the domain/uri->origin change |
| 02:40 | <Hixie> | othermaciej: hm, we could send host and path information in the request |
| 02:40 | <jwalden> | I think I can use document.domain and some hacks to make it meaningful again |
| 02:40 | <mcarter> | othermaciej, thats exactly my earlier reason for why it should support cookies |
| 02:40 | <Hixie> | othermaciej: which would get us uri addressibility |
| 02:40 | <othermaciej> | what I'd like to do is open http://www.mychatservice.com/messagestream/othermaciej |
| 02:40 | <Hixie> | othermaciej: (in the same way that web servers do) |
| 02:40 | <othermaciej> | and have that be a two-way full duplex connection |
| 02:40 | <mcarter> | I see it like this, you should make a standard http request with a URL and headers, include an Upgrade: tcp/1.0 header |
| 02:40 | <othermaciej> | that follows the same-origin security model |
| 02:40 | <Hixie> | othermaciej: http is not a full-duplex protocol. we can never get this for an http://... uri |
| 02:40 | <mcarter> | the server can repond acknowledging the upgrade or not |
| 02:41 | <othermaciej> | and sends my cookies |
| 02:41 | <othermaciej> | Hixie: http supports on-the-fly conversion to other protocols (TLS upgrade) and custom methods that do whatever you want (which can tunnel through a proxy via CONNECT) |
| 02:42 | <Hixie> | othermaciej: in theory, sure |
| 02:42 | <mcarter> | Hixie, you can get this for an http:// uri though. just have an http handhsake with an upgrade header |
| 02:42 | <Hixie> | othermaciej: but i'm not writing an http server just so i can send messages back and forth |
| 02:42 | <othermaciej> | I don't know whether it is viable to do this in practice |
| 02:42 | <othermaciej> | that is why I think a proof of concept that integrates with a real server would be informative |
| 02:42 | <othermaciej> | Hixie: neither should you have to write an http server just so you can publish hypertext documents, but fortunately that problem has been solved for you |
| 02:43 | <Hixie> | the original use case i had for this -- my train server -- was a perl script about 50 lines long, most of which was infrastructure to talk to the machine's serial port to control my trains |
| 02:43 | <Hixie> | adding a compliant http server to this would be many more than 50 lines |
| 02:43 | <Hixie> | 1000 maybe |
| 02:43 | <mcarter> | Hixie, don't think of it like that. Choose a subset of http that an existing server would understand as http |
| 02:43 | <othermaciej> | I don't think a train server is a very interesting use case compared to things like chat or other notification streams |
| 02:43 | <Hixie> | mcarter: then it's not conforming |
| 02:44 | <Hixie> | mcarter: or it's not http |
| 02:44 | <mcarter> | Hixie, but thats okay |
| 02:44 | <mcarter> | Hixie, i'm saying, our protocol should NOT be http |
| 02:44 | <Hixie> | mcarter: what's the point of pretending to use http if it's not http? |
| 02:44 | <Hixie> | i'd still have to support http if you handshake on http first |
| 02:44 | <othermaciej> | writing an auth mechanism that works securely without leveraging the http-related infrastructure would take more than 50 lines too |
| 02:44 | <mcarter> | Hixie, so existing servers give back reasonable responses, and you can still do load balancing and authentication with existing methods |
| 02:44 | <mcarter> | Hixie, we handshake on a *subset* of http |
| 02:45 | <othermaciej> | most interesting two-way notification streams would require authentication and would be offered by web services that are already doing auth via http cookies |
| 02:45 | <Hixie> | mcarter: and what happens if someone steps outside that subset? it's still conforming http, so i still have to handle it somehow. |
| 02:45 | <mcarter> | Hixie, if the server steps out of our http-subset, then consider it an invalid tcp connection response and fire an onclose back |
| 02:46 | <Hixie> | mcarter: i don't consider that acceptable |
| 02:46 | <mcarter> | Hixie, the client won't step out because thats what we are trying to standardize. If it does, the server can just give back a 400 or something |
| 02:46 | <Hixie> | mcarter: either it's http or it isn't |
| 02:46 | <mcarter> | Hixie, why should it be one or the other though? |
| 02:46 | <Hixie> | mcarter: what if i connect to the server and do a HEAD request? or have a Host header that's wrong? or whatever |
| 02:47 | <Hixie> | mcarter: because profiling specifications because they're "too hard" isn't how you get interoperability |
| 02:47 | <mcarter> | our tcpconnection spec can say that you can't use a HEAD request. If you do, the server can respond however it wants because its not a tcpconnection handshake |
| 02:47 | <othermaciej> | I think replying with a 501 would be valid |
| 02:47 | <othermaciej> | (are there any methods that HTTP requires be supported on any resource?) |
| 02:48 | <Hixie> | so now i have to actually check the method |
| 02:48 | <Hixie> | which is imho ridiculous given that what i want to do is just open a socket |
| 02:48 | <mcarter> | Hixie, let me put together an example of this before you pass judgement on how hard it would be |
| 02:49 | <Hixie> | people are going to just skip the steps that aren't required, and you'll end up with servers that open tcp connections for HEAD requests with no UPGRADE or whatever |
| 02:49 | <othermaciej> | I don't think "model train controller" is the common use case |
| 02:50 | <othermaciej> | many interesting use cases require authentication |
| 02:50 | <Hixie> | the train controller required authentication too, actually |
| 02:50 | <othermaciej> | chat, calendar event notification stream, notification stream of twitter messages posted by my contacts |
| 02:50 | <Hixie> | just send the cookie down the pipe |
| 02:50 | <Hixie> | what's the problem with that? |
| 02:51 | <othermaciej> | prevents use of httpOnly cookies to mitigate cookie stealing attacks |
| 02:51 | <othermaciej> | (assuming you are sending the cookie for a different site) |
| 02:51 | <mcarter> | Hixie, also you couldn't have an auth reverse proxy that checks the cookie on the way in to perform authentication |
| 02:51 | <othermaciej> | and then the server and the site vending the cookie have to communicate out of band |
| 02:51 | <othermaciej> | to figure out if the cookie is valid |
| 02:52 | <Hixie> | actually sending third-party cookies to identify the user to a host that's not from the same origin would be an interesting problem |
| 02:52 | <Hixie> | same problem we have with XXX |
| 02:52 | <Hixie> | maybe whatever solution we come up with for XXX can apply here |
| 02:53 | <Hixie> | we could certainly define the api in such a way that cookies and http auth credentials are also sent down the pipe in the handshake |
| 02:53 | <Hixie> | without leveraging the six ton http server |
| 02:54 | <Facedown> | Is there any point to using the type attribute of the script element? |
| 02:54 | <Hixie> | Facedown: not really |
| 02:54 | <Facedown> | I know language is deprecated and type="text/javascript" doesnt really have any effect |
| 02:54 | <mcarter> | Hixie, is there a reason not to arrange that data in a way that looks as close to http as possible, so as to avoid confusing intermediaries? |
| 02:54 | <Facedown> | I guess people just put it there so there's at least one attribute, heh |
| 02:55 | <Hixie> | mcarter: i don't mind it looking like HTTP so long as it isn't HTTP |
| 02:55 | <Facedown> | Oh yeah, the validator and spec do say its required in strict though |
| 02:55 | <Hixie> | Facedown: in html5 it's optional |
| 02:55 | <Facedown> | but isnt there a more correct value? like text/ecmascript? |
| 02:55 | <Hixie> | Facedown: text/javascript is the right value |
| 02:55 | <Facedown> | since javascript isnt the real name |
| 02:55 | <Facedown> | hm |
| 02:55 | <Facedown> | err, application/javascript |
| 02:55 | <Facedown> | http://www.ietf.org/rfc/rfc4329.txt |
| 02:56 | <Facedown> | someone told me about this.. not even sure about it |
| 02:57 | <mcarter> | So what information have we identified so far that we need in the handshake? |
| 02:57 | <mcarter> | 1) Host header, 2) URI, 3) Cookies, 4) referrer |
| 02:59 | <jacobolus> | Facedown: you can just leave it off |
| 03:00 | <jacobolus> | Facedown: all the browsers will know it's javascript |
| 03:00 | <jacobolus> | in html5, it is optional |
| 03:00 | <jacobolus> | so if you use an html5 conformance checker, it will be fine |
| 03:01 | <jacobolus> | Facedown: there's no compelling reason to include it, and it just adds extra characters to your file |
| 03:06 | <jacobolus> | Hixie: why are you so afraid of browsers sending bizarre parts of HTTP as part of this handshake? |
| 03:06 | <jacobolus> | Hixie: aren't there plenty of obscure HTTP features ignored by existing web servers? |
| 03:07 | <Hixie> | jacobolus: i'm worried about someone browsing to that URL and getting back something that is an infinite connection, yes |
| 03:07 | <Philip`> | jacobolus: There are plenty of web servers that break on non-obscure features like HEAD, and it might be nice to not encourage that |
| 03:07 | <Hixie> | anyway, bbiab |
| 03:08 | <jacobolus> | Hixie: I see. it seems like that could be avoided |
| 03:09 | <mcarter> | Hixie, we could use something like OPTIONS as our handshake method... something that a user will never cause to be sent just by browsing |
| 03:10 | <Philip`> | mcarter: What would the server do when the user just sends a GET? |
| 03:11 | <mcarter> | Philip`, send back either a 404, 400, or some status code as indicated in our tcp handshake spec |
| 03:12 | <mcarter> | (while '\r\n\r\n' not in self.buffer) { self.buffer += sock.recv() }; try { assert buffer.startswith('OPTIONS') } catch { sock.send('HTTP/1.x 400 Invalid Handshake\r\n\r\n') } |
| 03:12 | <mcarter> | or something like that |
| 03:13 | <Philip`> | (That try/assert/catch thing looks like an awkward way of writing 'if' :-) ) |
| 03:21 | <mcarter> | Philip`, heh, my only point is that you can just assume the request looks a certain way and just catch any errors if the assumption is wrong |
| 05:35 | <Hixie> | mcarter: why would people not just do (while '\r\n\r\n' not in self.buffer) { self.buffer += sock.recv() }; without the other checks? |
| 05:38 | <mcarter> | Hixie, I see, you're worried about server implementors sending back the wrong thing thus making it possible for a browser to directly connect to a tcp handshake server and get an infinite response |
| 05:39 | <mcarter> | Hixie, in which case, the proper response for a tcp handshake should be to send back a content-length: 0 as part of the headers |
| 05:39 | <Hixie> | i'm worried about any protocol that relies on the author having to do something which they don't get any direct benefit from |
| 05:39 | <Hixie> | because the web shows that authors will not bother |
| 05:40 | <jacobolus> | Hixie: how can you possibly prevent that? |
| 05:40 | <mcarter> | its not clear to me that its a real problem for them to actually ignore the handshake's exact protocol |
| 05:40 | <Hixie> | jacobolus: by not requiring them to do anything other than what they need |
| 05:40 | <mcarter> | if they ignore the protocol, and if someone manages to point an http browser at the tcp server, then shouldn't they get an erroneous response? |
| 05:40 | <Hixie> | mcarter: i'm not writing a spec that says "you must do x" if not doing x will work just as well |
| 05:41 | <jacobolus> | Hixie: you're basically afraid of web servers implementing things such that web browsers could hang. but it seems like that becomes a browser bug, no? |
| 05:41 | <jacobolus> | (hang or use up resources or whatever) |
| 05:41 | <Hixie> | my concern isn't a specific concern, it's a generic one of not wanting to require things that the author gets no benefit from |
| 05:42 | <mcarter> | Hixie, so i say we require a single thing from server implementors |
| 05:43 | <mcarter> | Hixie, and that is, that they send back a specific http response as their half of the handshake |
| 05:43 | <jacobolus> | the author's benefit is that he'll know the browser is actually speaking the proper protocol. is that not enough benefit to properly implementing the handshake? |
| 05:43 | <mcarter> | Hixie, and if they don't send back that response, then the browser rejects the handshake |
| 05:43 | <Hixie> | jacobolus: obviously not, just look at what authors do with html |
| 05:44 | <Hixie> | mcarter: yup, we can do that. but that means what you described above won't happen |
| 05:45 | <mcarter> | Hixie, that was an example to othermaciej how we can prevent random web pages from appearing to hang when users mistakenly navigate to them. the better solution is to require a Content-Length: 0 header, or even a couple dozen bytes in the body which are an error message "You shouldn't be seeing htis page... Go somewhere else." |
| 05:45 | <mcarter> | Hixie, but i see where you're coming from |
| 05:46 | <othermaciej> | mcarter: already now if you navigate your browser to a persistent XHR stream it may appear to hang |
| 05:46 | <othermaciej> | so I do not see solving this problem as essential |
| 05:47 | <othermaciej> | if you browse to reasources not meant to be browsed to directly, weird shit may happen, tough cookies |
| 05:47 | <mcarter> | othermaciej, oh, that wasn't an example for you. it was for Hixie. sorry for the mixup |
| 05:48 | <othermaciej> | perhaps Hixie will agree with my comments as well, since they reduce the burden of what is required on server implementors |
| 05:50 | <Hixie> | i could see an argument for making the handshake look much more like http |
| 05:51 | <Hixie> | but that would not work with proxies |
| 05:51 | <Hixie> | and would not be http-over-port-80 |
| 05:51 | <othermaciej> | you'd have to use CONNECT to tunnel through proxies on the client side |
| 05:51 | <Hixie> | and would in fact not seem to solve any of the purported problems with the current proposal |
| 05:51 | <mcarter> | oh but it would. just make sure you send the CONNECT for the proxy |
| 05:51 | <Hixie> | sure, but we can do CONNECT regardless of what else we do |
| 05:52 | <othermaciej> | and it would solve the URI addressing, lack of cookies, and unable-to-use-web-security-model issues |
| 05:52 | <mcarter> | I'm not clear what the purported problems are with the current proposal. I saw at least one problem, like the dns rebinding attack, and this solves it |
| 05:52 | <mcarter> | Hixie, so CONNECT should happen in any case, and its not really an issue in the non/http discussion |
| 05:53 | <Hixie> | right |
| 05:53 | <Hixie> | it wouldn't solve the uri addressing really |
| 05:53 | <Hixie> | unless we invent a new uri scheme |
| 05:53 | <mcarter> | I'm not sure I follow |
| 05:53 | <Hixie> | ok let me rephrase taht |
| 05:53 | <Hixie> | it isn't necessary to solve the uri addressing issue, or the cookie issue, etc |
| 05:54 | othermaciej | waits for Hixie to expand on that |
| 05:55 | <Hixie> | we can add Host:, Cookie:, etc, to any protocol |
| 05:55 | <Hixie> | doesn't have to look like http |
| 05:55 | <mcarter> | while they aren't absolutely critical issues to have full duplex communication, i think you can spend a little and get a lot by having the client provide the extra information, and format it like http. |
| 05:55 | <Hixie> | i'm all for having that information |
| 05:55 | <Hixie> | i'm just saying that has nothing to do with it being http or not |
| 05:55 | <Hixie> | or http-like, rather |
| 05:55 | <mcarter> | ok |
| 05:56 | <othermaciej> | cookie depends on a host-port-scheme origin though |
| 05:56 | <mcarter> | I think it would be good to look like http because then http parsing libraries would, out of the box, be able to parse it and extract that information. Furthermore, load balancers and authentication reverse proxies could be used AS IS |
| 05:56 | <othermaciej> | so to share cookies with a web server you have to be on the same scheme and port |
| 05:56 | <mcarter> | Hixie, furthermore, you avoid the HTTPS virtual hosting issue that was solved with TLS |
| 05:57 | <mcarter> | Hixie, I'm not sure what the downside of making it look like http is |
| 05:57 | <othermaciej> | I agree you can add Host:, URI-based addressing, and a version of Cookie: that is separate from http cookies to any protocol |
| 05:57 | <othermaciej> | at some level of http-like feature additions it starts to look a lot like http though |
| 05:57 | <Hixie> | othermaciej: yes, the cookies wouldn't get shared if you connected to another server (another port) |
| 05:58 | <Hixie> | othermaciej: but how am i gonna get apache to give me the socket anyway? |
| 05:58 | <Hixie> | mcarter: the only downside is that it's a lie and the httpwg will come and stone us |
| 05:59 | <mcarter> | Hixie, I am suggesting that we make it VERY clear that we aren't HTTP, rather a subset used for TCP handshakes |
| 05:59 | <othermaciej> | Hixie: with a custom method or similar mechanism one could presumably make an apache module (which is why I think making one would be an interesting proof-of-concept excercise) |
| 05:59 | <mcarter> | Hixie, they can't be seriously upset if another protocol borrows some formatting from http |
| 05:59 | <Hixie> | mcarter: hahaha |
| 05:59 | <Hixie> | mcarter: i see you haven't spent much time working with standards committees |
| 06:00 | <Hixie> | othermaciej: making an apache module is more than 10 lines of perl |
| 06:00 | <Hixie> | othermaciej: though i agree that in this case it would be ok |
| 06:00 | <othermaciej> | Hixie: sure, but if you don't want to share the port the apache server has bound, you would not need the module |
| 06:00 | <Hixie> | othermaciej: as it would allow it for the big players or people using server extensions |
| 06:00 | <Hixie> | othermaciej: right |
| 06:00 | <othermaciej> | if the http subset for the handhsake is simple enough |
| 06:00 | <Hixie> | othermaciej: yeah that makes sense |
| 06:00 | <Hixie> | i'm ok with that |
| 06:02 | <mcarter> | Hixie, couldn't we call this TCP over HTTP? The server isn't required to go support all of http, though its welcome to |
| 06:02 | <Hixie> | mcarter: optional features are bad for interop |
| 06:02 | <mcarter> | Hixie, as far as I can tell, this is almost the EXACT use case for which they added the upgrade header |
| 06:02 | <othermaciej> | mcarter: I think it would be well advised to define what a server should do when it only supports the handshake subset of TCP |
| 06:03 | <othermaciej> | er |
| 06:03 | <othermaciej> | handshake subset of HTTP |
| 06:03 | <Hixie> | mcarter: i agree that this is why upgrade exists |
| 06:03 | <Hixie> | mcarter: but since we can't guarentee that people will test for it |
| 06:03 | <Hixie> | mcarter: it doesn't really help us |
| 06:03 | <othermaciej> | such as return a 501 error for any other request |
| 06:03 | <Hixie> | we can't define what a "server should do" |
| 06:04 | <Hixie> | when the server is written by random authors |
| 06:04 | <Hixie> | it's akin to defining how you should use a dom api |
| 06:04 | <mcarter> | Hixie, if someone writes a non-compliant http server that likes to always assume a connection is going to be upgraded, then how is that our problem, OR httpwg's problem? |
| 06:04 | <mcarter> | Hixie, the same argument can be made against doing TLS with the upgrade header. Server implementors might just go an upgrade on their own without testing for it. |
| 06:04 | <Hixie> | mcarter: sure |
| 06:04 | <Hixie> | mcarter: i |
| 06:04 | <Hixie> | er |
| 06:05 | <othermaciej> | I think Hixie assumes writing this kind of server from scratch will be more common than writing full-fledged http servers |
| 06:05 | <Hixie> | mcarter: i'm just saying it doesn't matter that upgrade exists :-) |
| 06:05 | <othermaciej> | although there are quite a few http server implementations out there |
| 06:05 | <othermaciej> | and usually their level of non-compliance is within tolerable limits for UAs |
| 06:06 | <othermaciej> | (I wonder if there is a protocol-level HTTP Validator tool available) |
| 06:06 | <Hixie> | let's just say http isn't how it would have been if i'd been writing the spec either :-) |
| 06:08 | <mcarter> | Hixie, I'm still missing some of the logic. That is, the TLS spec went and used the upgrade header, even though server implementors of TLS might not have actually enforced that header and instead treated all requests like they were part of a TLS handshake. Now we're saying, lets follow suit and do exactly that with our tcp protocol. Which part of this will make the httpwg mad? |
| 06:09 | <Hixie> | the part where you can connect to something that isn't an http server, send it something that looks exactly like an http response, and be compliant, despite the fact that the server doesn't know the first thing about http |
| 06:09 | <Hixie> | i should clarify |
| 06:09 | <Hixie> | that annoying the httpwg isn't necessarily a blocking problem |
| 06:09 | <Hixie> | especially if there are compelling reasons to go this route, as there appear to be |
| 06:11 | <jacobolus> | Hixie: I think you should go rewrite the HTTP spec, and get rid of all the confusing shit in it ;) |
| 06:11 | <Hixie> | http5 is gsnedders' baby |
| 06:11 | <othermaciej> | I am amazed at how technically obscure the http spec is, while at the same time being incredibly unclear on the most basic things |
| 06:12 | <jacobolus> | mcarter has learned to love the http spec these last several months, right? |
| 06:12 | <jacobolus> | he's been having fun writing things like proxies :) |
| 06:12 | <mcarter> | Hixie, ok. in terms of explaining it in way that won't make anyone mad is this: HTTP Servers can also be HTTP/TCP servers if they support Upgrade: tcp. Similarly, anyone who wants to can go write an http or http/tcp server even if it isn't fully compliant (which http server is FULLY compliant anyway?) |
| 06:13 | <Hixie> | othermaciej: like svg? :-D |
| 06:13 | <mcarter> | at any rate, like I said before, I'll draw some documents up that outline some of this stuff |
| 06:13 | <Hixie> | that'd be great |
| 06:13 | <Hixie> | i think we've made major progress here |
| 06:13 | <mcarter> | I sent an api change proposal in for TCPConnnection today, whenever you see it |
| 06:13 | <mcarter> | it just suggests adding a connect() method, and an extra readyState |
| 06:13 | <jacobolus> | yep. and then just make sure that HTTP/TCP is as minimal as possible. :) |
| 06:14 | <othermaciej> | mcarter: I don't like explicit connect |
| 06:14 | <jacobolus> | so that the 10-lines-of-perl constituency stays happy :) |
| 06:15 | <mcarter> | othermaciej, the api change is mostly for the reason of re-using the TCPConnection objects much like we re-use XHR connections |
| 06:15 | <othermaciej> | mcarter: because, first of all, reusing a connection is more confusing than helpful |
| 06:15 | <jacobolus> | Hixie: do you have docs about your train set thing? |
| 06:15 | <othermaciej> | mcarter: and second, because it adds an additional opportunity to use the API wrong, since you can accidentally make calls before connecting |
| 06:15 | <othermaciej> | the current API does not have the possibility of making that mistake |
| 06:16 | <mcarter> | othermaciej, Also, I don't fully feel comfortable with the idea that I must possess deep understanding of javascript concurrency to know when I need to attach the callbacks |
| 06:16 | <othermaciej> | mcarter: ain't no such thing as javascript concurrency |
| 06:16 | <mcarter> | othermaciej, if i create a TCPConnection object, at what point does it *Actually* initiate the connection? when my function that created it returns? when the function that called it returns? |
| 06:16 | <Hixie> | jacobolus: i don't believe so |
| 06:17 | <mcarter> | othermaciej, indeed, but it doesn't seem wise to tie your apis to the idea that there is no concurrency in javascript |
| 06:17 | <mcarter> | othermaciej, at least not where its easy to avoid doing so |
| 06:17 | <othermaciej> | mcarter: as with XHR, you will not in fact get callbacks for network activity until the current script execution (whether <script>, event or timer initiated) finishes |
| 06:17 | <othermaciej> | (well, as with async XHR) |
| 06:17 | <othermaciej> | I don't think it is possible to safely change this rule about callbacks for network activity in any case |
| 06:17 | <mcarter> | othermaciej, so, I suppose we aren't allowing for synchronous tcp connection, ever? |
| 06:17 | <othermaciej> | but yes, programming in the browser there is an implicit "event loop" |
| 06:18 | <othermaciej> | mcarter: no way |
| 06:18 | <Hixie> | good lord no |
| 06:18 | <othermaciej> | or at least, over my dead body |
| 06:18 | <Hixie> | no synchronous anything over the network |
| 06:18 | <jacobolus> | yes, that sounds like a bad idea |
| 06:18 | <Hixie> | i don't know if i'd defend against that with my life, per se |
| 06:18 | <Hixie> | but still |
| 06:18 | <mcarter> | I certainly wouldn't want such a thing, but aren't there being arrangements made for threading in some future javascript? |
| 06:19 | <othermaciej> | mcarter: even with threads, I am not sure synchronous networking is particularly valuable |
| 06:19 | <mcarter> | othermaciej, I certainly don't want to argue that point |
| 06:19 | <othermaciej> | for exaple, Gears has its workers and they are adding async networking only, I believe (their HTTPRequest thing) |
| 06:21 | <jacobolus> | mcarter: is there any other particular reason to not connect immediately? |
| 06:21 | <jacobolus> | mcarter: why does someone need to add a bunch of callbacks at indeterminate times, then sometime way later actually connect? |
| 06:21 | <mcarter> | besides re-use of the connection object, as a programmer it just seems strange to me to have something where the constructor hits the network. particularly in the context of this javascript event loop -- I can see someone making a mistake about when they should attach the callback |
| 06:22 | <othermaciej> | mcarter: you can't reuse a socket |
| 06:22 | <othermaciej> | or a file descriptor |
| 06:22 | <othermaciej> | or a C stdio FILE* |
| 06:22 | <othermaciej> | or a perl file handle |
| 06:22 | <mcarter> | i get your point |
| 06:22 | <mcarter> | if anything thats an argument against re-using the XHR request object, imo |
| 06:23 | <Hixie> | xhr is badly designed |
| 06:23 | <othermaciej> | yes, but we have to support that for legacy compatibility |
| 06:23 | <othermaciej> | XHR is not what I would have designed |
| 06:23 | <Hixie> | basically anything i didn't invent is badly designed, it's really very simple |
| 06:23 | Hixie | ducks |
| 06:23 | <mcarter> | haha! |
| 06:23 | <othermaciej> | plus anything you did invent |
| 06:24 | <othermaciej> | but some things are more badly designed than others |
| 06:25 | <mcarter> | Hixie, how did this happen, exactly? |
| 06:25 | <jacobolus> | Hixie: you need to speed up your pace of invention then |
| 06:26 | <Hixie> | mcarter: which? |
| 06:26 | <mcarter> | Hixie, i mean, you seem to be in a position of some power over the browsers. I mean, i see the IE8 team emailing you about postMessage and such |
| 06:26 | <mcarter> | it seems so unprecedented |
| 06:26 | <mcarter> | (I think its great... a vast improvement) |
| 06:28 | <Hixie> | mcarter: i've only got as much power as they give me |
| 06:28 | <Hixie> | mcarter: my secret is giving them mostly what they want |
| 06:28 | <Hixie> | oh and doing a lot of work |
| 06:28 | <mcarter> | Is this your day job? |
| 06:28 | <Hixie> | people tend to defer to whoever is actually doing the work |
| 06:29 | <Hixie> | it's easier than doing it themselves |
| 06:29 | <Hixie> | mcarter: yes, google pays me to edit html5 full time |
| 06:29 | <othermaciej> | html5 has turned out to be an area where doing things through standards is less painful than just inventing proprietary features |
| 06:30 | <othermaciej> | this is not always the case with web standards |
| 06:30 | <Hixie> | yeah |
| 06:30 | <Hixie> | css being the prime example these days |
| 06:30 | <othermaciej> | I predict everything hyatt announced css-wise for the past 6 months will still be in committee 5 years from now |
| 06:31 | <Hixie> | unless someone writes a spec yes |
| 06:31 | <othermaciej> | I gotta head home |
| 06:31 | <othermaciej> | later folks |
| 06:31 | <mcarter> | whats the timeframe with html5? will it continue to be continuously updated? |
| 06:31 | <Hixie> | later |
| 06:31 | <Hixie> | mcarter: http://www.whatwg.org/specs/web-apps/current-work/TIMETABLE |
| 06:32 | <mcarter> | oh wow |
| 06:32 | <mcarter> | thats a long time line |
| 06:33 | <jacobolus> | Hixie: so will there be something beyond html5 by halfway through that process? |
| 06:33 | <Hixie> | maybe |
| 06:33 | <Hixie> | i don't expect to do html6 |
| 06:33 | <Hixie> | i mostly started working on html5 because at the time, html was the spec in most dire need of work |
| 06:33 | <jacobolus> | right |
| 06:34 | <jacobolus> | so do you think all of the recent webkit css changes will actually be picked up by other browsers? |
| 06:34 | <jacobolus> | or will they remain limited to dashboard widgets, etc. |
| 06:34 | <roc> | some of them I want to implement in Gecko |
| 06:34 | <roc> | others I don't |
| 06:34 | <jacobolus> | Hixie: what is in next-most-dire need? |
| 06:35 | <Hixie> | jacobolus: probably DOM Core, CSS, and HTTP. And SVG. |
| 06:35 | <roc> | fortunately the ones I want are the ones Apple is producing draft specs for |
| 06:35 | <jacobolus> | svg isn't a lost cause? :p |
| 06:35 | <Hixie> | css would be tough to fix because it has a large political quagmire around it |
| 06:35 | <Hixie> | svg too |
| 06:36 | <Hixie> | http could probably be fixed by ignoring the httpwg without too much fallout |
| 06:36 | <jacobolus> | how would anyone possibly fix http? |
| 06:36 | <jacobolus> | what could be done? |
| 06:36 | <Hixie> | dom core would be the easiest to fix |
| 06:36 | <jacobolus> | yes |
| 06:36 | <Hixie> | well, by "fix" i mean "write a real spec" |
| 06:36 | <Hixie> | that defines error handling, actual behaviour, etc |
| 06:36 | <jacobolus> | what's broken about DOM core now? |
| 06:36 | <Hixie> | and strips all the crap |
| 06:36 | <Hixie> | jacobolus: the DOM Core spec is far too vague |
| 06:36 | <Hixie> | in fact, all the DOM specs are too vague |
| 06:37 | <jacobolus> | are the implementations vastly inconsistent then? |
| 06:37 | <jacobolus> | while still meeting the spec? |
| 06:40 | <roc> | a lot of HTTP implementations are just plain broken |
| 06:40 | <roc> | especially proxies |
| 06:40 | <roc> | not much anyone can do about that |
| 06:41 | <Hixie> | jacobolus: not especially more than html4 implementations were, but a vague spec means it's hard to write a new browser |
| 06:41 | <Hixie> | and we need it to be possible to write new UAs so that we can have competition |
| 06:41 | <jacobolus> | roc: yes, I was talking about DOM. I know http is nasty :) |
| 07:18 | gsnedders | cradles his baby |
| 07:18 | <gsnedders> | (seeming Hixie called it my baby) |
| 08:01 | <roc> | Ian, please lean on the GMail team to implement HTML5 link handler stuff |
| 08:01 | <roc> | for mailto: |
| 08:02 | <roc> | I really need it! |
| 08:02 | gsnedders | wants mid: support in Mail.app |
| 08:03 | <Hixie> | roc: i expect they'll do it shortly after ff3 sips |
| 08:03 | <Hixie> | ships |
| 08:03 | <roc> | Yahoo's already done it :-( |
| 08:04 | <roc> | FF3 has UI to select the handler and Yahoo's on it and Gmail isn't |
| 08:09 | <Hixie> | we don't, as a rule, pay much attention to what the competition does, or at least, we don't let it dictate policy :-) |
| 08:10 | <gsnedders> | Peh! You should! :P |
| 08:10 | <gsnedders> | Actually, I don't eat my own dogfood. I don't really pay attention to the httpbis wg |
| 08:42 | <annevk> | I found http://www.htmlfive.net/ which just seems to be a rip of the WHATWG blog with the intention to make money out of it |
| 08:43 | <annevk> | I found it through: http://www.whathuhstudios.com/press/2008/04/24/html5/ |
| 08:43 | <Hixie> | terrible |
| 08:43 | <annevk> | I have the feeling you're being sarcastig :) |
| 08:44 | <Lachy> | well, they've violated the copyright license |
| 08:44 | <Lachy> | there's no mention of the MIT license anywhere and no attribution |
| 08:45 | <annevk> | attribution is not required |
| 08:46 | <Lachy> | actually, yes it is. At least in Australia it is because attribution is considered a basic moral right |
| 08:46 | <Hixie> | our goal with the whatwg blog is to get more people to know about stuff right? |
| 08:47 | <Lachy> | unless otherwise stated by the creator, attribution is always required otherwise it's plagiarism |
| 08:47 | <annevk> | Yeah, guess I was just upset it wasn't a genuine fansite :) |
| 08:47 | <Hixie> | oh there's no doubt that this is immoral |
| 08:47 | <Hixie> | but i recommend not worrying about it |
| 08:48 | <Lachy> | I don't have a problem with them syndicating the posts. That's why we put a free license on it. |
| 08:48 | <Hixie> | yeah but just copying them with no attribution or anything is just nasty |
| 08:49 | <Lachy> | I will see if I can find contact information and ask them to give attribution |
| 08:53 | <Hixie> | ask them to buy us video games with some of the money they make, too |
| 08:55 | <Lachy> | I can't seem to find contact info. Though, there is only one site listed in the blog roll, I'm not certain that he's the owner of the site. |
| 08:55 | <Lachy> | WHOIS info for the domain only shows dreamhost contact info. |
| 08:59 | <Lachy> | wow, that's a useless contact form! http://blog.nprignano.com/contact/message Not even a text box :-( |
| 08:59 | <hsivonen> | it seems to me that the foremost practical concern is getting Google and Technorati consider it a splog |
| 08:59 | <hsivonen> | perhaps they both already do, because it isn't showing up on my vanity feeds |
| 09:00 | <Lachy> | hsivonen, the domain was only just registered 2 days ago |
| 09:00 | <Lachy> | so it will take a few weeks before it shows up in google |
| 09:00 | <hsivonen> | annevk: what's the chance of getting an XML5 tokenizer spec as a delta spec over the HTML5 tokenization spec? |
| 09:01 | <othermaciej> | delta specs suck |
| 09:01 | <hsivonen> | othermaciej: they do, but it seems to me that XML5 and HTML5 will share so much tokenization code that I don't want to write another tokenizer from scratch |
| 09:02 | <othermaciej> | hsivonen: well I don't know what to expect from XML5 so I can't predict if that will be sensible |
| 09:03 | <othermaciej> | would it, for example, accept unquoted attribute values? |
| 09:05 | <hsivonen> | othermaciej: it seems to me that ideally, the only new states would be for the internal subset and PIs |
| 09:05 | <hsivonen> | and otherwise the delta would be where errors fire |
| 09:06 | <hsivonen> | of course, ideally ideally, the internal subset would be swallowed by a black hole |
| 09:06 | <othermaciej> | well <foo/> would have to do something different, as well |
| 09:06 | <othermaciej> | and it has to recognize <![CDATA[ |
| 09:07 | <hsivonen> | othermaciej: but we already have those in the HTML5 tokenizer now |
| 09:07 | jwalden | finishes rewriting postMessage for the third time |
| 09:07 | <jwalden> | "rewriting", that is |
| 09:08 | <jwalden> | bloody spec changes :-) |
| 09:08 | <othermaciej> | interesting |
| 09:09 | <othermaciej> | I still hate delta specs though |
| 09:09 | <othermaciej> | yeah we have to fix WebKit's postMessage now |
| 09:09 | <hsivonen> | othermaciej: well if you can get Hixie to integrate XML5 tokenization into the HTML5 tokenizer spec... |
| 09:10 | <jwalden> | actually, fixing the implementation's comparatively easy, it's all those stupid tests I've written that are taking the lion's share of the time to change |
| 09:10 | <jwalden> | and all the tests others have written that use postMessage since it was introduced |
| 09:10 | <jwalden> | ;-) |
| 09:10 | jwalden | makes note never to write tests ever again |
| 09:11 | <jwalden> | all they cause is more work |
| 09:11 | <Hixie> | :-/ |
| 09:11 | <jwalden> | I kid, I kid! |
| 09:11 | jwalden | channels the Dread Pirate Roberts |
| 09:12 | <othermaciej> | never go in against a Swissilian when specs are on the line |
| 09:12 | <jwalden> | haha, haha, ha- |
| 09:15 | <hsivonen> | Hixie: so far, the YSTEM and UBLIC cases have translated into states very nicely |
| 09:15 | <hsivonen> | Hixie: I expect breaking up the entity stuff into states to be a tad ugliers |
| 09:15 | <hsivonen> | uglier |
| 09:22 | <hsivonen> | I wonder if there are Java to C++ source level translators |
| 09:29 | <hsivonen> | does anyone know how IBM maintains their dual Java/C++ libraries? |
| 09:30 | <othermaciej> | 3 levels of committee review for every checkin? |
| 09:31 | <hsivonen> | othermaciej: could be :-/ |
| 09:39 | <mpt> | krijn, is your IRC logging software publicly available? |
| 09:39 | <krijn> | mpt: nope, sorry |
| 09:40 | <krijn> | mpt: I'm too ashamed about the source code :) |
| 09:40 | <krijn> | And it's not really logging software, the logging is done by mIRC |
| 09:40 | <krijn> | I only parse the logfiles with some PHP |
| 09:40 | <krijn> | Hence the shame ;) |
| 09:40 | <mpt> | ah |
| 09:58 | <Philip`> | http://blog.facebook.com/atom.php - feeds are always more fun when you stick random binary garbage in them |
| 10:20 | <sverrej> | rn |
| 13:40 | <hsivonen> | http://lists.w3.org/Archives/Public/www-validator/2008Apr/0136.html |
| 13:46 | <hsivonen> | aside: Typinator is awasome for refactoring code |
| 13:46 | <hsivonen> | awesome |
| 15:40 | <hsivonen> | aargh. I regressed ¬i; |
| 15:40 | hsivonen | doesn't like ¬i; |
| 15:40 | <Lachy> | Hixie, it would help if the spec had links from each section in the single-page version of the spec to same section in the multipage version. |
| 15:41 | <Lachy> | that way, when I want to give a link to someone, I don't need to send them to the full size spec, or take the time to manually find the section in the multipage version |
| 15:48 | <Lachy> | hsivonen, there is no ¬i; listed in the spec. Did you mean ∉? |
| 15:49 | <hsivonen> | Lachy: no, I meant ¬i; |
| 15:49 | <Lachy> | Hixie, ¬ is listed twice in the table of entities |
| 15:49 | <hsivonen> | Lachy: I've fixed it now |
| 15:49 | <hsivonen> | Lachy: ¬i; is a tricky error cases |
| 15:49 | <hsivonen> | s/cases/case/ |
| 15:50 | <Lachy> | ok |
| 15:51 | <Philip`> | Do the new entities introduce any more cases where one entity is a prefix of another? |
| 15:51 | <hsivonen> | Philip`: I don't know. I'm keeping my head in sand and hoping they go away. |
| 16:03 | <Lachy> | Philip`, do you mean like ¬ ∉ ∉ ⋷ ⋶ ∌ etc...? |
| 16:04 | <Lachy> | looks like there are several, and I only looked in one small section of the table |
| 16:05 | <takkaria> | Lachy: ¬ and ¬ are not the same entity |
| 16:05 | <takkaria> | well, they are, but the duplication is intentional |
| 16:05 | <Lachy> | really? |
| 16:05 | <takkaria> | Lachy: http://www.whatwg.org/specs/web-apps/current-work/multipage/section-tokenisation.html , the "anything else" section at the end |
| 16:05 | <takkaria> | yeah |
| 16:05 | <Lachy> | oh, crap. maybe it would help if I actually read the spec one day |
| 16:08 | <Lachy> | takkaria, which "anything else" section are you referring to? |
| 16:12 | <takkaria> | Lachy: very end of that page |
| 16:15 | <Lachy> | ok. I think the duplication is annoying. Surely there's a way to write the spec such that you don't need to have the same entity listed twice with and without the semi-colon |
| 16:15 | <takkaria> | there would be if every entity was allowed to leave out the semicolon |
| 16:16 | <takkaria> | but afaik, that's not the case |
| 16:17 | <Lachy> | couldn't we add a 3rd column to the table that indicated whether or not a semi-colon was required |
| 16:17 | <Lachy> | for the purpose of parsing |
| 16:17 | <Lachy> | not for conformance |
| 16:18 | <takkaria> | I'm not in favour of that because it makes it harder to build a list of entities for implementations |
| 16:19 | <takkaria> | automatically, that is |
| 16:19 | Philip` | agrees with takkaria |
| 16:19 | <Philip`> | It's nice and easy to just use a regexp to convert the table into a list of entity strings, and it'd need an extra line of code if the semicolonity was a separate column |
| 16:20 | <takkaria> | oh, you use a regex? I use xslt. :) |
| 16:20 | <Philip`> | Yuck :-p |
| 16:21 | <takkaria> | only 11 lines of it, mind |
| 16:22 | <Philip`> | I'm guessing mine was only a single line, because I can't see that I saved the code in a file anywhere |
| 16:24 | <Lachy> | ok, fine. I'll put a table targetted at authors in the HTML5 author guide which lists them only once |
| 16:25 | <Philip`> | A table for authors should show what the character looks like, too |
| 16:25 | <Lachy> | yep, it will list everthing about the character |
| 16:25 | Philip` | wonders if the characters could be categorised into usefulness, rather than having the standard unreadable big list |
| 16:26 | <Lachy> | code point, character name, link to further info about the character, numeric (hex and decimal) character refs, etc. |
| 16:27 | <Lachy> | they were grouped into categories in HTML4 |
| 16:27 | <Philip`> | Might be nice to not scare authors by having a really wide table, too :-) |
| 16:28 | <takkaria> | Lachy: how about including the character the entity represents too? |
| 16:28 | <Lachy> | I could make it interactive and let authors show and hide columns they want to see |
| 16:29 | <Lachy> | takkaria, yeah, Philip` already mentioned that |
| 16:29 | <takkaria> | oh, I missed that. :) |
| 16:29 | <Lachy> | see, I'm not the only one who doesn't read around here :-P |
| 16:34 | <takkaria> | I only remember that because it was around the time I got interested in html5 parsing and it was the only bit of the conversation I understood |
| 16:45 | <hsivonen> | Lachy: the entity table is fine as is |
| 16:46 | <hsivonen> | that is, with duplication |
| 16:46 | <hsivonen> | Lachy: making the table neater in spec would only cause more opportunity for implementation error |
| 16:47 | <Lachy> | hsivonen, Philip` and takkaria already told me that. |
| 16:54 | <takkaria> | there seems to be a "no-one is reading what anyone else has said" bug going round today |
| 16:54 | <takkaria> | let's just hope Hixie doesn't get it |
| 16:56 | <Philip`> | Hey, has anyone noticed the entity table lists "not" twice? |
| 19:34 | <mcarter> | You know, if a TCPConnection constructor causes a network access, then prototype-based subclassing becomes impossible |
| 21:38 | Philip` | discovers that http://www.aaronsw.com/2002/diff/ quite badly fails to work |
| 21:39 | <Philip`> | since it totally ignores element nesting, and just sticks <ins> and </ins> at pretty much arbitrary points in the document, which makes browsers cry |
| 21:40 | <Philip`> | but http://htmlwg.mn.aptest.com/viewcvs/viewcvs.cgi/htmldiff/ actually works properly (and it doesn't make XHTML become ill-formed), which is nice, though the code's use of regexps for parsing looks a little dodgy |
| 21:41 | <Dashiva> | Is there a "proper" way to <ins> the transition Apple <em>pie</em> -> Apple banana <em>pan pie</em>? |
| 21:43 | <Philip`> | Is anything wrong with Apple <ins>banana </ins><em><ins>pan </ins>pie</em>? |
| 21:43 | <Philip`> | You lose the information that both insertions were simultaneous, but I'm not sure what you'd want that information for |
| 21:44 | <Dashiva> | There's also Apple <ins>banana <em>pan </em></ins><em>pie</em> |
| 21:46 | <Philip`> | That's bad because you can't recover the new piece of markup (Apple banana <em>etc) from the annotated-with-ins markup |
| 21:47 | <Philip`> | You should be able to strip the <del> tags and delete the <ins> content to recover the first diffed document, and vice versa to recover the second |
| 21:48 | <Philip`> | (or at least I'm asserting that you ought to be able to, because that seems like a useful property) |
| 21:48 | <Lachy> | if you need to know the inserts were simultaneous for some reason, use <ins datetime="..."> |
| 21:49 | <Philip`> | Hixie: Has anyone already told you that http://www.whatwg.org/specs/web-apps/current-work/#attributes says "The cite DOM attribute must reflect the element's >cite content attribute." with a stray ">"? |
| 21:50 | <Philip`> | Lachy: That doesn't really tell you they're simultaneous, since it can only have a precision of one second, and it's quite plausible that a heavily-edited document (e.g. the concatenation of all pages on Wikipedia) can have multiple edits per second |
| 21:50 | <Hixie> | oh crap |
| 21:50 | <Hixie> | did i break that recently |
| 21:50 | <Hixie> | sigh |
| 21:52 | <Lachy> | Hey Hixie, if you didn't read the earlier discussion in here about the entity table, just ignore my email about it. It was due to my failure to read the spec properly |
| 21:52 | <Hixie> | already ignored :-D |
| 21:52 | <Lachy> | :-) |
| 21:54 | <gsnedders> | silly Lachy. Can't even read a specification how it says to be read :P |
| 21:57 | <Philip`> | To be fair, if you didn't know how to read the specification then you wouldn't be able to read the part of the specification that says how to read it, so you can be excused |
| 21:57 | <gsnedders> | Hixie: Can you fix that issue? |
| 21:57 | <gsnedders> | (Within the spec, obviously) |
| 21:58 | <Lachy> | gsnedders, if people actually read the spec and knew what they were talking about all the time, joining in on bikeshed discussions wouldn't be nearly as fun! |
| 21:58 | <Dashiva> | gsnedders: We'll fix it the same way we fix content-type detection, maybe? |
| 21:58 | <gsnedders> | Lachy: My. bikeshed. is. green. and. counts. in. micro-seconds. |
| 22:00 | <Lachy> | LOL |
| 22:00 | jwalden | grumbles about midairs |
| 22:01 | <gsnedders> | (see, I know what the thread that made bikeshedding famous was about :P) |
| 22:02 | <Dashiva> | gsnedders: Mine doesn't count, it integrates |
| 22:08 | <Lachy> | so regarding that datetime discussion, since they've still failed to describe valid use cases for BCE or Y10K+ dates in markup, it seems the only possibly valid argument for it is to allow DOMDateTime objects and datetime attributes able to express the same range of values |
| 22:18 | <Dashiva> | Lachy: I'm wondering how they plan to get accurate dates, much less times, for anything that old |
| 22:20 | <Hixie> | anything before the gregorian calendar starts is a non-starter anyway |
| 22:21 | <Lachy> | Dashiva, all of history is recorded in google calendar. :-) |
| 22:23 | <Lachy> | the universe was created in 1970. Anything before then is an epoch fail. |
| 22:29 | <Philip`> | In Y10K we'll all live in space and time won't have a fixed meaning any more, so we'll have already solved all the time problems |
| 22:41 | <Dashiva> | Imagine all the awesome compatability layers we'll get for supporting earth-based dates and times |
| 22:46 | <Lachy> | Maybe we'll just have clocks that compensate for time dialation and maintain earth-time, no matter where we are or how fast we're going. |
| 22:51 | <Philip`> | If you get put in a spaceship in suspended animation, and it's sent at 0.9c to a star a couple of light years away, what time would you say it was when you arrived? |
| 22:54 | <Hixie> | Philip`: "12:00" |
| 22:54 | <Lachy> | Philip`, the question is flawed because you didn't give a start time |
| 22:54 | <Hixie> | (blinking) |
| 22:55 | <Philip`> | Lachy: It's flawed for far more reasons than that :-p |
| 22:56 | <Philip`> | but there are still lots of factors in it that all affect the perception of time, and people probably want to be able to perceive time kind of like how they do now |
| 22:56 | <Lachy> | it also depends if I was taken out of suspended animation when I arrived |
| 22:57 | <Philip`> | It's not very good if their clocks compensate for time dilation so that the space travellers put some food in the oven for 30 seconds and find that it explodes because their clock had automatically slowed down by a factor of ten |
| 22:59 | <Philip`> | Uh |
| 22:59 | <Philip`> | s/oven/microwave/ |
| 22:59 | <Lachy> | some clocks will be relative to the users time frame, others will be relative to earth's |
| 23:01 | <Lachy> | and it will be just aweful if someone set their video timer to record, but forgot to set it by the earth clock. |
| 23:01 | <Philip`> | If the user is suspendedly animated for a year, should their clock stop for that time? |
| 23:02 | <Philip`> | Lachy: That's not going to be a real problem - the broadcasters can just archive all their material, and provide anything on-demand whenever you want it |
| 23:02 | <Hixie> | dude i have to reset my clock after just a few hours of air travel |
| 23:03 | <Lachy> | The person will remain physically the same age, though time will continue to pass around them |
| 23:03 | <Lachy> | so it depends if their clock is in the suspended animation chamber with them |
| 23:04 | <Philip`> | (The only problem is DRM - if it's like the BBC iPlayer where you're only allowed to watch stuff from the past 7 days, that'll be a pain when "7 days" becomes highly relative) |
| 23:04 | <Hixie> | the only really "new" think will be that timezones will differ in relative rate of time as well as offsets |
| 23:04 | <Hixie> | no biggie |
| 23:07 | <Philip`> | I already have enough problems trying to synchronise cron jobs on two machines in different continents, even before worrying about DST, so I'd prefer a better solution for the future |
| 23:08 | <Hixie> | just use UTC |
| 23:08 | <Hixie> | timezones are purely a ui thing |
| 23:08 | <Hixie> | or should be purely a ui thing |
| 23:08 | <Philip`> | Can I make cron use UTC? |
| 23:09 | <Lachy> | Many satellites already compensate for relativistic effects. |
| 23:09 | <Lachy> | Philip`, why can't you juse sent the computer clocks to UTC? |
| 23:09 | <Lachy> | *just |
| 23:09 | <roc> | GPS compensates for relativistic effects |
| 23:10 | <Philip`> | (preferably only for some of the jobs - I want certain things to always happen after I've gone to bed, which is in sync with the local timezone) |
| 23:11 | <Hixie> | when i go to bed really isn't in sync with anything |
| 23:11 | <Hixie> | about the only hour i can guarentee i'm not up 90% of the time is 6:30am - 7:30am local time |
| 23:11 | <Hixie> | and even that is relatively new |
| 23:12 | <Hixie> | showModalDialog() |
| 23:12 | <gsnedders> | The only hour of day when I have never searched Google is 3–4am local time. |
| 23:12 | <Hixie> | any opinions? |
| 23:12 | <gsnedders> | That's a decent indication of when I'm awake. |
| 23:12 | <Hixie> | i'm awake 3am-4am most nights |
| 23:12 | <Philip`> | Lachy: The hardware clocks are set to UTC, but my cron seems to use the system-wide timezone settings (probably so it can schedule things for 3:10am and it won't interrupt any in the middle of their day) |
| 23:12 | gsnedders | notes his sleeping pills are obviously having less affect on him now, as he took one an hour ago |
| 23:12 | <Lachy> | Hixie, I haven't read the spec for showModalDialog(). |
| 23:12 | <Philip`> | s/any/anyone/ |
| 23:12 | <Lachy> | I'm sure I have lots of opinions on it though |
| 23:13 | <Hixie> | there's a spec for it? |
| 23:13 | <Lachy> | s/spec/documentation/ |
| 23:13 | <Hixie> | that's a kind word |
| 23:14 | <Hixie> | holy crap this is an annoying feature |
| 23:14 | <Hixie> | how has it not been abused for ads yet |
| 23:14 | <Hixie> | it blocks all the other tabs! |
| 23:14 | <Lachy> | fine then. s/documentation/breif summary of what it's supposed to do and how it's supposed to be used/ |
| 23:14 | <Philip`> | gsnedders: Hmm, my lowest is 7am (2 searches) and 6am (3 searches), and highest is 10pm (1610 searches) |
| 23:15 | <gsnedders> | Philip`: Over what time period? |
| 23:15 | <Philip`> | gsnedders: All time |
| 23:16 | <gsnedders> | Actually, I tell a lie. Over all time I've made three searches at 3am. |
| 23:16 | <gsnedders> | That is the lowest, though. |
| 23:16 | <Philip`> | Don't ask me what "all time" means |
| 23:16 | <gsnedders> | 6pm is highest at 2007. |
| 23:16 | <Hixie> | my lowest is 5am and 6am, 41 searches each |
| 23:16 | <gsnedders> | Over the quantifiable "last year", I've made no searches 4–6am, about 993 searches at 6pm (the most) |
| 23:16 | <Philip`> | (although if you did ask me, I'd estimate it's about 1.5 years, given the numbers) |
| 23:16 | <Hixie> | and highest is 4pm, 1895 searches |
| 23:17 | <gsnedders> | Saturday has the most searches, and Friday the least |
| 23:17 | <gsnedders> | Feb the most, Jun the least. |
| 23:17 | <gsnedders> | (which is odd seeming it wasn't June when I was away over the summer) |
| 23:18 | <Philip`> | It would be nice if Google Web History wasn't quite so buggy in Opera |
| 23:18 | <Lachy> | where are you all getting stats on how many searches you do? |
| 23:18 | <gsnedders> | Hixie: "live dom viewer" is the fourth most common search for me :) |
| 23:18 | <gsnedders> | Lachy: http://www.google.com/history/ |
| 23:19 | <Philip`> | Lachy: There's an SQL injection vulnerability in google.com so you can just query their whole database directly |
| 23:19 | <Hixie> | Lachy: http://www.google.com/history/trends?hl=en |
| 23:19 | gsnedders | prefers Philip`'s explanation, though |
| 23:20 | <Lachy> | I get no results because I'd never enabled that before now |
| 23:21 | gsnedders | doesn't use bookmarks. |
| 23:21 | gsnedders | uses Google. |
| 23:21 | <Philip`> | My bookmark folders are write-only |
| 23:22 | <gsnedders> | actually, I use Saf's bookmark bar |
| 23:22 | <gsnedders> | But that's it. |
| 23:22 | <Hixie> | my bookmarks are http://☺.damowmow.com/ |
| 23:22 | <gsnedders> | Eight items there, and that's it. |
| 23:22 | <Philip`> | I'm pretty sure I've bookmarked lots of useful things, but I never bother looking at them again |
| 23:22 | <Hixie> | because i use too many browsers to maintain a set offline |
| 23:22 | <Lachy> | I have a bookmarks folder filled with links to things like specs and other types of documentation and utilities. But mostly I just start typing the URI into the address bar and select from the list |
| 23:23 | <Lachy> | history search is awesome |
| 23:23 | <jwalden> | html5 is third on my list since depending on browser history it's the easiest way to get the spec :-) |
| 23:23 | <jwalden> | rfc 2616 is fifth |
| 23:23 | <gsnedders> | Lachy: agreed. That and Google is all I need :P |
| 23:23 | <gsnedders> | Hixie: Hey! My blog isn't on your blogroll! :P |
| 23:24 | <jwalden> | a search URL on Google that redirects probably infinitely which I haven't gotten around to reporting to Google is the top result, because I've not removed it from the saved set of tabs every time I open Firefox |
| 23:24 | <Philip`> | (Is it intentional that blogroll sounds like bogroll?) |
| 23:25 | <Philip`> | (I don't know if that's just a British term or something) |
| 23:25 | <Hixie> | jwalden: uri? |
| 23:25 | <jwalden> | sec |
| 23:25 | <Lachy> | for rfcs, I have have a special keyword set up so I just type "rfc ####" and it takes me to it |
| 23:25 | jwalden | has to ssh into a machine with the sessionstore.js file |
| 23:25 | gsnedders | just uses spotlight and has all the RFCs stored locally |
| 23:27 | <Lachy> | hixie, do you have a key for ☺ on your keyboard? |
| 23:27 | <Hixie> | Lachy: no |
| 23:28 | <Lachy> | ok. cause that's basically the only URI in my history that I can't get by typing the first few letters |
| 23:28 | <Hixie> | it's my home page |
| 23:28 | <Hixie> | you can also get to it by going to damowmow.com/portal and clicking the link at the top |
| 23:28 | <Lachy> | I normally just type http://damowmow.com/portal/ instead |
| 23:29 | <jwalden> | Hixie: so a mispaste suggests that the original URL I was hitting is part of a class of such URLs; <http://www.google.com/url?sa=t> seems to be a minimal testcase for me |
| 23:29 | <jwalden> | Hixie: original URL was <http://www.google.com/url?sa=t&ct=res&cd=1&url=http%3A%2F%2Fwiki.mozilla.org%2FJavaScript%3ASpiderMonkey%3ACoding_Style&ei=jf9kR6C_EZKcerz80Us&usg=AFQjCNHvvFthlkDqpEGRurEs1FdnfpHWrw&sig2=vZBmzjP3UMGLgIr75kh4vQ> |
| 23:29 | <Philip`> | Lachy: Opera 9.5 makes "xn" autocomplete to the smiley-face page |
| 23:30 | <Philip`> | (after having only ever entered the ☺ form into the address bar) |
| 23:30 | <Lachy> | maybe I should try using Opera one day |
| 23:30 | <Philip`> | so you shouldn't need a smiley key in order to get it from your history |
| 23:31 | <Lachy> | Firefox does that too |
| 23:31 | <Lachy> | but it doesn't show the smiley |
| 23:32 | <Philip`> | Hmm, Opera autocompletes from xn but not from ☺ |
| 23:32 | <Hixie> | jwalden: oh yeah, /url changed behaviour recently, and probably broke any bookmarks to it |
| 23:32 | <jwalden> | no smiley for com TLD, they don't do enough to prevent lookalike domain names |
| 23:32 | <Philip`> | Konqueror 4 autocompletes from both |
| 23:32 | <Hixie> | jwalden: that won't get fixed i don't think |
| 23:32 | <jwalden> | okay |
| 23:32 | <Hixie> | though i don't see why it's doing an infinite loop |
| 23:32 | <jwalden> | I got that from a search results page, let's see if I can still find it, tho |
| 23:33 | <Hixie> | i'll file a bug anyway |
| 23:33 | <Hixie> | when i get to work |
| 23:33 | <Hixie> | speaking of which |
| 23:33 | <Hixie> | i should go |
| 23:33 | <Hixie> | bbl |
| 23:34 | <Lachy> | jwalden, the smiley doesn't stay in the address bar for http://☺.lachy.id.au/ either |
| 23:34 | <jwalden> | Hixie: so visiting <http://www.google.com/search?q=non+sequitur+else+return&hl=en&safe=off&client=firefox-a&rls=org.mozilla:en-US:official&pwst=1&start=60&sa=N>, I have "JavaScript:SpiderMonkey:Coding Style - MozillaWiki" several down the results list |
| 23:34 | <jwalden> | Hixie: and the link location for that is <http://www.google.com/url?sa=t&ct=res&cd=66&url=http%3A%2F%2Fwiki.mozilla.org%2FJavaScript%3ASpiderMonkey%3ACoding_Style&ei=ll0SSMOFNJPWerXhpJkC&usg=AFQjCNHvvFthlkDqpEGRurEs1FdnfpHWrw&sig2=07FhJu9UeXFs5cSCXO29Yw>, which redirects infinitely |
| 23:35 | <jwalden> | so something's still generating the old format, I guess |
| 23:36 | <gavin_> | Lachy: .au isn't on the whitelist either |
| 23:36 | <Lachy> | why? |
| 23:36 | <jwalden> | yeah, what he said |
| 23:36 | <jwalden> | dunno why |
| 23:36 | <Lachy> | the auDA has very strict rules about registering domains. I'm sure they wouldn't let lookalikes through too easily |
| 23:37 | <gavin_> | because no one has added it :) |
| 23:37 | <gavin_> | you can file a bug and point to the policy |
| 23:37 | <gavin_> | see e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=423974 |
| 23:38 | <jwalden> | http://www.mozilla.org/projects/security/tld-idn-policy-list.html |
| 23:38 | <Philip`> | Can't certain characters be whitelisted? ☺ isn't likely to be a look-alike for any serious domain |
| 23:38 | <Lachy> | Philip`, some users might confuse it with http://:-).lachy.id.au |
| 23:41 | <Lachy> | gavin_, jwalden, auda has lots of policies. I'm not sure what exactly to look for http://www.auda.org.au/policies/current-policies/ |
| 23:42 | <jwalden> | I tend not to worry about the whitelisting; that's a UI thing |
| 23:42 | Philip` | wonders if you can use the smiley face plus combining characters to make a series of smiley faces with funny hats |
| 23:42 | <jwalden> | except when it comes to things like <https://bugzilla.mozilla.org/show_bug.cgi?id=414090> :-( |
| 23:54 | <Lachy> | the nearest I can find is a prohibition on misspellings of names. http://www.auda.org.au/policies/auda-2006-05/ |
| 23:54 | <Lachy> | it doesn't explicitly mention IDNs, but it's general enough that it would cover any characters used |