2009-10-01 [17:00:00.0000] probably worth pointing out [17:23:00.0000] /me wonders what the proportion of facts vs namespace religion will be [17:25:00.0000] /me won't point out obvious mistakes like the failure to use a URI as the namespace attribute value [17:33:00.0000] /me likes how he finally has enough RAM to run three web browsers at once, plus a virtual machine with Windows and another five web browsers, without anything slowing down noticeably [17:40:00.0000] /me thinks the proposal is one of the more hilarious things he's seen on the public-html list in quite some time. [17:40:01.0000] s/distributed extensibility/proprietary extensibility/ [17:40:02.0000] for more humor value (and perhaps even "truer" statements) [17:41:00.0000] /me is resisting the temptation to write a massive "bitch-slap" (technical term) email to public-html in response to the proposal. (Microsoft people ought to know better) [17:46:00.0000] tantek: Please do resist, it doesn't sound like it would contribute to productive discussion :-p [17:53:00.0000] /me reads a bit further [17:54:00.0000] The scripting and CSS examples seem crazy - why would you want to process/style elements based solely on their namespace? [17:54:01.0000] /me resists by attempting to focus on higher priority things. [17:55:00.0000] Philip` - in this case another way of saying 'crazy' is 'completely made up and unrelated to any real world practice', what we in #microformats call "purely theoretical" and handily dismiss as not worth discussing. [17:56:00.0000] "The proposal is made in a modular way so that any components causing unacceptable compatibility concerns could be abandoned." - indeed, we can just abandon the entire thing and tell people never to touch elements or attributes containing the character ':' because it's a compatibility nightmare [18:06:00.0000] Philip`: it would be useful to do have test data on attributes too [18:10:00.0000] how do you get at HTTP headers in PHP? [18:10:01.0000] (sorry for asking all my dumb PHP questions here) [18:17:00.0000] othermaciej: Like that? [on list] [18:18:00.0000] Philip`: namespaces don't have that tagUrn property in IE? [18:18:01.0000] er, attributes rather [18:18:02.0000] Philip`: does the Microsoft proposal specify how xmlns:foo attributes should look in the DOM? [18:19:00.0000] Philip`: that might be another good thing to test [18:19:01.0000] othermaciej: $_SERVER['HTTP_UPPERCASED_HEADER_NAME'] perhaps? [18:19:02.0000] Philip`: thank you sir [18:19:03.0000] othermaciej: IE doesn't do any namespace processing of attributes at all, so tagUrn is always just undefined [18:19:04.0000] I neglected to uppercase [18:20:00.0000] (so I excluded it from the email) [18:20:01.0000] Philip`: might be good to state that, since it's sort of the substitute namespaceURI for elements [18:20:02.0000] I don't think they say anything about xmlns:foo, but all text/html treat it identically to any other attribute with or without a colon [18:20:03.0000] s/treat/browsers treat/ [18:22:00.0000] /me won't bother sending another email to state anything now, since it seems better to go to bed [18:23:00.0000] (Also, most of this stuff has been discussed years ago anyway) [18:23:01.0000] (xmlns-dom.html was 1.5 years old) [18:25:00.0000] (Also the details don't seem too important when their claim of IE compatibility appears to be fundamentally bogus) [18:25:01.0000] /me goes to bed, and will try to predict how many "+1" responses the proposal gets by tomorrow [00:20:00.0000] tantek: please do write your concerns about what is wrong with the "decentralized extensibility" proposal to the list [02:04:00.0000] hsivonen - in short, the justifications provided for "decentralized extensibility" in Microsoft's proposal are either theoretical, solved by other mechanisms in HTML5, or are a poor rationalization for what amounts to proprietary extensions, which are known to be bad, and thus should be discouraged as far as standard formats are concerned. [02:04:01.0000] i encourage you to post that to the list, i think most people on the list are desensitised to me and henri saying this by now [02:05:00.0000] Hixie: You need a sock puppet [02:06:00.0000] perhaps in the (PDT) morning, time for me to sleep on it. [02:43:00.0000] are iframes supposed to delay the onload event of the parent? [02:43:01.0000] yes [02:43:02.0000] ok [02:44:00.0000] "When there is an active parser in the iframe, and when anything in the iframe is delaying the load event of the iframe's browsing context's active document, the iframe must delay the load event of its document." [02:44:01.0000] so, on on both www.aol.com and www.cnn.com I see more things trying to unblock onload than blocking onload [02:44:02.0000] and on www.aol.com I see attempts to unblock onload periodically [02:45:00.0000] how do you unblock onload? [02:45:01.0000] zcorpan_: I mean internal onload unblocking code [02:45:02.0000] ah [02:46:00.0000] /me goes set a breakpoint to catch the periodic thing [02:47:00.0000] hsivonen: i did some research on [02:52:04.0000] that's pattern is so, so, sad [02:53:00.0000] /me wonders if reparsing is really so bad, given that everybody does it [02:54:00.0000] what are people thinking when they finish their script not with //--> but with //-->" so don't know when to use which [02:55:00.0000] and it doesn't matter because it all works in browsers today [02:56:00.0000] zcorpan_, Philip`: thanks for analyzing the proposals [02:57:00.0000] maybe we also need to look at pages that do have and expect both foo() and bar() to run [08:51:01.0000] which they would with proposal #3 but don't in current browsers [08:51:02.0000] i haven't looked for such pages [08:53:00.0000] (or there might be pages with that pattern but expect none of them to run) [08:56:00.0000] sorry, 600-1300 out of 425000 [08:56:01.0000] since i don't know what the overlap is between the two sets of data [09:02:00.0000] hmm, if i look at http://www.marchander.com/catalog-9500-gallery.html it has commented out the script element, so it is not relevant [09:03:00.0000] so the breakage could be less than 600 [09:03:01.0000] the win being no reparsing? [09:04:00.0000] yes [09:04:01.0000] no reparsing means better performance, too [09:04:02.0000] since we don't need to wait for the whole page to load before deciding where to close the script element [09:05:00.0000] reparsing also means potentially reparsing several times [09:06:00.0000] etc [09:43:00.0000] more anecdotal namespace fun: http://www.w3.org/mid/op.u1b23ela64w2qv@annevk-t60 [09:45:00.0000] div[xml|lang|="ar"] [09:45:01.0000] I like how the excellent unambiguous syntax makes it really easy to read [10:01:00.0000] div:lang(ar) [10:02:00.0000] they're not the same [10:02:01.0000] people should not use a Selector such as [xml|lang] in general [10:24:00.0000] Hixie: yt? [10:26:00.0000] gsnedders: He went to bed not very many hours ago [10:27:00.0000] What timezone is Hixie in? [10:27:01.0000] TabAtkins: America/San_Franicso [10:27:02.0000] jgraham: He's normally getting up around now, how am I to know? :P [10:28:00.0000] k. He acts like he lives in -12 or something. [11:02:00.0000] Does IE throw when it comes across an undefined variable in JS? [11:39:00.0000] gsnedders: iirc then yes, for some definition of undefined [11:39:01.0000] /me wonders what rev of html5lib he has installed at home, as he's getting diff. output from anolis :\ [11:41:00.0000] /me notes anolis does not work with html5lib tip [11:46:00.0000] /me wonders if this is the namespace issue or something else [11:50:00.0000] Dunno/ [12:21:00.0000] Hmm, jgraham: you got any idea where I could get a couple of GB -> Euro power adapters here? [12:26:00.0000] A drug store? [12:29:00.0000] gsnedders: Clas Ohlson probably [12:29:01.0000] Dashiva: Ah, that sounds likely. [12:34:00.0000] /me shudders at the thought of trying to find things in Clas Ohlson [12:39:00.0000] That's what the catalogue and/or employees are for [12:40:00.0000] /me is having fun abusing a "functional programming is too inefficient!" weenie who thinks that functional programming is just what you get when you use recursion. [12:42:00.0000] /educating [12:43:00.0000] That seems backwards [12:43:01.0000] Recursion is what you get when you use functional programming [12:43:02.0000] Aw, Philip`, now I have to educate you too. [12:43:03.0000] "I have only learned now that there is a "text/palin" option that I have never heard of" [12:43:04.0000] Recursion is a low-level operation that you should use as little as possible. [12:44:00.0000] Functional programming can probably be best defined as using maps and folds a lot. [12:44:01.0000] At least as a decent heuristic. [12:44:02.0000] Functional programming can be described as the designer forgetting to include variables [12:45:00.0000] Iteration is perfectly fine in a functional language. It's just usually unnecessary, just as recursion is usually unnecessary. [12:45:01.0000] TabAtkins: Maps and folds are just abstractions of recursion [12:45:02.0000] Because you're almost always using much more powerful primitives. [12:46:00.0000] Philip`, um? Maps and folds *can* be thought of as recursive. They can also be thought of as iterative. The distinction is really unnecessary here. [12:47:00.0000] Because both iteration and recursion are low-level operations that are basically equivalent. You just choose one or the other based on how easy they make a particular problem. [12:47:01.0000] TabAtkins: The defining feature of functional languages is there's a simple core that just does (recursive) function calls and not much else, and everything else is built on top of that [12:48:00.0000] Perhaps of functional *languages*, yes. Not functional *programming*. [12:48:01.0000] and the underlying recursiveness is critical for issues like performance of folds [12:48:02.0000] All functional programming needs is the ability to define functions as first-class objects. [12:49:00.0000] ?_? You can get equal performance out of an iterative fold as you can with a recursive one. [12:49:01.0000] (and pure functional languages can't do iteration at all, because it doesn't make sense when there's no mutable state) [12:50:00.0000] TabAtkins: I'm talking about functional programming in terms of programming in functional programming languages, not in terms of writing stuff with functions in other languages ;-) [12:50:01.0000] I'm talking about functional programming in terms of writing Lisp code that passes functions around properly. I rarely iterate *or* recurse in my programs, because neither are necessary. [12:51:00.0000] And whether mapcar is implemented as a recursive function or an iterative is irrelevant to me, as long as it's performant. [12:52:00.0000] (The most natural implementation is a pretty trivial iterative one, actually, that builds a list by holding onto the tail as it constructs it.) [12:52:01.0000] TabAtkins: The performance issue is relevant because some folds might take O(n) stack space, due to their recursive nature [12:53:00.0000] That's what kept nagging me about prolog [12:54:00.0000] Sure, it works now. It works most of the time. But I can never be sure what crazy antics it will pull on me. [12:54:01.0000] Indeed, performance is important. But how it works underneath isn't. If your fold primitive is inefficient because it's implemented recursively, then you need a better compiler that can instead unfold it into an iteration. [12:57:00.0000] Dashiva: I expect that's partly why C (and C++ to a lesser extent) is nice for high-performance code, because you can know pretty much exactly what any line of code is going to do, and you can read it and profile it and optimise it and it makes sense [12:57:01.0000] whereas other languages might do all kinds of crazy black-box runtime stuff [12:58:00.0000] That's what profilers are for, and hooks that allow you to drop down the abstraction ladder when necessary. [12:59:00.0000] and even if other languages are theoretically more efficient (e.g. JITs can use dynamic profiling data), in practice it seems much harder to write efficient (because e.g. the JIT will magically stop working if you have too much bytecode and there's no good way to debug it and work out the problem) [13:00:00.0000] TabAtkins: Dropping down the abstraction ladder can be really hard [13:00:01.0000] So make sure you have a compiler that makes it unnecessary most of the time. ^_^ [13:01:00.0000] and working out what high-level modifications will result in desired low-level changes, several levels of abstraction away, can also be really hard [13:01:01.0000] TabAtkins: The ability for a compiler to make it unnecessary seems largely determined by the language [13:02:00.0000] Philip`, explain? [13:02:01.0000] hence C being good because it encourages compilers to have very little abstraction from the hardware [13:02:02.0000] and Prolog being less good because it takes a lot of effort to work out what the hardware's doing, regardless of how clever your tools are [13:04:00.0000] Okay, I see that. [13:04:01.0000] But many languages (especially multiparadigm functional languages) do make it relatively easy to do so. [13:06:00.0000] (I'm not convinced that logic programming is at all a good general paradigm, though, so my opinion of Prolog is fairly low to start with.) [13:07:00.0000] /me wonders what multiparadigm functional languages are [13:07:01.0000] Lisp, for one. [13:07:02.0000] /me is a Lisper, and so uses a lot of examples from it. [13:07:03.0000] (If it's not just syntactic sugar for lambda calculus then it doesn't sound like a functional programming language to me :-p ) [13:08:00.0000] It *can* be. Or you can do OO programming with CLOS. Or iteration with whatever the hell you want. Or aspect-oriented. Or logic programming. Whatever. [13:09:00.0000] Lisp doesn't go out of its way to be pure, shutting down useful avenues for making a program easier to write (this is basically why I haven't switched to Haskell yet). [13:55:00.0000] /me wonders if anyone else thought of Michael Palin rather than Sarah Palin [14:12:00.0000] jgraham: http://www.michaelpalinforpresident.com/ did [14:43:00.0000] TabAtkins: http://cgi.cse.unsw.edu.au/~dons/blog/2008/05/16 is rather suggestive of (at least one) functional language being non-trivial to optimize [14:43:01.0000] (although the author is trying to make quite the opposite point) [14:44:00.0000] However I guess C and similar is rather hard to optimize when you move from simple single thread/core to highly concurent problems [14:44:01.0000] (although obviously it can be done; see MPI and similar) [14:47:00.0000] /me saw a talk on automatic concurrency optimisation of Haskell programs [14:47:01.0000] and it didn't seem particularly awesome [14:48:00.0000] With an infinite number of cores and zero added overhead it was at most something like 50% faster on real programs [14:48:01.0000] which didn't really seem worth the effort [14:48:02.0000] (I've probably got the numbers entirely wrong) [15:03:00.0000] Philip`: That might be amdahl's fault, though [15:05:00.0000] Dashiva: Indeed, and the result is that programmers still need to understand concurrency and data dependencies in order to optimise their code, and the language can't do it for you [15:09:00.0000] sicking, http://dev.w3.org/2006/webapi/WebIDL/dom/ [15:09:01.0000] that is dom core etc. with nullable annotations added (and some getters and things) [15:12:00.0000] what codec do I put in a for MP3? I have a for OGG vorbis that is audio/ogg;codecs=vorbis but I don't know what audio/mpeg;codecs= should be [15:14:00.0000] sephr: I'm thinking the answer is, it shouldn't: http://www.faqs.org/rfcs/rfc3003.html [15:16:00.0000] webben: thanks, I thought there were differing codecs for audio/mpeg [15:16:01.0000] (like the mp3 hd codec?) [15:17:00.0000] i dunno... there may be ... but there doesn't appear to be a codecs parameter in the media type registration [15:20:00.0000] heycam: should [Callback=FunctionOnly] allow objects that implement Call (like a NodeList) in addition to function objects? [15:20:01.0000] weinig, currently yes that's what webidl requires [15:21:00.0000] it just tries to do the [[Call]] at the appropriate time, iirc [15:25:00.0000] webben, oh sorry i'm wrong [15:25:01.0000] it explicitly mentions Function objects [15:25:02.0000] er, weinig ^ [15:25:03.0000] /me nods [15:25:04.0000] opinions welcome on what makes sense [15:26:00.0000] I think we allow passing objects that implement Call in most cases [15:26:01.0000] heycam: Is this somthing that the ES people are likely to want changed? [15:27:00.0000] Since iirc ES5 says that only functions implement [[Call]] [15:27:01.0000] jgraham, that's a good point, i'll bring it up [15:28:00.0000] jgraham: really? Wouldn't the host object exception get around that? [15:28:01.0000] weinig: The ES people don't like the host object exception [15:28:02.0000] weinig, sounds like the host object exception is something the ES folks don't want to be invoked [15:28:03.0000] right [15:28:04.0000] I see [15:29:00.0000] (They would like WebIDL APIs to be impementable in ECMAScript) [15:29:01.0000] *implementable [15:31:00.0000] jgraham: ok, what is the use case for that [15:32:00.0000] weinig: I'm not really sure. There was a lot of discussion and I didn't take all of it in [15:32:01.0000] /me nods [15:32:02.0000] One suggestion was implementing secure mock-DOM objects in ECMAScript, but I think that was shown to be impractical [15:33:00.0000] Do you recall where that was shown? [15:33:01.0000] weinig: It was in a post from othermaciej_ [15:34:00.0000] on public-html? [15:34:01.0000] On the es-discuss / webapps/ public-html lists [15:34:02.0000] too ... many ... lists ;) [15:34:03.0000] /me saw that cross-posting awesomeness [15:35:00.0000] /me will ask maciej on the way to coffee [15:35:01.0000] webben: Basically he pointed out that you would end up needing to reimplement a substantial fraction of the browser [15:36:00.0000] http://lists.w3.org/Archives/Public/public-html/2009Sep/1060.html [15:36:01.0000] ta [15:36:02.0000] it's worth noting that people are in practice trying to build DOM cages like that [15:36:03.0000] e.g. Caja [15:54:00.0000] jgraham: That link doesn't show a failure mode of Haskell as a functional language, but rather a failure mode from it being a *lazy* language. [15:55:00.0000] TabAtkins: Fair enough [15:55:01.0000] /me -> sleep [15:55:02.0000] jgraham is also a lazy language. [15:55:03.0000] Always sleeping... [16:11:00.0000] Also, jgraham: http://donsbot.wordpress.com/2008/06/ [16:11:01.0000] Same author, a month later, explaining how the issue *can* be optimized away by the compiler, but GHC's current compiler is biased in a particular way that makes it difficult. [16:12:00.0000] He then pulls out a library that augments the compiler (easy to do in GHC) that fixes the bias and optimizes it properly, while using very high-level concepts the whole time. [16:33:00.0000] TabAtkins: Libraries that augment GHC compiler optimisations are very high-level concepts? [16:33:01.0000] Philip`, huh? No, the library makes the compiler smarter. [16:33:02.0000] Anything to do with compilers is by necessity probably not high-level. [16:34:00.0000] The point, though, is that then he can continue using proper high-level primitives in his code, secure in the knowledge that the compiler is smart enough to optimize it properly. [16:38:00.0000] TabAtkins: He wasn't secure before, and he isn't secure now. It's just a matter of time before he hits the next compiler weirdness. [16:38:01.0000] TabAtkins: He can only be secure in that knowledge because he's looked at compiler details and disassembly output to work out that the compiler will be smart enough in this particular case [16:41:00.0000] Dashiva, Philip`, well duh. There will always be places where the compiler fails. What was shown is that you *can* achieve that super-tight assembly in pure Haskell, which means the rest of your code (which is *not* performance-critical) can also be in Haskell. The person writing pure C has to do the entire thing in C, which is a punishment all by itself. [16:42:00.0000] And those compiler-failures are pretty much only relevant on tight inner loops, which you can find via profiling and spend the effort necessary to rewrite into a more efficient form. [16:43:00.0000] As opposed to writing in a low-level language, where you have to deal with that sort of thing *all the time*, because you simply don't *have* higher-level primitives to work with. [16:44:00.0000] At least the person writing C did the whole inner loop in a single line of pretty straightforward code, and got performance equivalent to a whole series of blog posts on writing the same thing in Haskell :-p [16:44:01.0000] And it's amazing how something as simple as summing a list becomes a degenerate case :) [16:45:00.0000] Dashiva: Summing a list of 1e9 doubles is a degenerate case in *any* language. [16:46:00.0000] Philip`, the trivial transformation for Haskell (done in the first post linked by jgraham) is basically equivalent to the C code. [16:47:00.0000] Except that it still gets to use the wonderful abstraction of a list of 1e9 doubles elsewhere, while C can *never* do so - it has to manually implement laziness at the point of necessity. [16:48:00.0000] /me remembers reading a vaguely interesting thing about a game that was developed in a custom dialect of Lisp, including a whole sub-language for writing PS2 assembly code for performance-critical bits [16:49:00.0000] That'd be one of the Crash Bandicoot games. [16:49:01.0000] One of the things it did was optimize the placement of resources on the disk, allowing for data-streaming at a level that would have been impossible by hand. [16:49:02.0000] It was in GamaSutra originally. [16:51:00.0000] http://c2.com/cgi/wiki?LispInJakAndDaxter [16:51:01.0000] (But then they got bought by EA and had to standardise on C++) [16:52:00.0000] Sony owns Naughty Dog [16:52:01.0000] Oh, okay, I guessed wrong :-) [16:53:00.0000] /me notes that he can count the number of times he's wished for a list of 1e9 doubles on the fingers of one elbow [16:55:00.0000] Philip`, so you won't have to worry about the compiler failing when you use a naive strategy in Haskell, will you? [16:56:00.0000] And yeah, part of the problem with ND was they overevolved their dialect, so that when enough engineers left they no longer had the knowledge necessary to maintain it. 2009-10-06 [17:04:00.0000] should i add document.head? [17:05:00.0000] i think it makes sense on the long run; would it be bad to add it now? [17:05:01.0000] I think it's probably fine. I doubt many people add .head to document, unless they're specifically emulating what we're trying to do. [17:06:00.0000] (Though my opinion doesn't count for much, since I'm not an implementor.) [17:13:00.0000] jgraham: pimpmyspec.net is hanging doing w3c annotations [17:14:00.0000] oh nevermind, it unblocked [19:24:00.0000] TabAtkins: "And those compiler-failures are pretty much only relevant on tight inner loops, which you can find via profiling and spend the effort necessary to rewrite into a more efficient form." --- that is very much not true [21:17:00.0000] You can always tell when Hixie gets bored [21:23:00.0000] ;) [21:54:00.0000] bored? [22:38:00.0000] Hixie: Yeah, when you're bored my inbox fills up. ;) [22:38:01.0000] that's not when i get bored [22:38:02.0000] that's when i do my job [22:39:00.0000] quite the opposite of when i get bored in fact [22:40:00.0000] same difference :P [22:44:00.0000] for you maybe :-P [23:10:00.0000]
[00:22:00.0000] does anyone know if it’s possible to change a W3 bugtracker registered user email? can’t seem to see this option… [00:24:00.0000] boblet: i think so, but i don't recall how [00:24:01.0000] i know i've changed my e-mail address in the past [00:25:00.0000] Hixie: thanks. will keep looking. you’d think “email preferences”, but nooo… [00:30:00.0000] /me gives up [00:53:00.0000] hey guys! is the webgl draft spec available somewhere? i cannot find it [00:55:00.0000] cedricv: I couldn't find I last I checked. [00:57:00.0000] hmm weird [00:58:00.0000] cedricv: the Khronos mailing lists are secret, too [01:00:00.0000] hmm i guess that's why some people say that the only docs available for now are the idl files in webkit / mozilla sources... [01:30:00.0000] cedricv: we're told that efforts are being made to add more public transparency to the WebGL group but so far nothing tangible seems to have happened [01:30:01.0000] annevk2: yt? [01:31:00.0000] MikeSmith: "more"? [01:31:01.0000] cedricv: it would at least help to have some kind of statement from the group about when they estimate the spec will be made available for public review, and what the public-review process is [01:31:02.0000] Hixie: I'm trying to be generous [01:31:03.0000] hah [01:32:00.0000] I have faith that they're eventually going to get around to doing the right thing [01:33:00.0000] before or after they're done? [01:33:01.0000] hmm yeah that would be nice indeed... [01:34:00.0000] /me tries to work out how to register HTTP headers [01:34:01.0000] Hixie: what header are you registering? [01:37:00.0000] Last-Event-ID, Ping-From, Ping-To, WebSocket-Origin, WebSocket-Protocol, WebSocket-Location [01:40:00.0000] Hixie: is Last-Event-ID a new thing that Opera's impl didn't have? [01:55:00.0000] Anyone know if there's any reason why calling DOMImplementation.createDocument with a doctype created by a different implementation doesn't throw in any browser? [01:55:01.0000] gsnedders|work: not even in IE6 if you create the doctype using the XHR ActiveX thingy? [01:56:00.0000] gsnedders|work: and offer it to the broweser DOM [01:56:01.0000] hsivonen: I don't actually have IE6 here [01:56:02.0000] gsnedders|work: how do you obtain different DOMImplementations? [01:56:03.0000] hsivonen: Different documents have different DOMImplementations [01:56:04.0000] really? [01:57:00.0000] for security reasons? [01:57:01.0000] they wrap the same implementation, though, right? [01:57:02.0000] Hmnm, maybe that's just Web DOM Core that says that [02:00:00.0000] According to zcorpan's copy of Web DOM Core, createDocument with, as the third argument, function(){ var bar = document.implementation.createDocument(null, null, null); return bar.implementation.createDocumentType("bar", "", ""); }() should throw [02:00:01.0000] I guess I should just ask zcorpan. [02:00:02.0000] Isn't the purpose of DOMImplementation that you can use Xerces and Crimson DOMs in the same app [02:00:03.0000] but you can't mix their objects without explicit import [02:00:04.0000] Yeah, I think [02:04:00.0000] "WRONG_DOCUMENT_ERR: Raised if doctype has already been used with a different document or was created from a different implementation." — DOM 3 Core [02:04:01.0000] It doesn't what it means by a "different implementation" though [02:05:00.0000] How I've always read it is the same as you, and I can't see any way to test a web browser does that. [02:06:00.0000] http://www.w3.org/TR/DOM-Level-3-Core/core.html#Embedded-DOM [02:06:01.0000] hmm, does that mean HTMLDocument should give a different implementation to SVGDocument, for example? [02:08:00.0000] hsivonen: You wouildn't happen to know why Gecko, against spec, throws NAMESPACE_ERR for createElementNS when namespaceURI is not empty and qname is? [02:09:00.0000] gsnedders|work: no idea. sorry [02:12:00.0000] hsivonen: probably [02:26:00.0000] where can I find a Web page that tris to install Chrome Frame but that doesn't require a Wave invite? [02:32:00.0000] how do I see which process is causing excessive network traffic on Mac? [02:34:00.0000] hsivonen: http://code.google.com/chrome/chromeframe/developers_guide.html#Detecting_Google_Chrome_Frame [02:34:01.0000] Sounds like that's how to do the prompting [02:35:00.0000] hsivonen: lsof -n I think [02:36:00.0000] Rik`: it seems to show all local pipes, too [02:36:01.0000] should I sort them by offset and assume that the process with a huge offset is the problem? [02:37:00.0000] Philip`: Thanks. I was being lazy so I didn't have to put that on my own site for testing. [02:38:00.0000] looking man lsof, it might be lsof -i [02:39:00.0000] hsivonen: Would http://software.hixie.ch/utilities/js/live-dom-viewer/saved/260 satisfy your laziness? :-) [02:39:01.0000] Oh, that doesn't work so well due to XSS [02:48:00.0000] Hixie, am now [02:48:01.0000] dude [02:48:02.0000] i'm reading 3864 [02:48:03.0000] but tl;dr [02:49:00.0000] wait, what? [02:49:01.0000] ah, registering headers [02:50:00.0000] there's really no reason the instructions for registering http headers should be longer than 40 or so lines of text [02:50:01.0000] but the table of contents is about 40 lines! [02:50:02.0000] heh [02:50:03.0000] I skipped to the template myself [02:51:00.0000] seems wise [02:51:01.0000] that's what i'm looking at now [02:53:00.0000] hsivonen, Last-ID is new [02:56:00.0000] annevk2: ok [03:07:00.0000] http://www.w3.org/2001/tag/2009/10/01-minutes.html is interesting [03:07:01.0000] removal of document.write() is considered an item up for debate [03:09:00.0000] hsivonen: well, it wouldn't be impossible to remove it from the spec, just foolish [03:10:00.0000] it would be impossible to remove it from implementations - unclear if that was requested [03:13:00.0000] we should have a hall of fame for really bad Web platform (mis)features that we are now stuck with forever [03:13:01.0000] man that would just be depressing [03:13:02.0000] heh [03:14:00.0000] isn't that called "HTML5"? [03:14:01.0000] lol [03:14:02.0000] Hixie: color-coding, man, I'm telling you [03:15:00.0000] misfeatures in pink [03:15:01.0000] why would we want to color the whole spec pink? [03:15:02.0000] that would be hard to read [03:15:03.0000] i'd be hard pressed to find anything that's widely implemented that i couldn't point out fundamental problems with [03:15:04.0000] even the new stuff like canvas [03:15:05.0000] DanC is so sensible in those TAG minutes [03:15:06.0000] I enjoy reading his lines in the minutes [03:16:00.0000] or maybe misfeatures in would be better [03:17:00.0000] how about we paint misfeatures in the blood of whoever first implemented them [03:17:01.0000] /me wonders how many pints he'd have to donate [03:20:00.0000] Sorry, I'm not allowed to give blood at home. [03:25:00.0000] Noah is very sensible too [03:38:00.0000] Philip`: btw, i asked the rdfa guys at work and they said that the preview page is the same code as we use internally for snippet generation. [03:44:00.0000] ok, iana consideration sections for the http headers are all written up [03:44:01.0000] bed time now [03:44:02.0000] nn [03:47:00.0000] Hixie: Okay, good to know [03:51:00.0000] /me wonders why the TAG spends so much time discussing matters such as document.write(); it's like a decade too late to have an architecture discussion on that [03:58:00.0000] annevk2: from the minutes, it seems like what they were discussing it in the context of whether it would be worthwhile to have a separate spec that documented HTML processing minus the bad stuff [03:59:00.0000] You mean an empty document? [04:00:00.0000] MikeSmith, could publish an empty document [04:00:01.0000] heh [04:00:02.0000] I think in a better world it would be a great thing [04:01:00.0000] I wonder why they waste so much time trying to understand HTML5 by brainstorming with each other while a few questions to the HTML WG list would work as well [04:07:00.0000] indeed, they seem to think it may be valuable to suggest making a separate spec that is a "clean subset", or perhaps just a description in the main spec itself of what such a subset could be [04:07:01.0000] timbl thought it was as simple as not using document.write() and avoiding implicit [04:07:02.0000] it would be interesting to document the intersection of HTML and XML that results in identical processing, but quite challenging [04:08:00.0000] you fail at as someone pointed out recently [04:09:00.0000] That does seem to be an unusually subtle issue to trap the unwary indeed [04:09:01.0000] I guess there is some value in documenting the intersection that gives the minimum achievable difference between HTML and XML processing [04:15:00.0000] annevk2: fair enough - it couldn't be identical, it would have to be some definition of "close enough" processing [04:15:01.0000] annevk2: which would be hard to define in itself [04:15:02.0000] you'd also have to rule out all use of script if you want the subset to be statically checkable [04:17:00.0000] and CSS [04:17:01.0000] e.g. html[xmlns] { background:papayawhip } [04:19:00.0000] Is or was there anything in the talks of doing something along the line of ? It would be a checkbox, but it would work similar to type="password" where the default behaviour of the UA will fill in i.e., remember me in login forms by default or not [04:20:00.0000] did the Super Friends ever follow up with Sam on the polyglot stuff? [04:20:01.0000] annevk2: That seems like it is about observability not static checkability [04:20:02.0000] csarven: autocomplete? [04:21:00.0000] hsivonen: I don't recall anything from them except the individual emails sent bu Jeremy Keith and tantek [04:21:01.0000] jgraham: I don't recall emails on polyglottal issues [04:22:00.0000] jgraham: I do recall adactio sending other email [04:22:01.0000] hsivonen: Yes that was what I meant [04:22:02.0000] (sorry for being unclear) [04:23:00.0000] MikeSmith I guess that'd be it. . But autocomplete doesn't appear to apply checkbox. Would this be a good case to do so? The only problem is that, the UA doesn't know it is about 'rememberme' [04:23:01.0000] I guess I'll proceed to zapping the new menu from V.nu if the Super Friends aren't going to follow up with Sam [04:24:00.0000] csarven: it might be worth proposing in a e-mail to one of the mailing lists or through W3C bugzilla [04:24:01.0000] http: doesn't match URI-reference, right? [04:25:00.0000] MikeSmith Thanks, I could do that, but, I wanted some quick feedback on it before going ahead. There may have been discussions around that already. [04:26:00.0000] remembering is a UI feature [04:26:01.0000] autocomplete can be used to turn things off, on is not really a meaningful value [04:29:00.0000] annevk2 So, what you are saying is that would be sufficient? [04:57:00.0000] no [04:58:00.0000] Hixie, the title attribute for the set-cookie header is wrong, you made it http-setcookie2 [04:58:01.0000] Hixie, not sure if it affects anythings [05:33:00.0000] Hixie: You got any idea why I'm not getting any whatwg email to gsnedders@op? [05:37:00.0000] gsnedders|work: Maybe you're not subscribed [05:37:01.0000] Philip`: I was before, but I tried filling out the form… didn't even get confirmatioin email [05:48:00.0000] Argh [05:49:00.0000] mpt: ? [05:50:00.0000] I've wandered into one of those places where people still think draconian error handling for a markup language targeted primarily at humans is a good idea [05:50:01.0000] what place is that? [05:50:02.0000] http://mail.gnome.org/archives/gnome-doc-list/2009-October/msg00014.html [05:52:00.0000] /me wonders about the most productive way to reply [05:53:00.0000] mu [05:53:01.0000] mpt: is Gnome practicing decentralized extensibility and minting stuff like ? [05:53:02.0000] haha [05:54:00.0000] Hm, now you're making me think what it would be in non-extensible HTML [05:55:00.0000] Probably something like [05:56:00.0000] with the demo: protocol restricted to access only from ghelp: URLs [06:01:00.0000] generally when you find yourself making a new markup language, you're probably doing it wrong [06:01:01.0000] Blatantly we should just use triple stores, SPARQL, and transform everything to HTML. [06:02:00.0000] mpt: is it true that feed readers ignore well-formedness for Atom? (I knew that was true for RSS) [06:02:01.0000] othermaciej: They use the same parser [06:03:00.0000] othermaciej: It's not that they ignore well-formedness completely, normally, though [06:03:01.0000] I'm wondering if maybe Safari's (well, PubSub's) Atom implementation might use real XML parsing [06:03:02.0000] I know the RSS implementation is very... generous [06:04:00.0000] othermaciej: You still need to ignore invalid byte sequences, but otherwise you get away with it fine in Atom [06:04:01.0000] of course, real standalone feed readers completely ignore the MIME type so they'd have to use a single parser [06:04:02.0000] (even if that parser just does some sniffing and then switches) [06:04:03.0000] zcorpan: http://krijnhoetmer.nl/irc-logs/whatwg/20091006#l-217 [06:04:04.0000] (and people bitch about the sniffing browsers do...) [06:05:00.0000] othermaciej: SimplePie at least just uses a real XML parser for everything [06:06:00.0000] othermaciej: my recollection of hearsay is that Safari doesn't treat encoding errors as fatal [06:06:01.0000] othermaciej, I see that the Universal Feed Parser accepts non-well-formed XML , but I haven't done an actual survey [06:06:02.0000] I remember doing some experiments once where I got Apache to serve an RSS feed with the Atom mime type and the Atom feed with an RSS MIME type [06:06:03.0000] othermaciej, non-well-formed Atom, I mean [06:06:04.0000] mpt: That uses an XML parser and falls back to a custom one [06:06:05.0000] (and of course it worked fine everywhere) [06:07:00.0000] othermaciej: SimplePie forks based upon the root element. I don't think you do actually need to support those two mixed up, it's more supporting application/xml and text/xml feeds. [06:07:01.0000] othermaciej: Oh, the other spec you have to break for Atom compat. is RFC3023 [06:08:00.0000] gsnedders|work: break which aspect? the text/xml encoding lie? [06:08:01.0000] othermaciej: yeah [06:08:02.0000] right, I don't think you need them mixed up, was just experimenting to determine the extent of sniffing [06:09:00.0000] I was able to serve both feed types as each other, as text/html, as image/jpeg, as image/svg+xml, as application/pdf, and of course all of those worked in every feed reader I could find [06:09:01.0000] I did not, at the time, try introducing well-formedness errors [06:10:00.0000] it's sad that feed readers handle bogus Atom, when one purpose of Atom was supposed to be to make a clean break from all that [06:11:00.0000] othermaciej: Basically you establish a document is a feed, and use the same code-path thereon [06:11:01.0000] (I should mention that not all those types worked in feed readers built into browsers of course; they would fail on types that don't get sniffed for feeds) [06:12:00.0000] but of course the fact that feed readers ignore Content-Type is what requires you to sniff for feeds in the first placr [06:12:01.0000] *place [06:12:02.0000] SimplePie rejects any feed not served as application/rss+xml, application/atom+xml, application/xml, application/rdf+xml, text/xml, or text/html (with HTML5-heristics) [06:13:00.0000] We've got very, very, very few bug reports from not supporting more. The only one that used to come up a fair bit was text/plain, but since Firefox and Safari stopped sniffing that that has almost totally vanished. [06:14:00.0000] The number of bug reports from unescaped ampersands far exceeds MIME-type issues. [06:14:01.0000] that is omewhat encouraging [06:14:02.0000] And from memory most of the XML well-formedness issues are in RSS feeds, not Atom ones. [06:15:00.0000] Atom, as I said before, you have to allow invalid byte sequences, but I think that's the only real concession you have to make for compatibility [06:16:00.0000] (and this is something with millions of deployed copies, and as far as I can tell we've reached the point where increasing marketshare has more or less stopped causing such a dramatic increase in broken things being found, so that is probably representative of the feed landscape in general) [06:20:00.0000] The number of cases of unescaped ampersands, which AFAIK is the cause of 90% or so of well-formedness errors (excluding invalid byte sequences, which are the most common), is certainly decreasing. I made the decision two/three years ago to stop supporting such feeds in SimplePie, and the number of bug reports we're getting on them is going down over time, quite clearly. [06:22:00.0000] Maybe people are just not bothering to file bugs on you anymore since you wontfixed all the other bugs [06:22:01.0000] (I decided to remove support primarily because we don't have our own XML parser: having one in PHP would be ungodly slow, so anything to special case certain errors is quite hackish, and this was causing some compat. issues with certain combinations of (valid) things (Atom + XHTML content + CDATA, IIRC), so I took the decision to favour the valid) [06:22:02.0000] jgraham: Maybe, but there are still plenty of other duplicates we get filed :) [06:23:00.0000] I am fairly certain from what I've seen elsewhere (e.g., what rubys has posted on his blog of stats from feed validator) that the state of feeds is getting better. [06:24:00.0000] I'd say it is a realistic thing to change to using an XML (+NS) parser that allows invalid byte sequences and ignores RFC3023 (for text/xml charset) [06:24:01.0000] [06:34:00.0000] http://www.youtube.com/watch?v=yFYH9BCRPAw [06:56:00.0000] /me is getting tired of the argument [07:11:00.0000] GPHemsley: Is it not endlessly fascinating? [08:18:00.0000] /me guesses that IE's DOM-like thing has to have protection to stop XPath causing infinite loops. [08:25:00.0000] gsnedders|work: I know nothing about this, but: Isn't XPath just supported in XML, where presumably IE uses MSXML which has a real DOM and is completely independent of the IE's HTML DOM-like thing? [08:26:00.0000] Philip`: XPath is supported in HTML too [08:27:00.0000] Oh, okay [08:53:00.0000] Philip`: Oh, I'm wrong [09:29:00.0000] Anyone got any idea about what the best way to count the descendants of a document is? [09:29:01.0000] (pref. in a way that works in IE) [09:29:02.0000] It is important to clarify that you mean "Nodes" [09:31:00.0000] just c/p from live dom viewer [09:31:01.0000] and don't count the red nodes [09:31:02.0000] (but the short answer is "walk the 'tree' being careful to not count any node twice or descend into the descendants of nodes that you have seen before" [09:31:03.0000] ) [10:10:00.0000] Where does HTML5 say normatively that event handler attributes are null in the absence of being defined [10:10:01.0000] I can see where it says they are null if the content attribute doesn't compile [10:10:02.0000] or if the IDL attribute is removed [10:11:00.0000] Oh, nevermind it was obvious [10:12:00.0000] (just in the paragraph above where I was looking) [10:13:00.0000] Philip`: No, actually, it's endlessly repetitive. [10:17:00.0000] http://www.betanews.com/article/Yahoo-Apple-Adobe-others-named-in-Eolas-patent-lawsuit-blitz/1254842259 [10:20:00.0000] ah the ghost of patent trolls past raises its ugly head [10:23:00.0000] We should all be glad that their innovation allowed us to have interactive plugins embedded in web pages [10:24:00.0000] Surely it's fair that they deserve a billion dollars for that? [10:28:00.0000] And patents don't have any chinese wall equivalent either, do they? [10:28:01.0000] Even if you didn't know about the patent, you're infringing someone else's innovation [10:30:00.0000] Indeed, otherwise it'd be trivial to steal someone's legitimate patent and just pretend you never read about it, which would be pretty much impossible to disprove [10:33:00.0000] I wonder if history will repeat or not. [10:33:01.0000] hello - there was a really great video that went around the public_html mailing list last week about HTML5 and what it can do and how well it is supported in the different browsers. I am pretty sure it was made by someone at google. I can't seem to locate it in my email. Can someone point me toward it? (I apologize if the description is kinda vague) [10:34:00.0000] I want to post it to my HTML/CSS class forum [10:34:01.0000] Last time, various folks (including TBL) wrote friend of the court briefs outlining how the so called "innovations" were previously openly discussed - by others - on w3.org mailing lists. But that didn't seem to affect the outcome. [10:34:02.0000] cardona507: http://vimeo.com/6691519 ? [10:35:00.0000] webben - exactly :) thanks [11:04:00.0000] Philip`: yt? [11:06:00.0000] gsnedders|work: Y [11:06:01.0000] Philip`: What pages contain: document.createElement(["']< [11:07:00.0000] gsnedders|work: Do you mean document\.createElement\(["']< ? [11:07:01.0000] Philip`: yeah [11:08:00.0000] gsnedders|work: Ask me again in five minutes [11:12:00.0000] Philip`: again? [11:14:00.0000] gsnedders|work: http://philip.html5.org/data/createelement-with-angle-bracket.txt [11:15:00.0000] Philip`: thx [12:47:00.0000] /me shifts uncomfortably after reading the latest response in the debate. [12:50:00.0000] GPHemsley: To be fair, I totally agree with him, and don't understand quite how it could be misconstrued as badly as it is by Hixie. [12:51:00.0000] I'm personally of the belief that should be used to mark up an entire entry in a bibliography, so I don't even bother getting directly involved in the discussion. [12:51:01.0000] But yeah, I certainly don't agree that should be restricted to just titles of works [12:51:02.0000] Interesting, but totally against legacy usage, so can be struck immediately. ^_^ [12:52:00.0000] Precisely :P [12:52:01.0000] Yeah, I just added an example from my own site to the whatwg wiki page about it. [12:52:02.0000] As I use the
/ pair to mark up testimonials, and expect to continue to do so in the future. [12:53:00.0000] right [12:53:01.0000] what is the link to the wiki article, please? [12:53:02.0000] One sec. [12:55:00.0000] GPHemsley: http://wiki.whatwg.org/wiki/Cite_element [12:55:01.0000] thanks [12:58:00.0000] perhaps we should analyze the word 'cite' itself? [12:58:01.0000] if so, the first question is, are we using it as a verb or a noun? [12:59:00.0000] I use it as a verb. I'm citing whatever's in the . [13:01:00.0000] hmm... according to the main definition of the verb 'cite', it cane be used to refer to quotes/quotations, titles, and people [13:01:01.0000] s/cane/can/ [13:02:00.0000] Yeah, the first one doesn't jive with legacy , but the second and third definitely do. [13:03:00.0000] Which is why I don't understand why Hixie keeps splitting things the way he does. We want to use for "things we cite". He seems to be slicing things differently - he wants to use for "x things", making sure that x is a category that can be reliably styled as a citation. [13:03:01.0000] Which is why names don't work for his logic - most of the time you *don't* want to mark up a name, or style it with italics. [13:03:02.0000] reading the FAQ entry on it, it seems that the main issue is the difference in styling (i.e. italics) between titles and authors [13:04:00.0000] I just don't see a significant difference, though. I italicize cited names. [13:04:01.0000] And if I was bolding them or something, I'd be bolding work names too. [13:05:00.0000] I think should be used for things such as parenthetical citations or footnotes (e.g. in spec documents, like [RFC3066]), rather than any off-handed mention of a work's title [13:06:00.0000] Basically I just don't want to be stuck with when I'm trying to mark up names being attributed for styling purposes when there's a perfectly serviceable element right here. [13:06:01.0000] ...or author, for that matter [13:06:02.0000] Well, you *do* often style works, even if you're not directly quoting them. [13:06:03.0000] yes [13:06:04.0000] that is true [13:06:05.0000] but I think that should be dealt with separately [13:07:00.0000] And saying that "too bad, that's not *enough* quotation to get special styling, off to -land with you" is weird and would just cause problems. [13:07:01.0000] A simpler rule is "are you citing something, and do you want it styled specially?". [13:07:02.0000] I think you'd be better off with and [13:07:03.0000] Possibly, if you need to slice things that thinly. [13:07:04.0000] right [13:08:00.0000] so, leave the default styling as italics (for legacy issues), and then allow any reference to any work or author, with the granularity decided by the author [13:08:01.0000] My rule for semantics is that if I can't explain it in terms of a single easy question, it's too complicated. [13:08:02.0000] Yeah, that's about what I want. [13:08:03.0000] seems simple enough [13:09:00.0000] Hixie: ^^ [13:13:00.0000] Ah, spending some time just sitting down and styling a page is so relaxing. [13:15:00.0000] heh [13:15:01.0000] while you're at it, I'd recommend to changing -- to em dashes ;) [13:15:02.0000] s/to/you/ [13:16:00.0000] Yeah, probably. I always forget how to do unicode in the content property, though. [13:16:01.0000] \u2014 [13:16:02.0000] I think [13:17:00.0000] Lemme try. One sec. [13:18:00.0000] Nope. >_< [13:19:00.0000] you did it wrong :P [13:19:01.0000] I've done it four different ways now. [13:19:02.0000] oh [13:19:03.0000] meh [13:19:04.0000] hang on [13:19:05.0000] oh [13:19:06.0000] \2014 [13:20:00.0000] Ah, excellent. [13:20:01.0000] weird... the space disappeared [13:21:00.0000] Yeah, but I don't care enough to debug. It's good enough. [13:22:00.0000] perhaps you want a \00A0 (NBSP) or \2002 (en space) \2003 (em space) [13:23:00.0000] (there's an "or" missing in there) [13:25:00.0000] TabAtkins - re: cite element, perhaps add your voice of support to the opinions section on the wiki: http://wiki.whatwg.org/wiki/Cite_element [13:25:01.0000] (and add any examples you have on the web as well) [13:25:02.0000] tantek: I already added an example - it's the Go Figure one. [13:25:03.0000] oh cool - awesome [13:25:04.0000] GPHemsley: Yeah, an nbsp did it. [13:26:00.0000] TabAtkins: Cool [13:26:01.0000] Odd that it would lose an ordinary space, though. Hmm. [13:26:02.0000] TabAtkins: Incidently, I'd recommend indenting those lines just a tad, as well. [13:26:03.0000] TabAtkins, GPHemsley, still worth adding a +1 here IMHO: http://wiki.whatwg.org/wiki/Cite_element#opinions [13:26:04.0000] Oh, the cite lines? [13:26:05.0000] yeah [13:27:00.0000] if any strawpoll is conducted in the wg, it can include the opinions there in absentia [13:27:01.0000] what are we +1ing, though? [13:28:00.0000] the use of the cite element to mark up names of speakers/people for quotations [13:28:01.0000] tantek: done [13:29:00.0000] GPHemsley: You're right, that looks better. [13:29:01.0000] :) [13:29:02.0000] TabAtkins: And perhaps a little extra space above, too [13:30:00.0000] above the cite or above the blockquote? [13:30:01.0000] above the cite [13:30:02.0000] (hmm... thanks for alerting to me to the 'text-indent' property, BTW) [13:30:03.0000] /me really cannot type. [13:30:04.0000] Heh, np. [13:31:00.0000] yeah, that's better [13:31:01.0000] Okay, .25em is a bit too much. I like the space, but want only a very fine one. [13:31:02.0000] Ah, better. [13:32:00.0000] .15em it is. I still want a very strong visual correlation with the preceding blockquote. [13:32:01.0000] right [13:33:00.0000] I'm gonna write a message to the cite thread regarding our discussion, BTW [13:33:01.0000] kk. That saves me having to do so. [13:36:00.0000] lunch - be back in 2 hours [13:44:00.0000] sent [13:46:00.0000] tantek: I'm now on record with what I support. Still not sure whether that fits into that +1 list. [13:47:00.0000] GPHemsley - the beginning of the section describes what is proposed [13:47:01.0000] http://wiki.whatwg.org/wiki/Cite_element#speaker [13:47:02.0000] Yeah, I'm there [13:47:03.0000] it's kind of a dinky sentence [13:48:00.0000] it should probably be propped up with more direct wording, like "we all support this, that, and the other thing" [13:48:01.0000] IDK, just my opinion [13:48:02.0000] easy to miss [13:49:00.0000] ok [13:49:01.0000] /me adds a -1, just to balance things out [13:50:00.0000] :P [13:53:00.0000] Philip`: Make it -10 just in case [13:55:00.0000] Philip` - I encourage you to add your opinion to the wiki, along with links to any supporting materials: http://wiki.whatwg.org/wiki/Cite_element#opinions [13:55:01.0000] GPHemsley - reload that link - I've added a summary opinion sentence to address the issue you raised [13:59:00.0000] tantek: That's better, but it's still a little submissive and ambiguous. It should make clear what +1 means versus -1. [14:04:00.0000] tantek: Oh, I don't want to bother actually reading the page or having an informed opinion [16:32:00.0000] Goddammit, the lack of or ::di strikes again! [16:34:00.0000] /me now has to rewrite his
into a