00:53
<cabanier>
TabAtkins: ping
00:54
<cabanier>
TabAtkins: bikeshed is reporting "ImportError: No module named six"
00:54
<cabanier>
https://www.irccloud.com/pastebin/zrm5b7sH
00:54
<cabanier>
TabAtkins: Any ideas?
00:54
<cabanier>
TabAtkins: It's on mac
00:55
<TabAtkins>
let me go see!
01:00
<caitp>
making python do anything right is kind of amazing
01:03
<cabanier>
TabAtkins: just got a new mac so it could be that something is in a bad state
01:04
<TabAtkins>
Argh, having trouble entering my chroot now, probably caused by the most recent update to chromeos
01:04
<TabAtkins>
And yeah, I haven't touched that part of the code. You followed the install instructions?
01:04
<TabAtkins>
Possible that six wasn't part of the install instructions, but it worked because everyone already had it on mac or something.
01:05
<cabanier>
TabAtkins: yes. https://github.com/tabatkins/bikeshed/blob/master/docs/install.md
01:05
<SimonSapin>
TabAtkins: six should just come as a dependency when you install html5lib
01:06
<TabAtkins>
Yeah, it should. Weird that it's not.
01:06
<SimonSapin>
the state of Python on OS X makes me sad
01:06
<cabanier>
I did "sudo port install py27-six"
01:06
<cabanier>
now it works :-)
01:07
<caitp>
it's not that python is bad on osx, it's just bad everywhere
01:07
<caitp>
this is why nobody likes writing python :(
01:07
<TabAtkins>
caitp: Except, the exact opposite.
01:07
<TabAtkins>
cabanier: I'll amend the docs.
01:07
<SimonSapin>
caitp: disagree
01:07
<cabanier>
TabAtkins: thanks!
01:08
<caitp>
dart has a decent package manager, go sort of has something vaguely like a package manager, node has a pretty great package manager
01:08
<caitp>
all 3 make that stuff so much less of a headache
01:08
<TabAtkins>
Python has a decent package manager too.
01:08
<TabAtkins>
On Linux.
01:09
<caitp>
it really doesn't, I've been using python on linux :(
01:09
<TabAtkins>
So have I.
01:13
<caitp>
there are always going to be a few people who are really into whatever language, even if it's haskell or rust
01:14
<TabAtkins>
I'm just saying, I've never had problems with pip on linux.
01:14
<TabAtkins>
And I've done a year of off-and-on heavy dev on Bikeshed.
01:18
<caitp>
i'm just saying, the barrier to entry and the maintenance headache for this stuff should rightfully be a lot less than it is
01:18
<caitp>
these are solved problems in general
01:19
<TabAtkins>
Maybe so, but I haven't seen these problems you're alluding to. ^_^
01:20
<caitp>
must be nice :> i never saw them with mozilla's python stuff, but i see them with every flask app ive ever seen
01:21
<caitp>
or any non-easy_install library that isnt dealt with by someone else
01:21
<caitp>
anything that wants to use venv
01:50
<SimonSapin>
"these are solved problems in general" [citation needed]
02:22
<jdaggett_>
annevk: ping
08:01
<annevk>
jdaggett_: hey
08:03
<jdaggett_>
annevk: had a design question for you but ended up talking about it with mike smith instead! :)
08:03
<jdaggett_>
annevk: you're in london these days?
08:03
<annevk>
jdaggett_: Zürich
08:03
<jdaggett_>
sweet!
08:04
<jdaggett_>
annevk: have you glanced over the font loading api recently? http://dev.w3.org/csswg/css-font-loading
08:05
<jdaggett_>
annevk: wondering if it might be better to structure the spec so that the algorithms were grouped together more clearly
08:06
<annevk>
That's up to you guys really
08:06
<annevk>
The only thing I'd try to make sure of is that algorithms that are also used by CSS syntax (not the API) are separate so they can be referenced and used from multiple places
08:09
<jdaggett_>
annevk: well, there's "fudge it" language -- User agents can initiate font loads on their own, whenever they determine that a given font face is necessary to render something on the page. When this happens, they must act as if they had called the corresponding FontFace’s load() method described here.
08:10
<jdaggett_>
:P
08:11
<annevk>
Seems reasonable I guess, although that language does not quite make it clear whether or not the load() method can be overridden by web developers
08:12
<jdaggett_>
annevk: hmmm, interesting
08:13
<annevk>
jgraham: I find it easier to have a separate algorithm that load() invokes and that the other CSS spec can invoke
08:13
<annevk>
jdaggett_: ^
08:13
<annevk>
jdaggett_: but you can also talk about the object's initial property value; XMLHttpRequest does something like that for using JSON.parse()
08:13
<jdaggett_>
yeah, that sounds like a better thing
08:14
<jdaggett_>
annevk: btw, if a spec says (1) fire a blahblah event at object X (2) fulfill promise foobar
08:15
<jdaggett_>
annevk: does that imply anything about the order of the event handler and resolve methods are executed?
08:16
<annevk>
jgraham: if that is all it says the event would fire immediately and the promise callbacks would be run later (before end-of-task)
08:16
<annevk>
(or at end-of-task, depends on how you view things I guess)
08:16
<jdaggett_>
mmm, ok
08:31
jgraham
still isn't jdaggett_ :p
08:32
<jdaggett_>
heh
08:32
<jdaggett_>
nor should you ever want to be...
08:56
<annevk>
oh sorry :/
09:51
<JakeA>
annevk: I don't see the relevance of https://github.com/slightlyoff/ServiceWorker/issues/518#issuecomment-60060589 - wrong ticket?
09:52
<annevk>
JakeA: I don't want ServiceWorkerClient as an object per 512 / 511
09:53
<JakeA>
annevk: ahh, but ServiceWorkerClients is different
09:53
<annevk>
JakeA: oh, it's all of them
09:53
<annevk>
JakeA: deleted comment
09:53
<JakeA>
JakeA: it's where the getters for the clients, and things like reloadAll (will) live
09:54
<annevk>
JakeA: still unclear how that makes sense for workers though
09:54
<annevk>
JakeA: reload that is
09:55
<JakeA>
annevk: yeah, reloadAll has more problems than just that. It's a good feature, but needs way more thought, that's why I removed it.
10:00
<annevk>
JakeA: hmm, perhaps a dedicated worker cannot be a client due to its API
10:01
<annevk>
JakeA: a dedicated worker assumes it only has a relationship with a window
10:01
<annevk>
JakeA: I guess it could still talk to Fetch directly, with a capability given by the Window/Document
10:29
<JakeA>
annevk: which bit of its API gets in the way?
10:30
<annevk>
JakeA: a dedicated worker assumes it's associated with a single port
10:31
<JakeA>
annevk: ah, so another env wouldn't be able to post messages to it?
10:31
<annevk>
JakeA: yeah, the logic doesn't really support that
10:31
<annevk>
JakeA: you'd effectively turn it into a shared worker at that point
10:31
<annevk>
afaict, anyway
10:35
<JakeA>
I'll continue assuming it's just windows & sharedworkers, we can add dedicated workers in if needed
10:35
<JakeA>
(I say 'continue', I'm just about to get onto it, so questions incoming)
10:37
<annevk>
Yeah, given the way the dedicated worker API works, that seems fine
10:37
<annevk>
We'll just have to learn to appreciate that there's not really any governing logic to these things
10:43
<annevk>
I missed http://www.w3.org/blog/2014/10/decision-by-consensus-or-by-informed-editor-which-is-better/ I hope Jeff doesn't actually think the W3C enables those five things
10:47
<erlehmann>
annevk what i am worried about with workers is that clients need to send messages to them. since js is single threaded, wouldn't that mean that if a worker has a huge dataset to work on that dataset would have to be messaged to them and interface would freeze in the meantime?
10:48
<annevk>
erlehmann: workers run in a distinct thread
10:49
<erlehmann>
annevk yes, but the messaging of the huge dataset could prove problematic, wouldn't it?
10:49
<erlehmann>
like the communication of and from to the worker
10:49
<annevk>
erlehmann: depends on how it's done, if you can transfer rather it, you might be okay
10:49
<annevk>
s/rather//
10:50
<erlehmann>
data is copied, not shared
10:50
<erlehmann>
i have to benchmark this in real-world cases
10:52
<annevk>
erlehmann: no, you can actually transfer the data rather than copy it if you use an ArrayBuffer
10:54
<erlehmann>
ah
10:54
<erlehmann>
thx annevk
11:43
<annevk>
"Mark Day: the usual model is that W3C develops stuff; some of it is deemed mature enough to transition over to another, larger or better-trained body like IETF. To my memory it hasn't gone the other way around."
11:43
<annevk>
https://www.ietf.org/proceedings/44/44th-99mar-ietf-121.html
11:47
<annevk>
Yay, SSLv3 disabled: https://www.ssllabs.com/ssltest/analyze.html?d=annevankesteren.nl
11:48
<annevk>
whatwg.org still has some ways to go; server not updated yet I guess
13:08
<JakeA>
annevk: If I want to get the url of a client, is it "the client's global object's location's href"?
13:09
<annevk>
JakeA: it depends on the type of client
13:09
<annevk>
JakeA: we could ask Hixie to put an accessor on the environment settings object
13:10
<annevk>
JakeA: but e.g. if the global object is a Window, you want it's associated document's url.
13:10
<JakeA>
annevk: that would help. Although don't all types of client have a location?
13:10
<JakeA>
workers & windows have .location
13:10
<annevk>
JakeA: yes, but that's an API, not an underlying concept
13:11
<annevk>
JakeA: and e.g. for a Window would give the address of the active document, which might not be correct I suppose
13:12
<JakeA>
annevk: struggling to find the window concept
13:13
<JakeA>
or is it "browsing context"?
13:13
<annevk>
JakeA: it's global object
13:13
<annevk>
JakeA: a browsing context has a history, so that's not quite it
13:14
<annevk>
JakeA: I have the feeling Hixie could refactor it a bit more, though I understand why he would be hesitant about that
13:19
<JakeA>
annevk: so I'm at https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object, looking for a way to get the URL, I guess "global object" isn't it, because that only gives me APIs and not concepts. Base URL will (presumably) be affected by <base>, so that isn't what I want. Getting the url from the browsing context is messy when it
13:19
<JakeA>
comes to navigations and window.open
13:20
<JakeA>
thinking out loud, but struggling to get to a url. Am I at least thinking about it in the right way?
13:20
<JakeA>
Or have I discounted the right answer by mistake?
13:22
<annevk>
JakeA: it's fine to inspect objects
13:22
<annevk>
JakeA: the problem with Location is that if you look at the API, you'll find it returns the active document's url
13:22
<annevk>
JakeA: whereas here we should probably return global object's associated document's url
13:23
<annevk>
JakeA: also, we don't typically say return the value from location.href or some such, but rather just get at the value that API would return (though in this case that would be wrong)
14:23
<JakeA>
annevk: active document seems fine. It's the document in the history sequence that's currently in use right?
14:24
<JakeA>
annevk: or does it get broken by child browsing contexts and window.open?
14:24
<JakeA>
"broken" in terms of my intended use
14:37
<JakeA>
annevk: I've replaced client url with: <a href="https://fetch.spec.whatwg.org/#concept-request-client">client</a>'s <a href="https://html.spec.whatwg.org/multipage/webappapis.html#global-object">global object</a>'s <a href="https://html.spec.whatwg.org/multipage/browsers.html#location">location</a>'s underlying <a
14:37
<JakeA>
href="https://url.spec.whatwg.org/#concept-urlutils-url">URL</a>;
14:39
<JakeA>
I can farm this out to an algorithm section, "Get URL From Client" or whatever
14:40
<JakeA>
Yeah, I'll do that
14:40
JakeA
disconnects his thoughts from #whatwg for a moment
14:57
<annevk>
JakeA: that's not an actual thing though
14:58
<annevk>
JakeA: just file a bug on Hixie to attach such a thing to environment setting objects
14:58
<JakeA>
annevk: what isn't a thing?
14:58
<annevk>
"location's underlying URL"
14:59
<JakeA>
annevk: But location implements URLUtils, and that has the concept of a URL. Or can I not go from API to concept?
15:00
<annevk>
JakeA: as I said, location's url is the one from the active document, we don't want that here
15:02
<JakeA>
annevk: haven't figured out when that breaks. The active document is the currently used document in the history sequence, right? When isn't that what we want? Or does it get broken (from what I want) by child browsing contexts and window.open?
15:02
<annevk>
JakeA: because at that point it's a different document
15:03
<annevk>
JakeA: e.g. if you navigate from a.com to b.com, the active document changes, but we don't want the URL to change in that case
15:03
<annevk>
JakeA: that'd be pretty weird
15:20
<annevk>
JakeA: how does appcache have path-based security?
15:27
<JakeA>
annevk: https://www.w3.org/Bugs/Public/show_bug.cgi?id=25699
15:27
<annevk>
JakeA: ah okay, is that actually implemented?
15:29
<JakeA>
annevk: nah, we've got someone assigned to do it, but not done yet
15:29
<annevk>
so maybe it's not a problem at all?
15:30
<JakeA>
I guess I could already take-over jsbin's 404 pages using appcache
15:31
<JakeA>
will add that to the issue
15:35
<JakeA>
annevk: visit https://jsbin.com/yisiju/quiet, then visit https://jsbin.com/blahblahwhatever
15:37
<annevk>
JakeA: why does it come back with " Remy smells of poo "?
15:38
<annevk>
oh I see
15:38
<JakeA>
annevk: I've taken over al 404s BY THE POWER OF APPCACHE
15:38
<annevk>
okay you that's bad
15:39
<JakeA>
annevk: yeah, mix this in with a bit of MITM and… well… appcache should have been https only
15:40
<annevk>
We were gonna disable appcache I think
15:40
<annevk>
I wonder why that hasn't happened yet
15:40
<JakeA>
annevk: Jonas said "as soon as serviceworker ships"
15:57
<Domenic>
JakeA: i bet you feel like one of those l33t "attackers" you hear so much about, now.
15:59
JakeA
goes off to pwn something
16:00
<jgraham>
JakeA: AIUI all you actually need to do is own evil.com. It's the web equivalent of having a secret base inside a volcano.
16:02
<boogy>
annevk: JakeA: e.g. if you navigate from http://a.com/ to http://b.com/, the active document changes, but we don't want the URL to change in that case <— Doesn't this break principles of showing appropriate content for the current url? Or is this some weirdness where only the canonical meta tag updates?
16:04
<JakeA>
annevk: also, if the user navigates, don't we want the url to change?
16:05
<JakeA>
(I think I'm hitting the spec writing learning curve)
16:12
<annevk>
boogy: I'm not sure what you're saying
16:13
<annevk>
JakeA: if the user navigates the global object changes as well, so you get a different place to postMessage to
16:13
<annevk>
JakeA: and the document changes
16:13
<annevk>
JakeA: as I said, Location is weird
16:14
<boogy>
annevk: what is the use-case where someone is navigating from domain.tld to domain2.tld without the url changing but the content changing?
16:15
<annevk>
boogy: the point is that the URL from domain.tld has not changed
16:15
<annevk>
boogy: so when we're talking with the content from domain.tld, we should not report the URL from some different content
16:16
<JakeA>
annevk: I guess this is why we considered navigation creating a new client and killing the old
16:17
<JakeA>
annevk: (by we I mean serviceworker client). Will work from home tomorrow so I can actually get this done. Today was mostly serviceworker support and meetings :(
16:18
<annevk>
JakeA: if I go to <a href=/b></a> from /a you'd expect /b to have its own Document (and therefore its own Window), but you wouldn't expect the client from /a to report /b
16:19
<annevk>
JakeA: and I don't think we want to make a client an actual browsing context with history and everything... though it would have been good if someone had thought about this while we created service workers
16:20
<boogy>
I'm not fully understanding the context here. Are you discussing the reporting as it relates to service workers? In my humble opinion, I very much would not expect content from /b to report as /a if that content produced a new document load.
16:21
<boogy>
as a web author, nor as an educated user.
16:22
<annevk>
I don't think there's actual disagreement, just not sufficient understanding about how self.location actually works
16:26
<boogy>
shouldn't it report the information most relevant to the document content?
16:33
<annevk>
boogy: it should do what it has always done so it doesn't break sites
16:34
<tantek>
annevk - any objection to me proposing to Art that WebAppsWG drop their outdated copy of Fullscreen, and simply instruct all dependent parties to reference the WHATWG living spec for Fullscreen?
16:34
<JakeA>
annevk: I need to get the url on navigate (to see which serviceworker registration to assign) and as a snapshot when we get clients (for getAll, and request.client). Doesn't this avoid the changing url issue?
16:35
<annevk>
tantek: yeah, I thought the CSS WG already decided as much
16:37
<tantek>
annevk - apparently we have to tell all the WGs
16:37
<Ms2ger>
Isn't a WG just a support forum?
16:37
<tantek>
Ms2ger - a very good question.
16:38
<annevk>
tantek: tell 'm
16:38
<tantek>
now that I'm co-chairing one ( Social Web WG ) I'm beginning to believe that it might be mostly a support forum for those who have ideas but don't actually build anything.
16:39
<tantek>
Ms2ger - WGs sometimes can also serve as honeypots for counter-productive individuals as well.
16:40
<annevk>
tantek: might want to reference http://lists.w3.org/Archives/Public/www-style/2014Oct/0295.html
16:41
<tantek>
annevk - thanks much. that's very helpful.
16:41
<tantek>
I will cc: you on my support forum post.
16:48
<Ms2ger>
"the new heartbeat requirement from W3C"
16:48
<Ms2ger>
Is that new? I recall it existing when I still edited in webapps
16:50
<annevk>
Ms2ger: per http://www.w3.org/2014/Process-20140801/#changes it's not
16:57
<rubys>
@TabAtkins: ping?
16:57
<TabAtkins>
rubys: pong
16:58
<rubys>
Do I need to do anything to enable railroad diagrams?
16:58
<tantek>
email : wiki :: TR : living-spec
16:58
<TabAtkins>
rubys: No, you just write them in <pre class=railroad> blocks.
16:58
<tantek>
email-lists rather
16:58
<rubys>
What did I do wrong then? http://intertwingly.net/tmp/url.bs produces http://intertwingly.net/tmp/url.html#url-railroad
16:58
<TabAtkins>
tantek: But I can't respond to a fixed version of the wiki!
16:59
<tantek>
TabAtkins: But I can't file issues against a living spec!
16:59
<TabAtkins>
tantek: (that was the joke)
16:59
<tantek>
TabAtkins: I need more coffee :D
17:01
<TabAtkins>
rubys: Ah, undocumented requirement that the <pre> be on a line by itself. Sorry about that.
17:01
<tantek>
TabAtkins: I'm considering putting a WARNING STATIC SNAPSHOT header on all my posts to email lists.
17:01
<tantek>
which then says to reference the LIVING VERSION HERE (insert wiki URL)
17:02
<TabAtkins>
(All of the pre-block stuff is done in a preprocessing step before HTML parsing occurs.)
17:02
<TabAtkins>
rubys: The <pre> tag, that is. Don't put the contents on the same line, obvs.
17:02
<rubys>
thanks. can we talk about your comments on my conversion here, or would you prefer I respond in github?
17:03
<TabAtkins>
We can do here, but gimme 20m, as I need to make my wife's lunch.
17:03
<rubys>
ok
17:04
<tantek>
TabAtkins: speaking of the <pre> tag, whatever happened to your polyfill for the "separator" attribute on the <pre> tag? http://krijnhoetmer.nl/irc-logs/whatwg/20090903#l-1450
17:05
<JonathanNeal>
tantek: docs on separator attribute?
17:05
<tantek>
JonathanNeal: ^^^ click URL
17:05
<tantek>
it's a way to get CSV functionality into HTML and the DOM
17:06
<Ms2ger>
It never happened
17:07
<JonathanNeal>
tantek: i had seen the line you highlighted and looked at http://www.ietf.org/rfc/rfc4180.txt but I didn’t see what it does. I don’t yet get what csv functionality would look like in a pre.
17:08
<JonathanNeal>
But if I can help, I will!
17:08
<tantek>
JonathanNeal: <pre separator="\t"> (copy paste a tab-separated CSV text file here) </pre>
17:08
<tantek>
and if there's a header row then
17:08
<tantek>
(header row in the CSV)
17:08
<tantek>
<pre separator="\t" header> (copy paste a tab-separated CSV text file here) </pre>
17:09
<tantek>
implementation: parse the CSV per that RFC, and add a Table DOM to the pre element accordingly, so it can be styled with CSS table pseudo-elements and accessed by scripts.
17:10
tantek
waits for dglazkov to show up and say something about perfect opportunity for a Web Component ;)
17:15
<tantek>
annevk: http://lists.w3.org/Archives/Public/public-webapps/2014OctDec/0213.html
17:16
<Domenic>
lolol
17:17
<tantek>
JonathanNeal: do you use CSV files ever? do you like CSV as a format?
17:18
<JonathanNeal>
Hardy. Yes.
17:18
<JonathanNeal>
And it also sounds like the perfect opportuntiy for a web component because it seems like <pre> should never format content.
17:19
<tantek>
<pre> always formats content
17:19
<tantek>
(unless you style it explicitly not to)
17:19
<JonathanNeal>
I thought it tries to display it as raw as possible, which is why I doesn’t ignore whitespace and defaults to monospace?
17:20
<TabAtkins>
rubys: back
17:20
<TabAtkins>
tantek: Still exists in the annals of my site.
17:24
<rubys>
TabAtkins: how do I hand-covert an external link? See also https://github.com/rubys/url/commit/e617fd66135bd75b1052700081de5319914168a5#commitcomment-8262562
17:24
<tantek>
TabAtkins: Cool URLs and all that. Nice.
17:25
<tantek>
JonathanNeal: check out Tab's prototype http://www.xanthir.com/etc/csv.html
17:25
<annevk>
tantek: heh
17:26
<tantek>
annevk, glad I can help.
17:26
<TabAtkins>
rubys: You see if that link exists in Bikeshed's database today (`bikeshed debug --print-refs-for="foo"` isn't great to read, but it has all the necessary data), and if so, you specify what you need to point to it.
17:26
<TabAtkins>
If the link doesn't exist today, you can add custom anchors with an anchors.json file.
17:27
<tantek>
I don't always post to email lists, but when I do, I include at least one level of self-referential meta.
17:27
<TabAtkins>
And let me know, so that I can get Shepherd to start parsing that spec (assuming it has the right metadata for Bikeshed/Shepherd).
17:27
<TabAtkins>
(And if it doesn't, I can hopefully but the editors to add it.)
17:28
<JonathanNeal>
tantek: what am I misunderstanding about <pre> that it should format content when it means "preformatted text”? Why not use a new element?
17:28
<TabAtkins>
csv files are meaningfully readable as preformatted text. They're *more* readable as tables, of course.
17:28
<tantek>
JonathanNeal: you could use a new element. We used <pre> because <pre> is short for "preformatted text", and CSV/TSV is simply a special case of preformatted text, thus it made sense to re-use.
17:29
<TabAtkins>
So if you wanted something that worked in the absence of script, <pre> is what you use.
17:29
<TabAtkins>
Good fallback and all that.
17:29
<rubys>
TabAtkins, ok, if I substitute 'css' for 'foo', I get some JSON. I take it I should mimic that format and add it to biblio.json (which should be inlined?)
17:29
<tantek>
Right. 1) Good fallback. 2) minting new elements has greater cognitive cost than adding attributes to an existing element
17:29
<JonathanNeal>
Well, I’m all for that, and then I would ask that in the future it work with other preformatted types, like JSON, and eventually replace syntax highlighters altogether.
17:29
<TabAtkins>
anchors.json. Lemme check and see if I'm looking for inline anchors yet, one sec.
17:30
<tantek>
JonathanNeal: JSON already has <script> tags for embedding it.
17:30
<TabAtkins>
tantek: That's for *using* json, not displaying it.
17:30
<JonathanNeal>
Yes, but if I want to display it in a meaningful way, like CSV.
17:30
<tantek>
whereas <pre> is purely for expectedly *human* readable content
17:31
<tantek>
TabAtkins: true. JonathanNeal if you want to display some machine-readable code like JSON, we have an element for that. <code>
17:31
<tantek>
just need a "type" attribute
17:31
<JonathanNeal>
tantek: agreed on both points, nice
17:35
<TabAtkins>
rubys: Ah, yeah, I'm not yet recognizing inline <pre class=anchors> data. I'll fix that. For now, external anchors.json file will work.
17:36
<tantek>
JonathanNeal: <code type="application/json">{ "items": [{ "type": ["h-card"], "properties": { "url": ["http://tantek.com/";], "name": ["Tantek \u00c7elik"]}}]}</code>
17:38
<Domenic>
rubys: TabAtkins: FWIW I just use <a href="my-blog-post-here">text</a>
17:38
<TabAtkins>
annevk: I've been thinking of separating out the "default impl" of the FontFace/etc methods from the actual method itself. The intention is that UA-sparked calls use the *initial* value of the property.
17:39
<TabAtkins>
Domenic: Experience shows that forcing people to do cross-spec links with full href just means, in practice, that people almost never do cross-spec links.
17:39
<TabAtkins>
As evidence, the CSSWG moved from "very few cross-spec links" to "omg, so many cross-spec links" as specs switched to Bikeshed.
17:39
<Domenic>
Hmm, I meant more for e.g. the revealing constructor pattern link in https://streams.spec.whatwg.org/#rs-intro
17:39
<TabAtkins>
Oh, sure, if you want a one-off link.
17:40
<TabAtkins>
But if you'll be referencing something multiple times in a spec, you want Bikeshed to know about it so you can use short syntax.
17:42
<rubys>
TabAtkins: ValueError: dictionary update sequence element #0 has length 9; 2 is required
17:42
<TabAtkins>
...I have never seen that happen before.
17:43
<rubys>
At the moment, my anchors.json is exactly the output from bikeshed debug --print-refs-for="css", unmodified
17:43
<rubys>
last line in the traceback:
17:43
<rubys>
File "/home/rubys/git/bikeshed/bikeshed/ReferenceManager.py", line 61, in initializeRefs
17:43
<rubys>
self.refs.update(json.load(fh))
17:44
<annevk>
TabAtkins: as an avid reader of standards, I usually understand the intent, but I try to read them in such a way that I don't
17:44
<TabAtkins>
Ah, kk. That won't work; the output of print-refs-for isn't designed for direct input. Sorry this is kinda messy.
17:45
<rubys>
TabAtkins: got an example of a working anchors.json anywhere?
17:46
<TabAtkins>
The top-level needs to be a dict of link text to anchor data, not an array.
17:47
TabAtkins
is really frustrated that the ChromeOS update he accidentally applied last night killed his crouton, because it means he CAN'T FIX ANYTHING AT ALL RIGHT NOW >_< >_< >_<
17:50
<rubys>
TabAtkins: does that mean that I don't need the spec= attribute?
17:50
<TabAtkins>
rubys: Yes, you rarely need to specify the spec; usually just specifying the type and maybe the for is enough.
17:55
<rubys>
TabAtkins: I'm really longing for a working example. My current error:
17:55
<rubys>
self.refs[term] = [ref for ref in refs if ref['shortname'].rstrip("\n")!=self.specName]
17:55
<rubys>
TypeError: string indices must be integers
17:56
<rubys>
contents of anchors.json (clearly bogus values but should be well-formed):
17:56
<rubys>
{
17:56
<rubys>
"utf-8-decoder" : {
17:56
<rubys>
"status": "TR\n",
17:56
<rubys>
"export": false,
17:56
<rubys>
"for": [],
17:56
<rubys>
"level": "3\n",
17:56
<rubys>
"url": "http://www.w3.org/TR/css3-conditional/#CSS-interface\n";,
17:56
<rubys>
"normative": true,
17:56
<rubys>
"shortname": "css-conditional\n",
17:56
<rubys>
"type": "dfn\n",
17:56
<rubys>
"spec": "encoding\n"
17:56
<rubys>
}
17:57
<rubys>
ok, that was throttled. Trying again in parts:
17:57
<rubys>
{
17:57
<rubys>
"utf-8-decoder" : {
17:57
<rubys>
"status": "TR\n",
17:57
<rubys>
...
17:57
<rubys>
"type": "dfn\n",
17:57
<rubys>
"spec": "encoding\n"
17:57
<rubys>
}
17:57
<rubys>
}
17:58
<rubys>
one of the elided lines reads:
17:58
<rubys>
"shortname": "css-conditional\n",
17:58
<TabAtkins>
rubys: No one's ever used it, and I am incapable of producing one for you at the moment, as in trying to get my Linux working again.
17:58
<rubys>
ok, in that case, Dominic's suggestion wins. :-)
17:59
<TabAtkins>
The real answer is "get all the specs you reference to add the right metadata, then we'll get Shepherd to start parsing then and everyone benefits".
18:00
<TabAtkins>
Autolinking is an ecosystem thing that doesn't work great for the first few specs in a given clique that try to use it.
18:01
<TabAtkins>
It's *awesome* for CSS now, since everyone generates thee right metadata.
18:01
<rubys>
Converting encoding: doable. Converting html and IDNA; https://www.youtube.com/watch?v=zGxwbhkDjZM :-)
18:01
<TabAtkins>
Yeah...
18:02
<rubys>
In any case, hard-code hrefs for now; and I'll update to use anchors when you can provide a working example.
18:03
<TabAtkins>
Kk!
18:07
<rubys>
TabAtkins: just thinking out loud, why is anchors needed? Shouldn't one or more of the following 'just work'?
18:08
<rubys>
<a spec=encoding>utf-8</a> or <a spec=dom title=concept-attribute-value>attribute value</a>?
18:08
<TabAtkins>
Only if Bikeshed knows about those specs, which I don't think it does, currently.
18:08
<rubys>
but those specs are in my biblio.json
18:08
<TabAtkins>
Irrelevant - that's a different system entirely.
18:09
<TabAtkins>
Biblio and autolinking have no connection.
18:09
<TabAtkins>
(Probably should, but I inherited some legacy biblio systems that are terrible at naming specs.)
18:10
<rubys>
I'd even settle for <a biblio-spec=encoding>utf-8</a>
18:11
<TabAtkins>
Still won't help, because if Bikeshed doesn't know the spec, it doesn't know the anchors for that spec.
18:14
<rubys>
What I meant by that is "create a href by taking the specified spec's href from biblio, and add a hash with the title (computed or provided)"
18:18
<TabAtkins>
I haven't considered shorter methods for things that arent' in the autolink database yet. I'll think on it.
18:20
<rubys>
Found the dataloss issue:
18:20
<rubys>
"<code title>></code>", <!-- 0x3E -->
18:20
<rubys>
This will fix it:
18:20
<rubys>
"<code title>&gt;</code>", <!-- 0x3E -->
18:21
<TabAtkins>
That's weird.
18:23
<TabAtkins>
That really shouldn't be an issue, though.
18:23
<TabAtkins>
Note that you dont' need an emtpy title there.
18:23
<TabAtkins>
Bikeshed only treats <a> and <i> as autolinks.
18:24
<TabAtkins>
(The former only when the element lacks an href attribute, and I'm going to turn off the latter by default.)
18:24
<TabAtkins>
Holy crap, when you don't update your system for a few months, a full update takes a while.
18:25
<rubys>
TabAtkins: what OS?
18:25
<TabAtkins>
And I'm back with a workiong Linux, yay!
18:25
<TabAtkins>
Ubuntu on Chromebook.
19:04
<Domenic>
tyoshino________: since you seem to be awake (!?) would love a review of https://github.com/whatwg/streams/pull/234#issuecomment-60016461
19:57
<gsnedders>
So, any of you Google people happen to have an Inbox invite to spare? :)
20:01
<paxcoder>
gsnedders, I don't think you need that anymore. Unless, of course, you think a Google employee's invite might influence the spam filter rating in your favor...
20:02
<gsnedders>
paxcoder: http://www.google.com/inbox/
20:02
<gsnedders>
paxcoder: this isn't Gmail
20:02
<gsnedders>
paxcoder: so yes, you /can/ request one, but probably quicker to just ask first
20:04
<paxcoder>
gsnedders, Oh... First time hearing about that. Dat Metr.. umm I mean Material design.
20:05
<gsnedders>
paxcoder: announced a few hours ago :)
20:07
<paxcoder>
gsnedders, thanks for the info.
20:07
<paxcoder>
I like how in the demo/intro, they're not using screenshots or videos.
20:10
<paxcoder>
gsnedders, I'm also new to templates. How do I know if I should attribute the above to their use?
20:10
<paxcoder>
(what do I search for in the code?)
20:11
<gsnedders>
paxcoder: <template>, except this is Google so they probably do something crazy like building it all up through the DOM
20:13
<paxcoder>
Yeah, the "data-template" attributes seem to agree
21:03
<Jasper>
Will requestAnimationFrame be called before or after any timeouts in the frame? I couldn't find the ordering of this.
21:03
<Jasper>
And is there any hook that gets me as close to the "before displaying the finished frame" point in time as possible?
21:07
<caitp>
i'm not sure how it's spec'd, but from blink's source it looks like the two aren't concerned with each other at all
21:07
<caitp>
so it's probably implementation-specific
21:08
<caitp>
or just undefined
21:08
<Jasper>
Yeah, it's not in the WHATWG HTML spec, only here: http://www.w3.org/TR/animation-timing/
21:09
<Jasper>
That's unfortunate.
21:09
<Jasper>
OK, I think that means I can't actually implement this unless I do (another) shadow copy. OK. I'll just not.
21:17
<smaug____>
setTimeout and rAF don't really have anything to do with each others
21:19
<jgraham>
Right, you can never determine the timing of a setTimeout
21:19
<jgraham>
There isn't any concept of a "same frame"
22:51
<Hixie>
Jasper: i plan to define it such that the answer is "rAF will be the last callback invoked before the frame is laid out and painted"
22:51
<Hixie>
Jasper: whether a particular timeout gets done in the current frame or not can't be controlled, it depends on what else is going on
22:51
<Jasper>
Hixie, right, OK.
22:52
<Jasper>
jgraham, I thought that the main loop defined the concept of a frame / redraw period
22:52
<Jasper>
Admittedly, my use case is insane, but I figured I'd ask.
22:56
<jgraham>
Jasper: No, and setTimeout allows the browser to delay as long as it likes for any reason
23:00
<Hixie>
yeah, setTimeout just queues a task, there's no guarantee of when it'll be serviced
23:00
<Hixie>
right now the event loop is veeeery vague about frames. that'll hopefully improve a little when i get to that bug.
23:05
<Hixie>
what's the difference between a prototype and a constructor again? I thought I knew, but then I read the spec for GetSuperConstructor() and it seems to say that they're the same.
23:07
<TabAtkins>
Hixie: An object's prototype is just another object, which is used for lookup when you ask for a property and it doesn't exist on the object.
23:07
<TabAtkins>
A constructor is a function.
23:07
<TabAtkins>
Typically, an object's proto is set to the value of the "prototype" property on the constructor function at the time the object is constructed.
23:12
<Hixie>
and foo.prototype is not foo's prototype, right? it's just the prototype that'll be used if you new up an object using new as a constructor?
23:12
<Hixie>
but __proto__ is the prototype? is there an official way of getting to __proto__?
23:14
<TabAtkins>
Hixie: Right, or rather, it's not necessarily. ^_^ __proto__ is the prototype, and that's the official way to get it.
23:14
<TabAtkins>
There's also getPrototypeOf(), I think.
23:14
<Hixie>
__proto__ seems to be shunned in the spec
23:14
<Hixie>
though i guess it is there, at least
23:15
<TabAtkins>
Using it de-optimizes your object, so you don't want to use it normally.
23:18
<Hixie>
so why doesn't this work:
23:18
<Hixie>
foo = { bar: 3 }
23:18
<Hixie>
Object.setPrototypeOf(foo, Object.getPrototypeOf(Object.getPrototypeOf(document.body)));
23:18
<Hixie>
Object.setPrototypeOf(Object.getPrototypeOf(document.body), foo);
23:18
<Hixie>
document.head.bar
23:18
<Hixie>
or maybe i should ask, should that work?
23:18
<gsnedders>
you probably can't mutate the prototype of host objects
23:19
<gsnedders>
or whatever they're called now
23:19
<gsnedders>
whether that's a good idea or not is a separate question :)
23:29
<Hixie>
is there a way to test if super() is going to throw because the function isn't defined?
23:31
<Hixie>
oh wait, super only works inside functions defined in class blocks, right