Options:
- # Session Start: Mon Jun 16 00:00:00 2014
- # Session Ident: #whatwg
- # [00:24] * Joins: tantek (~tantek@ma32836d0.tmodns.net)
- # [00:26] * Joins: jarek (~jarek@unaffiliated/jarek)
- # [00:26] * Joins: barnabywalters (~barnabywa@89.17.128.127)
- # [00:28] * Quits: tantek (~tantek@ma32836d0.tmodns.net) (Ping timeout: 255 seconds)
- # [00:43] * Quits: barnabywalters (~barnabywa@89.17.128.127) (Quit: barnabywalters)
- # [00:58] <gsnedders> which of the encodings defined in Encoding are not ASCII-supersets?
- # [01:00] <caitp> ebcdic
- # [01:00] <gsnedders> caitp: is not in Encoding
- # [01:01] <caitp> i know
- # [01:01] <gsnedders> then it by definition is not an encoding defined in Encoding which is not an ASCII-supserset
- # [01:01] <caitp> anyways, it would be anything which doesn't have the "if it's less than 0x80, return it"
- # [01:02] <caitp> clause
- # [01:02] <caitp> with the exception of the utf16 stuff
- # [01:02] <gsnedders> and possibly some of the SBCSes, as at least ibm866 isn't
- # [01:02] <zewt> i don't recall there being any at all, ascii-compatibility is pretty fundamental
- # [01:03] <caitp> utf16be isn't really ascii-compatible
- # [01:03] <caitp> on a little endian system
- # [01:03] <gsnedders> no variant of UTF-16 is an ASCII-superset
- # [01:03] <zewt> it's not a multibyte encoding at all, double-byte encodings are a different world entirely
- # [01:04] <caitp> well, they are sort of
- # [01:04] <caitp> if the low byte is the first byte read, and you're skipping a byte for each character, and the code points are all below 0x80
- # [01:05] <zewt> oh yeah this http://krijnhoetmer.nl/irc-logs/whatwg/20111215#l-1034
- # [01:05] <zewt> hope was to get ibm866 dropped, no idea if anyone actually tried
- # [01:06] <zewt> caitp: "skipping a byte for each character" if you have to skip every other byte then ... that's not a superset of ASCII. heh
- # [01:06] <caitp> it is for the first character you read ;)
- # [01:07] <zewt> as ascii supports streams which are longer than one byte long, that's also not a superset of ASCII :0
- # [01:07] <zewt> )
- # [01:07] <caitp> ascii is a text encoding and has no concepts of streams
- # [01:08] <caitp> a single utf16 character can look like a null-terminated ascii string
- # [01:08] <zewt> not sure what this has to do with the fact that UTF-16 is in no possible conceivable contrived way a superset of ASCII, heh
- # [01:09] <caitp> it is, because unicode is a superset of ascii, codepoints 0x00-0x7F, followed by latin1 extensions to ascii, followed by the rest of the basic multilingual plane
- # [01:09] <zewt> encodings that are streams of 8-bit units (ascii, utf-8, sjis, most of them) are typically treated as separate concepts to ones that are streams of 16-bit units (utf-16, ucs-2) or 32-bit (ucs-4)
- # [01:10] <zewt> ... utf-16 is not a superset of ASCII. sorry, this is too silly a conversation for me to bother with
- # [01:10] <caitp> unicode is a superset of ASCII, and if you look at patterns of bytes, it's possible that you can't tell the difference between certain single-character UTF16 strings, and certain null-terminated ASCII strings
- # [01:12] <zewt> no. an encoding which is a superset of ASCII is one where the same string of codepoints ("hello"), encoded with both encodings, results in the same block of data.
- # [01:13] <caitp> nonsense, we're in agreement that utf16 bye definition contains codepoints represented by a minimum of 16 bits, but that does not mean that codepoints between 0x0000 and 0x0080 aren't supersets of ascii, and can't look identical to certain ascii strings
- # [01:13] <caitp> obviously that depends on arch and doesn't include multi-character strings, byte that's irrelevant
- # [01:16] <zewt> you seem to have a deep misunderstanding of what "superset of ascii" means; it does not mean "every sequence of bytes that is valid ASCII is also valid UTF-16", it means "every sequence of bytes that is valid ASCII *has the same interpretation* in UTF-16", which is obviously false
- # [01:16] <zewt> anyhow, going to do something else now :)
- # [01:17] <caitp> that's one definition of superset, but when you get down to patterns of bits, it's not the case
- # [01:17] <caitp> but regardless I agree it's not a super important discussion to have
- # [01:17] <caitp> nobody cares about utf16 =)
- # [01:18] <gsnedders> Plenty of people care about UTF-16 and it's used plenty
- # [01:20] <caitp> it's not really used in any serious capacity for interchange of data
- # [01:20] <gsnedders> Plenty of CJK sites use it
- # [01:21] * Joins: smaug____ (~chatzilla@cs78246079.pp.htv.fi)
- # [01:25] * Quits: caitp (~caitp@CPE48f8b385c01c-CM602ad06daeed.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
- # [01:25] * Quits: seventh (seventh@207-207-24-6.fwd.datafoundry.com) (Ping timeout: 255 seconds)
- # [01:32] * Joins: caitp (~caitp@CPE48f8b385c01c-CM602ad06daeed.cpe.net.cable.rogers.com)
- # [01:39] * Joins: Rastus_Vernon (uid15187@wikimedia/Rastus-Vernon)
- # [01:44] * Quits: jarek (~jarek@unaffiliated/jarek) (Quit: jarek)
- # [01:46] * Quits: josemanuel (~josemanue@186.Red-79-147-198.dynamicIP.rima-tde.net) (Quit: Saliendo)
- # [01:58] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [01:59] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Remote host closed the connection)
- # [02:00] * Quits: weinig (~weinig@98.234.191.242) (Quit: weinig)
- # [02:13] * Joins: rxgx (uid22483@gateway/web/irccloud.com/x-oegkyagzlrqzunru)
- # [02:24] * Quits: JosephSilber (~Joseph@ool-44c3e80a.static.optonline.net) (Ping timeout: 264 seconds)
- # [02:25] * Quits: annevk (~annevk@77-57-114-66.dclient.hispeed.ch) (Ping timeout: 244 seconds)
- # [02:27] * Quits: KevinMarks (~yaaic@2607:fb90:50f:a9a8:6abe:12eb:144e:ce27) (Ping timeout: 240 seconds)
- # [02:27] * Quits: smaug____ (~chatzilla@cs78246079.pp.htv.fi) (Ping timeout: 240 seconds)
- # [02:32] * Joins: KevinMarks (~yaaic@2607:fb90:50f:a9a8:7878:7152:cf82:d30)
- # [02:32] * Joins: JosephSilber (~Joseph@ool-44c3e80a.static.optonline.net)
- # [02:38] * Quits: KevinMarks (~yaaic@2607:fb90:50f:a9a8:7878:7152:cf82:d30) (Ping timeout: 240 seconds)
- # [02:40] * Joins: KevinMarks (~yaaic@2607:fb90:2204:b427:8056:ba61:c03c:5098)
- # [02:42] * Joins: annevk (~annevk@77-57-114-66.dclient.hispeed.ch)
- # [02:43] * Quits: espadrine (~ttyl@AMontsouris-158-1-51-253.w92-128.abo.wanadoo.fr) (Ping timeout: 264 seconds)
- # [02:44] * Joins: bnicholson (~bnicholso@24.130.57.109)
- # [02:50] * Joins: jungkees (uid24208@gateway/web/irccloud.com/x-nxvwulexlopvcbno)
- # [02:55] * Joins: espadrine (~ttyl@AMontsouris-158-1-64-238.w92-128.abo.wanadoo.fr)
- # [02:59] * Joins: xiinotulp (~plutoniix@node-rvy.pool-180-180.dynamic.totbb.net)
- # [03:02] * Quits: plutoniix (~plutoniix@node-10tu.pool-180-180.dynamic.totbb.net) (Ping timeout: 240 seconds)
- # [03:05] * Joins: yutak (~yutak@2401:fa00:4:1000:26be:5ff:fe0d:e1d5)
- # [03:10] * Joins: kochi (~kochi@2401:fa00:4:1000:26be:5ff:fe03:db82)
- # [03:12] <caitp> nah, you're an ideographic or phonetic language, where you don't need two+ characters for every consonant and vowel, even with utf8 where your average cjk character is 3 bytes, it still doesnt make utf16 massive savings
- # [03:12] <caitp> whether it's used or not is besides the point, it's still not heavily used for interchange
- # [03:13] <caitp> we use it internally because it's slightly easier to work with, but for interchange it doesn't make a whole lot of sense
- # [03:13] <caitp> slightly bigger characters, but fewer characters used
- # [03:16] <caitp> i'd attribute the fact that actual documents use it more to the nature of tools than anything else
- # [03:21] <caitp> but it's not really a storage size win, it's not a network traffic performance win
- # [03:21] <caitp> not that any of it really matters a whole lot
- # [03:50] <MikeSmith> caitp: so I've been wondering how things will end up evolving with the big js mvc frameworks once web components actually becomes a cross-browser-implemented part of the platform
- # [03:51] <MikeSmith> if it ever does
- # [03:51] <caitp> well, we're hoping it does, but these frameworks aren't just about drawing pretty widgets
- # [03:51] <caitp> they're about application structure, right
- # [03:51] <MikeSmith> sure yeah I realize that
- # [03:52] <caitp> so I guess the thing that happens is, ideally, web components and other parts of the framework are easy to test, and it makes it nice and easy for us to help people structure applications, large and small
- # [03:52] <MikeSmith> it's not clear to me how much of, e.g., angular is handling the bits that web components does natively
- # [03:52] <MikeSmith> ok
- # [03:53] <caitp> s/framework/platform/
- # [03:53] * Quits: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com) (Remote host closed the connection)
- # [03:55] <caitp> well, a good answer to that question is "look at the angular 2.0 prototype stuff", a big issue that they're dealing with is fitting the web component model into an application framework, IE fitting them into the dependency injection model, and making them aware of their surrounding DOM nodes
- # [03:55] <caitp> it's pretty interesting, and it's not a super easy problem to solve as web components exists currently
- # [03:56] <MikeSmith> so that's another question I had
- # [03:56] <MikeSmith> which is, what's lacking in web components as it exists currently
- # [03:57] <MikeSmith> I mean, what have you seen that angular could use that web components should ideally provide but doesn't yet
- # [03:58] <MikeSmith> I was thinking about this today after seeing abarth's message about his <marquee>-in-js implementation
- # [03:59] <MikeSmith> in particular https://groups.google.com/a/chromium.org/d/msg/blink-dev/sQndrT36l1A/b9fJoUK3RAUJ
- # [03:59] <MikeSmith> "There were a couple things that I couldn't implement correctly because they're magic pieces of the platform we haven't explained yet..."
- # [04:02] <caitp> I've been following that thread a bit, but I'm not sure of the magic necessary for marquee --- but I guess what we're dealing with is, custom elements are always instantiated asynchronously (as far as I'm aware), and you can't really do any magic like inject some parameters into their "constructors", if such a thing were to exist. the hack around it is to do the dependency injection logic in the attach callback
- # [04:03] <caitp> so in other words the platform doesn't enable that natively, and that's our mechanism for making controls aware of their relationship to the application
- # [04:03] <caitp> and the whole asynchronous "upgrading" of elements has other issues WRT testability, which I think have been raised with the test-the-web-forward people
- # [04:05] * Joins: Goplat (~goplat@reactos/developer/Goplat)
- # [04:06] <MikeSmith> as far as the testing issue goes, the subset of the test-the-web-forward people working on writing tests for web components and reviewing those tests are actually the same people from Google who implemented web components in blink
- # [04:07] <MikeSmith> so I think we're planning on them to also come up with some solution to any special testing issues it creates
- # [04:07] <caitp> i expect so
- # [04:09] * Joins: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com)
- # [04:09] * Quits: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com) (Remote host closed the connection)
- # [04:09] <caitp> there are some other things that are sort of frustrating, but I only really hear about it during meetings, since I'm working on other areas at the moment. might be some of it available in the meeting notes
- # [04:10] * Joins: sak_to (~sak_to@184.105.235.195)
- # [04:12] <caitp> yeah, looks like a lot of the discussion is recorded
- # [04:14] * Joins: karlcow (~karl@nerval.la-grange.net)
- # [04:16] <MikeSmith> caitp: I guess I'll trust that that folks from angular are getting the feedback to dglazkov and hayato and others working on the web-components implementations and specs
- # [04:17] <caitp> i've suggested it, but I don't know if it's getting there. have to ask dglazkov if he's heard anything
- # [04:17] * Joins: poona (~poona@117.202.122.145)
- # [04:17] * Quits: poona (~poona@117.202.122.145) (Changing host)
- # [04:17] * Joins: poona (~poona@unaffiliated/poona)
- # [04:24] * Joins: sak_to_ (~sak_to@24-52-206-247.cable.teksavvy.com)
- # [04:27] * Quits: sak_to (~sak_to@184.105.235.195) (Ping timeout: 244 seconds)
- # [04:34] * Quits: bnicholson (~bnicholso@24.130.57.109) (Remote host closed the connection)
- # [04:56] <abarth> MikeSmith: that's one of the reasons to use web components internally in the engine: you discover what's missing
- # [04:56] <abarth> MikeSmith: One thing I didn't mention on the list is I haven't figured out how to do inline event handlers properly
- # [04:57] <abarth> <marquee onbounce="...">Foo</marquee>
- # [04:57] <abarth> setting up the right JS environment for the ... is a bit subtle
- # [04:57] <MikeSmith> oh
- # [04:57] <abarth> the engine does that all the time, but it's not clear how to authors can do precisely the same thing
- # [04:57] <abarth> I think I've got the script version working right
- # [04:58] <abarth> foo.onbounce = ...
- # [04:58] <abarth> but the attribute version is subtly different
- # [04:58] <MikeSmith> it's cool to see these gaps getting exposed
- # [04:58] * Quits: montecfel (~montecfel@gateway/tor-sasl/montecfel) (Quit: montecfel)
- # [04:59] <MikeSmith> though I guess in the short term you'd just like to have a way to make it work
- # [05:01] <MikeSmith> also incidentally I guess this could be added to the list of reasons why inlining event handlers is not a best practice
- # [05:02] <abarth> I'm not really injecting much opinion
- # [05:02] <abarth> just trying to make thing A work the same way as thing B
- # [05:09] * Quits: sak_to_ (~sak_to@24-52-206-247.cable.teksavvy.com) (Remote host closed the connection)
- # [05:10] * Joins: sak_to (~sak_to@184.105.235.195)
- # [05:15] * Quits: caitp (~caitp@CPE48f8b385c01c-CM602ad06daeed.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
- # [05:18] * Joins: bholley (~bholley@98.210.101.88)
- # [05:27] * Quits: zaal (~zaal@cpc65346-nrwh11-2-0-cust48.4-4.cable.virginm.net) (Ping timeout: 264 seconds)
- # [05:33] * Quits: bholley (~bholley@98.210.101.88) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [05:49] * Joins: bholley (~bholley@98.210.101.88)
- # [05:58] * Quits: bholley (~bholley@98.210.101.88) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [06:02] * Joins: mven (~textual@ip68-104-38-84.lv.lv.cox.net)
- # [06:03] * Quits: mven (~textual@ip68-104-38-84.lv.lv.cox.net) (Max SendQ exceeded)
- # [06:04] * Joins: mven (~textual@ip68-104-38-84.lv.lv.cox.net)
- # [06:05] * Quits: mven (~textual@ip68-104-38-84.lv.lv.cox.net) (Client Quit)
- # [06:08] * Joins: mven (~textual@ip68-104-38-84.lv.lv.cox.net)
- # [06:16] * Joins: caitp (~caitp@CPE48f8b385c01c-CM602ad06daeed.cpe.net.cable.rogers.com)
- # [06:18] * Joins: a-ja (~Instantbi@70.230.145.246)
- # [06:19] * Joins: roc (~chatzilla@121-99-139-9.bng1.tvc.orcon.net.nz)
- # [06:20] * Joins: bholley (~bholley@98.210.101.88)
- # [06:20] * Quits: caitp (~caitp@CPE48f8b385c01c-CM602ad06daeed.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
- # [06:32] * Quits: bholley (~bholley@98.210.101.88) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [06:47] * Quits: mven (~textual@ip68-104-38-84.lv.lv.cox.net) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [06:53] * Joins: mven (~textual@ip68-104-38-84.lv.lv.cox.net)
- # [06:57] * Joins: ricea (~ricea@2401:fa00:4:1000:b6b5:2fff:feca:47f8)
- # [06:58] * Quits: kochi (~kochi@2401:fa00:4:1000:26be:5ff:fe03:db82) (Remote host closed the connection)
- # [07:00] * Joins: BigBangUDR (~Thunderbi@220.225.242.27)
- # [07:02] * Joins: kochi (~kochi@2401:fa00:4:1000:26be:5ff:fe03:db82)
- # [07:09] * Joins: zcorpan (~zcorpan@90-230-218-37-no135.tbcn.telia.com)
- # [07:10] * Quits: xiinotulp (~plutoniix@node-rvy.pool-180-180.dynamic.totbb.net) (Quit: จรลี จรลา)
- # [07:18] * Quits: scrollback (scrollback@conference/jsconf/x-arkbcghccshawyis) (Remote host closed the connection)
- # [07:19] * Joins: 7F1AADEMT (scrollback@conference/jsconf/x-lplqubfdukfpdpec)
- # [07:24] * Quits: 7F1AADEMT (scrollback@conference/jsconf/x-lplqubfdukfpdpec) (Remote host closed the connection)
- # [07:25] * Joins: scrollback (scrollback@conference/jsconf/x-nhsennvupzusmvzj)
- # [07:26] * Quits: Rastus_Vernon (uid15187@wikimedia/Rastus-Vernon) (Quit: Connection closed for inactivity)
- # [07:26] * Joins: sak_to_ (~sak_to@24-52-206-247.cable.teksavvy.com)
- # [07:29] * Quits: sak_to (~sak_to@184.105.235.195) (Ping timeout: 240 seconds)
- # [07:41] * Joins: zdobersek (~zan@109.201.154.176)
- # [07:56] * Quits: BigBangUDR (~Thunderbi@220.225.242.27) (Quit: BigBangUDR)
- # [07:57] * Joins: BigBangUDR (~Thunderbi@220.225.242.27)
- # [08:01] * Quits: sak_to_ (~sak_to@24-52-206-247.cable.teksavvy.com) (Remote host closed the connection)
- # [08:01] * Quits: globbot (~logbot@lump.glob.com.au) (Remote host closed the connection)
- # [08:01] * Joins: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com)
- # [08:01] * Joins: globbot (~logbot@lump.glob.com.au)
- # [08:05] * Quits: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com) (Ping timeout: 244 seconds)
- # [08:07] * Joins: BigBangU1 (~Thunderbi@220.225.242.27)
- # [08:08] * Quits: BigBangUDR (~Thunderbi@220.225.242.27) (Ping timeout: 244 seconds)
- # [08:08] * Quits: scrollback (scrollback@conference/jsconf/x-nhsennvupzusmvzj) (Remote host closed the connection)
- # [08:09] * Joins: 17SAAC7EF (scrollback@conference/jsconf/x-cschuyudcaflbkvp)
- # [08:10] <annevk> krit: ah okay, guess I have some time to read up on SVG then :-)
- # [08:10] * Joins: nicolasbadia (~nicolasba@78.209.78.103)
- # [08:11] * Quits: kinetik (~kinetik@121-98-135-7.bng1.nct.orcon.net.nz) (Quit: leaving)
- # [08:12] <annevk> gsnedders: utf-16 is the only encoding that's not ASCII-compatible
- # [08:13] * Joins: weinig (~weinig@98.234.191.242)
- # [08:14] * Joins: Streusel (~Anonymous@unaffiliated/streusel)
- # [08:14] * Quits: BigBangU1 (~Thunderbi@220.225.242.27) (Ping timeout: 264 seconds)
- # [08:15] * Joins: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com)
- # [08:19] * Joins: BigBangUDR (~Thunderbi@220.225.242.27)
- # [08:22] * Quits: weinig (~weinig@98.234.191.242) (Quit: weinig)
- # [08:23] * Joins: a-ja1 (~Instantbi@70.230.145.120)
- # [08:23] * Quits: a-ja (~Instantbi@70.230.145.246) (Ping timeout: 240 seconds)
- # [08:26] * Quits: Goplat (~goplat@reactos/developer/Goplat) (Remote host closed the connection)
- # [08:38] <MikeSmith> hsivonen: about https://bugzilla.mozilla.org/show_bug.cgi?id=1024447#c12 I don't think the EME spec specifies the "keysystem" content attribute for the source element sufficiently, and it would be better to have it defined properly in the HTML spec -- provided that the attribute is actually suppored in UAs.
- # [08:38] <MikeSmith> hsivonen: I mean, for one thing, the relevant text in the EME spec reads in whole just, "The keysystem content attribute is added to HTMLSourceElement."
- # [08:39] * Quits: tomaw (tom@freenode/staff/tomaw) (Ping timeout: 610 seconds)
- # [08:39] * Quits: JosephSilber (~Joseph@ool-44c3e80a.static.optonline.net) (Ping timeout: 272 seconds)
- # [08:40] <annevk> MikeSmith: did you file a bug on that?
- # [08:40] <annevk> MikeSmith: you should really file bugs :-)
- # [08:40] <SamB> MikeSmith: what, no "TODO: flesh out"?
- # [08:40] * Joins: tomaw (tom@freenode/staff/tomaw)
- # [08:46] * Joins: markkes (~markkes@62.207.90.201)
- # [08:49] * Quits: KevinMarks (~yaaic@2607:fb90:2204:b427:8056:ba61:c03c:5098) (Ping timeout: 240 seconds)
- # [08:50] * Joins: KevinMarks (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
- # [08:55] * Joins: mpt (~mpt@nat/canonical/x-ymaylrzqndrmxqle)
- # [08:55] * Quits: mpt (~mpt@nat/canonical/x-ymaylrzqndrmxqle) (Changing host)
- # [08:55] * Joins: mpt (~mpt@canonical/mpt)
- # [08:55] <annevk> JakeA: Headers is now defined in more detail
- # [08:55] * Joins: Guest6359 (~kvirc@158.148.7.59)
- # [09:00] <JakeA> annevk: cool. Will review in detail tomorrow. Stupid I/O deadline today.
- # [09:01] <annevk> JakeA: I'll mostly be working on SVG this week so that seems fine
- # [09:02] <annevk> JakeA: you already in SF?
- # [09:02] * Quits: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com) (Remote host closed the connection)
- # [09:03] * Joins: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com)
- # [09:06] <JakeA> annevk: nah, heading out on Friday
- # [09:07] * Joins: Ducki (~Ducki@137.116.197.171)
- # [09:08] * Quits: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com) (Ping timeout: 255 seconds)
- # [09:09] * Quits: KevinMarks (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
- # [09:10] * Quits: rxgx (uid22483@gateway/web/irccloud.com/x-oegkyagzlrqzunru) (Quit: Connection closed for inactivity)
- # [09:10] * Joins: KevinMarks (~yaaic@2607:fb90:2207:4d65:547b:63f2:9f85:cf9c)
- # [09:11] * Parts: a-ja1 (~Instantbi@70.230.145.120)
- # [09:14] * Quits: kochi (~kochi@2401:fa00:4:1000:26be:5ff:fe03:db82) (Remote host closed the connection)
- # [09:17] * Joins: kochi (~kochi@2401:fa00:4:1000:26be:5ff:fe03:db82)
- # [09:17] * Joins: kochi1 (~kochi@2401:fa00:4:1000:26be:5ff:fe03:db82)
- # [09:20] * Joins: davve (~user@83.218.67.123)
- # [09:21] * Joins: cheron (~cheron@unaffiliated/cheron)
- # [09:28] * Joins: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com)
- # [09:32] * Quits: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com) (Ping timeout: 245 seconds)
- # [09:34] * annevk finds out jungkees has been busy
- # [09:51] * Joins: sankha93 (uid12218@fsf/emeritus/sankha93)
- # [09:51] <mathiasbynens> zcorpan: you called it! (re: DnD/picture)
- # [09:56] * Joins: ianchak (~quassel@94-21-177-142.pool.digikabel.hu)
- # [09:59] * Joins: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com)
- # [10:03] * Quits: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com) (Ping timeout: 264 seconds)
- # [10:03] * Joins: sicking (~sicking@118-163-10-190.HINET-IP.hinet.net)
- # [10:10] <zcorpan> mathiasbynens: what do you mean?
- # [10:10] * Quits: Streusel (~Anonymous@unaffiliated/streusel) (Quit: Computer has gone to sleep.)
- # [10:14] <jungkees> annevk: https://github.com/slightlyoff/ServiceWorker/issues/235
- # [10:15] <jungkees> annevk: with this particular thread, what should be fixed more?
- # [10:17] <annevk> jungkees: looking at https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#default-method
- # [10:17] <annevk> jungkees: step 3.2 needs to be removed
- # [10:18] <annevk> jungkees: if response is a network error you need to reject with a TypeError
- # [10:18] <annevk> jungkees: and you need to explain how this relates to the overall lifecycle
- # [10:22] * Quits: karlcow (~karl@nerval.la-grange.net) (Quit: :tiuQ tiuq sah woclrak)
- # [10:22] * Joins: richt (~richt@83.218.67.123)
- # [10:24] <jungkees> annevk: alright
- # [10:29] * Joins: karlcow (~karl@nerval.la-grange.net)
- # [10:31] <annevk> jungkees: I think the spec still does not do a great job of explaining the overall model and how all the various pieces interact with it
- # [10:32] <annevk> jungkees: e.g. what is .default() plugging into that makes "handle a fetch" return the correct thing?
- # [10:33] <jungkees> annevk: will add them after sorting out the hooks to Fetch this week
- # [10:34] * Joins: SteveF (~chatzilla@cpc3-nmal20-2-0-cust916.19-2.cable.virginm.net)
- # [10:34] <annevk> jungkees: ah yeah, Nikhil opened an issue for that
- # [10:35] * Quits: sicking (~sicking@118-163-10-190.HINET-IP.hinet.net) (Quit: sicking)
- # [10:37] <jungkees> annevk: I'll add informal sections to explain the overall hook model and the use of fetch API in SW context xref to Fetch esp. Request/Response/Fetch part
- # [10:38] <annevk> jungkees: I'm not talking non-normative
- # [10:38] <annevk> jungkees: my concern is with the normative model
- # [10:38] <annevk> jungkees: the current setup is not sufficient
- # [10:39] <mathiasbynens> zcorpan: i assumed it would be simple & a no-brainer but you realized logic doesn’t necessarily apply in the world of Web Standards
- # [10:39] <jungkees> annevk: as I'll remove the Request/Response interfaces from SW
- # [10:39] <zcorpan> mathiasbynens: ah. yeah
- # [10:39] * Joins: smaug____ (~chatzilla@cs78246079.pp.htv.fi)
- # [10:40] * Joins: sicking (~sicking@118-163-10-190.HINET-IP.hinet.net)
- # [10:53] * Quits: Lachy (~Lachy@cm-84.215.104.248.getinternet.no) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [11:00] * Joins: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com)
- # [11:02] * Joins: adactio (~adactio@212.42.170.121)
- # [11:05] * Quits: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com) (Ping timeout: 272 seconds)
- # [11:17] * Joins: zaal (~zaal@cpc65346-nrwh11-2-0-cust48.4-4.cable.virginm.net)
- # [11:22] <krit> annevk: am back… back online
- # [11:24] <krit> zcorpan: hi. I uploaded a couple of DOMRect,DOMPoint and DOMQuad tests. If you have time, please review them. https://github.com/w3c/csswg-test/pulls #551-#553
- # [11:24] <zcorpan> krit: ok nice
- # [11:26] <annevk> krit: okay, how to best do this?
- # [11:26] <smaug____> heycam: would you need some ["foo", "bar"] defaults values for the dictionary/eventinit ?
- # [11:26] <annevk> krit: it seems your best bet is assuming the model HTML has outlined
- # [11:26] <krit> annevk: we could switch to #svg on w3c irc server… it is recorded as well IIRC
- # [11:27] <krit> annevk: we can discuss it here. Just not sure if we produce to much noise
- # [11:27] <annevk> krit: here is fine, this channel is known to be noisy
- # [11:27] <krit> annevk: ok
- # [11:28] <krit> annevk: agree that we should start from the HTML model
- # [11:28] <krit> annevk: For standalone SVG’s the model should be identical
- # [11:28] <krit> annevk: not much different to inline SVG
- # [11:28] <annevk> krit: given that, it's not clear why https://svgwg.org/specs/integration/ is needed, it seems the text should just be in https://svgwg.org/svg2-draft/
- # [11:29] <krit> annevk: Problem comes with fetching further resources… more specifically, SVG as fetch resource
- # [11:29] <krit> annevk: I think the SVG WG wanted to produce an anchor for specs using SVG
- # [11:30] <krit> annevk: something light weighted that provides all reference modes
- # [11:30] <krit> annevk: also, it would apply to all SVG specs, regardless of the version W3C status as REC and so on
- # [11:31] <annevk> krit: I think that's the wrong way to think about SVG. The way I see it is that we have some new elements (elements in the SVG namespace) and a special processing mode for XML with an "image/svg+xml" MIME type loaded as image
- # [11:31] <krit> annevk: I think for the security model, the WG would be open to put it back to SVG2.
- # [11:32] <krit> annevk: that doesn’t seem to be the biggest issue :)
- # [11:32] <annevk> krit: so you'd need to define the processing model for these new elements and you need to define a special algorithm for the "image" case that disables scripting and such
- # [11:33] <krit> annevk: there might be more modes…. SVG OpenType fonts could have a different set
- # [11:33] <annevk> krit: fair, that might be a third
- # [11:33] <annevk> krit: although I think fonts and images have roughly similar security characteristics
- # [11:33] <krit> annevk: At least for SVG images and SVG external resources (<pattern>, <filter>) we already agreed on the same policy
- # [11:34] <krit> annevk: agree, just that SVG as font gets context information to color the font
- # [11:34] <krit> annevk: but I am fine with keeping SVG as font as a special case that we handle later.
- # [11:35] * Quits: karlcow (~karl@nerval.la-grange.net) (Ping timeout: 240 seconds)
- # [11:35] <krit> annevk: so far there is just one implementer willing to implement SVG OpenType fonts
- # [11:36] <krit> annevk: back to SVG as document and SVG as image/svg+xml
- # [11:36] <annevk> krit: https://etherpad.mozilla.org/fixing-svg-processing
- # [11:39] <annevk> krit: so <svg:image> is like <img> these days?
- # [11:39] <krit> annevk: it ought to be
- # [11:39] <annevk> krit: if it loads SVG that SVG cannot execute script?
- # [11:39] <annevk> krit: sounds good
- # [11:39] <krit> annevk: still need to add cross origin attribute
- # [11:39] <krit> annevk: yes, same model as <img>
- # [11:40] <annevk> krit: that's fine, as long as the security model is equivalent
- # [11:41] <annevk> krit: do you know why CSS was seen as a risk? is it the fetching?
- # [11:41] * Joins: Lachy (~Lachy@213.166.174.2)
- # [11:41] <krit> annevk: the WebAppsSec WG wanted to disable styling in general… they feared that some data could be used to trick the user
- # [11:41] <krit> annevk: example is coloring the image dependent on viewport size
- # [11:42] <krit> annevk: by using media queries and selectors
- # [11:42] <annevk> krit: ah okay, so the attack vector would be anything that can read from the environment
- # [11:42] <krit> annevk: that was the strongest argument, yes
- # [11:43] <krit> annevk: while “read” does not mean that the attacker can read
- # [11:43] <annevk> hmm yeah, need better word
- # [11:43] <krit> annevk: just a different display behavior dependent on context
- # [11:44] <annevk> krit: so https://svgwg.org/svg2-draft/linking.html#processingIRI has a long list of things that can fetch
- # [11:45] <krit> annevk: let me check if it is accurate
- # [11:45] <annevk> krit: for each of those we need to figure out what happens with the resources retrieved
- # [11:46] <krit> annevk: a view elements can’t anymore: mask, filter.. otherwise correct
- # [11:46] <annevk> few?
- # [11:46] <krit> annevk: yes :)
- # [11:47] <krit> annevk: I think with the exception of script, a, (cursor?) the policy can be the same for all elements
- # [11:47] <annevk> krit: can they all reference externally too?
- # [11:47] <krit> annevk: yes
- # [11:47] <annevk> krit: but they're a bit different from the SVG as image case right?
- # [11:48] <krit> annevk: I don’t think so...
- # [11:48] <krit> annevk: actually they can'y
- # [11:48] <krit> t
- # [11:48] <annevk> krit: you basically extract some elements to act as a paint server or some such?
- # [11:48] <krit> annevk: they must be treated the same
- # [11:49] <krit> annevk: <use>, <text> and a couple of other elements reference elements for drawing, other elements are pain sources…. to differ here is not necessary
- # [11:49] <krit> s/pain/paint/
- # [11:49] <annevk> well it seems good to make a difference since you'd invoke different algorithms
- # [11:50] <krit> annevk: in this case there are 4:
- # [11:50] <annevk> one is draw an image given a response object and some height/width criterea
- # [11:50] <annevk> the others would be not that :)
- # [11:50] <krit> annevk: image, as paint source(gradients patterns), as operator (mask, clipPath, filter)
- # [11:51] <krit> annevk: and referenced (external) elements that are drawn in the context of the current document
- # [11:51] <krit> annevk: example for the last: <use xlink:href=“other.svg#path/>
- # [11:51] <krit> annevk: A <path> element is “copied” from the document other.svg and added in the place of <use>
- # [11:52] <annevk> krit: but you don't actually change the DOM, correct?
- # [11:52] <annevk> krit: this is some kind of shadow DOM thingy?
- # [11:52] <krit> annevk: no, it is implemented with shadow DOM
- # [11:52] <krit> annevk: right
- # [11:52] <annevk> same-origin restriction?
- # [11:53] <krit> annevk: none defined yet
- # [11:53] <krit> annevk: part of the new security model :)
- # [11:53] <annevk> do scripts execute?
- # [11:53] <annevk> I see
- # [11:53] <annevk> please start calling it processing model ;)
- # [11:53] <annevk> security is just one aspect of the many things that are not defined here :)
- # [11:53] <krit> annevk: that was brought up recently : <use xlink:href=“other.svg#g”/> that references <g><script></script></g>
- # [11:54] <krit> annevk: and it is not executed
- # [11:54] * Quits: sicking (~sicking@118-163-10-190.HINET-IP.hinet.net) (Quit: sicking)
- # [11:54] <annevk> okay, so potentially less volatile than HTML imports
- # [11:54] <krit> annevk: if implemented correctly :)
- # [11:54] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [11:56] <annevk> krit: does <use> have an object model?
- # [11:56] <krit> annevk: it was removed
- # [11:57] <annevk> krit: what about hit testing on <use> does that return the <use> element?
- # [11:57] <krit> annevk: so hit testing applies in general to <use>… do you mean event handlers?
- # [11:58] <annevk> krit: what would elementFromPoint() return?
- # [11:58] <krit> annevk: something like onmouseover may apply… need to check
- # [11:58] <annevk> krit: but yes, event handlers, :hover, etc.
- # [11:58] <annevk> krit: note that hit testing can return different things depending on who is asking
- # [11:58] <krit> annevk: elementFromPoint would not go into the <use> tree
- # [11:58] <annevk> krit: hit testing not being defined is of course problematic for that...
- # [11:59] * Quits: Kolombiken1 (~Adium@94.137.124.2) (Quit: Leaving.)
- # [11:59] <krit> annevk: there are no restrictions to hit testing for <use>… think that is defined
- # [11:59] * Quits: mpt (~mpt@canonical/mpt) (Ping timeout: 245 seconds)
- # [11:59] * Joins: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com)
- # [12:00] <krit> annevk: “The event handling for the non-exposed tree works as if the referenced element had been textually included as a deeply cloned child of the ‘use’ element, and events are dispatched according to the shadow tree event dispatching algorithm [SHADOWDOM]."
- # [12:02] <annevk> krit: so basically this is defined in terms of shadow DOM, except shadow DOM does not actually provide encapsulation at the moment
- # [12:02] <annevk> krit: only Chrome has such a thing
- # [12:02] <krit> annevk: yes
- # [12:03] <annevk> mkay, I guess you guys can clean that up at some point, hit testing should prolly follow from that
- # [12:03] <krit> annevk: is there an example in HTML?
- # [12:03] <krit> annevk: how HTML defines hit testing?
- # [12:04] <annevk> krit: nobody defines hit testing
- # [12:04] <annevk> krit: it's a big problem
- # [12:04] <krit> annevk: that sounds like a meme
- # [12:04] * Quits: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com) (Ping timeout: 252 seconds)
- # [12:04] <annevk> might be something about anne and being a broken record on hit testing
- # [12:08] <annevk> krit: so is <use> non-isolated or isolated?
- # [12:09] <krit> annevk: not isolated for styling, isolated for DOM
- # [12:09] <annevk> hmm
- # [12:10] <krit> annevk: hooking up <use> on shadow DOM is new… there might potentially be changes
- # [12:10] <annevk> krit: so <use> fetches a resources, parses it as XML, then locates node by ID and deepclones it into the shadow tree?
- # [12:11] <annevk> krit: and when it parsers it does so with scripting disabled
- # [12:11] * Joins: mpt (~mpt@canonical/mpt)
- # [12:12] <krit> annevk: so, what happens in implementations is that we fetch the document and run it though the parser… then we look for the id and deep clone it (some implementations just create the render tree)
- # [12:12] <krit> if you just create the render tree, you exclude Scripting already
- # [12:13] <annevk> well the render tree is created from the shadow tree
- # [12:13] <annevk> and the parser is what executes script
- # [12:16] <krit> annevk: animations can not be disables=d by author ATM. This is one problem with Canvas’s drawImage() “first frame” doesn’t really apply for SVG… in this case the UA indeed disables the animation
- # [12:17] <annevk> okay
- # [12:18] <annevk> krit: "(result of rendering to a bitmap or something else?)" is about how we'd define it; how it's implemented is immaterial
- # [12:18] * Joins: sicking (~sicking@118-163-10-190.HINET-IP.hinet.net)
- # [12:19] <krit> annevk: ok, defining it by bitmap is the easiest
- # [12:19] * Quits: Guest6359 (~kvirc@158.148.7.59) (Ping timeout: 246 seconds)
- # [12:19] <krit> annevk: (resolution depends on the device of course)
- # [12:23] <krit> annevk: xref == xlink:href ?
- # [12:23] <annevk> krit: cross-reference
- # [12:23] <krit> annevk: makes sense :P
- # [12:23] * Quits: sicking (~sicking@118-163-10-190.HINET-IP.hinet.net) (Ping timeout: 272 seconds)
- # [12:25] <krit> annevk: beside elementFromPoint() we have CSSOM calls like getClientsRect() and so on… which of course don’t look into the shadow tree
- # [12:25] <krit> annevk: not sure if there is a common expression for these kind of interfaces
- # [12:26] <annevk> krit: layout APIs?
- # [12:26] <krit> annevk: maybe
- # [12:26] <annevk> krit: render tree APIs I suppose, as they operate on that
- # [12:26] <krit> annevk: basically all APIs in http://dev.w3.org/csswg/cssom-view/ :P
- # [12:27] * Joins: sicking (~sicking@118-163-10-190.HINET-IP.hinet.net)
- # [12:28] <krit> annevk: CSS WG refuses to deifne render tree. so layout actually sounds good
- # [12:29] <annevk> krit: is there anything in particular with getClientsRect()?
- # [12:29] <annevk> krit: it seems if you use it on <use> it would reveal the render size of the shadow tree?
- # [12:31] <krit> annevk: <use> it would
- # [12:31] <krit> annevk: *it would
- # [12:31] <annevk> krit: seems like <use> should be same-origin / CORS
- # [12:31] <krit> annevk: yes… it is in Firefox
- # [12:32] * Joins: charl_ (~charl@maidcafe.nl)
- # [12:32] <krit> annevk: In FF the same for paint sources and operators
- # [12:33] <krit> annevk: And it shouldn’t be a problem to add this requirement in the spec. External references are just implemented in Firefox so far.
- # [12:33] <krit> annevk: and Opera <= 12
- # [12:33] <annevk> krit: I remember there was a problem with CSS and SVG together?
- # [12:34] <annevk> krit: where for CSS we did not want to have that restriction and so we ended up making the distinction through fragment identifiers?
- # [12:34] <krit> annevk: you probably mean the mask-image: url() problem, where url() can reference an image or an SVG resource?
- # [12:35] * Joins: montecfel (~montecfel@gateway/tor-sasl/montecfel)
- # [12:35] <krit> annevk: well, we went away from present fragment switching and required the same policies for both
- # [12:35] <krit> annevk: this indeed seems critical with same origin requirement for SVG resources :/
- # [12:36] <annevk> krit: okay, so if that's always same-origin that's great
- # [12:36] <krit> annevk: hm… need to think about it
- # [12:36] * Joins: Kolombiken (~Adium@gateway.creuna.se)
- # [12:36] <krit> annevk: well, for use definitely
- # [12:36] <krit> annevk: for paint sources/operators maybe not so much because if the url() CSS function issue
- # [12:36] <krit> s/if/of/
- # [12:37] <annevk> I think I remember what I proposed to roc
- # [12:37] <krit> annevk: Ah! FF added the restriction because the resource was allowed to fetch more data
- # [12:37] <krit> annevk: IIRC
- # [12:38] <krit> annevk: and with the new model, operators and paint sources are not allowed to fetch anything no matter what
- # [12:38] <annevk> That we would make the cross-origin fetch, but if the resulting document was SVG, we would treat it as an error
- # [12:39] <annevk> krit: I thought you could still do some amount of discovery based on what gets masked on the page
- # [12:39] <krit> annevk: for clipPath yes, it affects hit testing
- # [12:39] <krit> annevk: that wasn’t seen as issue by the CSS WG when I brought it up
- # [12:40] <annevk> krit: yeah, so I'm thinking that blocking tainted SVG is probably the way to go (while allowing tainted images)
- # [12:40] <annevk> I'm not sure the CSS WG is the best place for security issues
- # [12:40] <annevk> It's not like CSS' processing model is very clear
- # [12:41] <krit> annevk: well, atm implementations fetch resources with certain policies… there is no checking for further policies after fetching
- # [12:41] <annevk> I'm not sure what that means
- # [12:42] <krit> annevk: you fetch a resource with same origin requirement, or you fetch it without any requirements… (to make it simple just the two cases)
- # [12:42] <annevk> sure
- # [12:42] <krit> annevk: once the implementation has the resource, it is assumed that everything is ok IIRC
- # [12:42] <annevk> but you can make a check once you get something back to see whether you want it
- # [12:42] <annevk> similarly to doing a content-type check as we sometimes do
- # [12:42] <krit> annevk: so if we fetch SVG without policies… then we do not check it a second time
- # [12:42] <annevk> yes, but we could, to make this work
- # [12:42] <krit> annevk: but do we do that today?
- # [12:43] <annevk> without the ridiculous check the url's fragment nonsense
- # [12:43] <krit> annevk: I mean somewhere?
- # [12:43] * Quits: sicking (~sicking@118-163-10-190.HINET-IP.hinet.net) (Quit: sicking)
- # [12:43] <annevk> well, SVG introduced this image or SVG problem
- # [12:43] <krit> annevk: true
- # [12:44] <annevk> and the way it was initially solved was by trying to distinguish them upfront by checking if the url had a fragment
- # [12:44] <annevk> which is broken
- # [12:44] <krit> annevk: yes
- # [12:44] <annevk> so either we create separate properties for the two cases or we distinguish after the fetch
- # [12:45] <annevk> and if you distinguish after the fetch between image and SVG, you can still discard one or the other if there's a problem
- # [12:45] <annevk> such as the response being tainted and being SVG
- # [12:45] <krit> annevk: to step back… masking does affect the visual output but does not contribute to hit testing
- # [12:45] <krit> annevk: it is just clip-path which does it
- # [12:45] <krit> annevk: so maybe we can limit it to clip-path only?
- # [12:46] <krit> annevk: clip-path property does not fetch images
- # [12:46] <annevk> my memory of the public-fx thread was that this was bigger
- # [12:46] <krit> annevk: bigger?
- # [12:47] * Joins: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com)
- # [12:48] <annevk> krit: http://lists.w3.org/Archives/Public/public-fx/2013AprJun/0046.html
- # [12:48] <krit> annevk: there is just one thing that could be exposed: rendering time… it take more time to render a mask than no mask
- # [12:48] <krit> annevk: so it could have affect on rAF
- # [12:48] <annevk> was about mask
- # [12:49] <annevk> http://lists.w3.org/Archives/Public/public-fx/2013AprJun/0021.html
- # [12:51] <krit> annevk: the first link still assumes that the document with the <mask> element can reference images from the same origin… which we don’t allow anymroe
- # [12:51] <krit> annevk: it must be in the document itself… no fetching
- # [12:52] <annevk> krit: so if you put a data URL there it'll always fail?
- # [12:53] <krit> annevk: dataURLs do not fetch by default, do they? they could have elements within that would try to fetch… which always fails.
- # [12:55] <annevk> krit: okay, I guess I see what you meant with respect to <mask>, you guys changed the model to be as "SVG as image" since that email exchange and now you think you can allow tainted responses
- # [12:55] <annevk> krit: does Firefox no longer do special casing for fragments then?
- # [12:55] <krit> annevk: hehe, right
- # [12:55] <krit> annevk: I don’t think it ever did?
- # [12:56] <krit> annevk: mask still just allows SVG resource in Gecko
- # [12:56] <annevk> okay, so it might be same-origin restricted at the moment?
- # [12:56] <krit> annevk: I think it is ATM
- # [12:58] <annevk> krit: okay, I want to take a break for a bit; I guess when we come back we should enumerate all the places that fetch
- # [12:59] <krit> annevk: ok, will be here
- # [12:59] <annevk> krit: prolly hour and a bit
- # [13:00] <krit> annevk: ok, thanks for looking into this!
- # [13:03] * Joins: laurensclaessen (~laurenscl@91.183.84.141)
- # [13:03] * Quits: laurensclaessen (~laurenscl@91.183.84.141) (Remote host closed the connection)
- # [13:03] * Joins: laurensclaessen (~laurenscl@91.183.84.141)
- # [13:08] * Quits: laurensclaessen (~laurenscl@91.183.84.141) (Client Quit)
- # [13:08] * Joins: laurensclaessen (~laurenscl@91.183.84.141)
- # [13:09] * Joins: caitp (~caitp@CPE48f8b385c01c-CM602ad06daeed.cpe.net.cable.rogers.com)
- # [13:16] * Quits: smaug____ (~chatzilla@cs78246079.pp.htv.fi) (Ping timeout: 240 seconds)
- # [13:19] * Joins: tantek (~tantek@c-24-118-60-123.hsd1.mn.comcast.net)
- # [13:25] * Quits: BigBangUDR (~Thunderbi@220.225.242.27) (Quit: BigBangUDR)
- # [13:26] * Joins: plutoniix (~plutoniix@node-rvy.pool-180-180.dynamic.totbb.net)
- # [13:27] * Quits: tantek (~tantek@c-24-118-60-123.hsd1.mn.comcast.net) (Quit: tantek)
- # [13:39] * Quits: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com) (Remote host closed the connection)
- # [13:40] * Joins: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com)
- # [13:44] * Quits: sak_to (~sak_to@24-52-206-247.cable.teksavvy.com) (Ping timeout: 240 seconds)
- # [13:47] * Joins: Ms2ger (~Ms2ger@48.205-242-81.adsl-dyn.isp.belgacom.be)
- # [13:58] * Quits: ianchak (~quassel@94-21-177-142.pool.digikabel.hu) (Ping timeout: 245 seconds)
- # [14:03] * Quits: laurensclaessen (~laurenscl@91.183.84.141) (Remote host closed the connection)
- # [14:08] * Quits: caitp (~caitp@CPE48f8b385c01c-CM602ad06daeed.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
- # [14:14] * Joins: newtron_ (~newtron@76-10-135-135.dsl.teksavvy.com)
- # [14:17] * Joins: laurensclaessen (~laurenscl@91.183.84.141)
- # [14:21] * Joins: tj_vantoll (~Adium@2601:4:5380:eba:685e:17c7:fd5c:59ba)
- # [14:23] * Joins: caitp (~caitp@CPE48f8b385c01c-CM602ad06daeed.cpe.net.cable.rogers.com)
- # [14:25] <annevk> krit: https://svgwg.org/ Streaming Draft link is broken
- # [14:26] <krit> annevk: doesn’t work for me too
- # [14:27] * Quits: nicolasbadia (~nicolasba@78.209.78.103) (Ping timeout: 240 seconds)
- # [14:28] <krit> annevk: very strange, it is in the repository
- # [14:29] * Joins: nicolasbadia (~nicolasba@78.209.78.103)
- # [14:30] <krit> annevk: reported it to heycam, all I can do at the moment
- # [14:30] <annevk> krit: k
- # [14:30] <annevk> krit: https://etherpad.mozilla.org/fixing-svg-processing
- # [14:30] <annevk> krit: trying to complete the list of elements that fetch
- # [14:31] <annevk> krit: then I guess we can collect them into buckets somehow
- # [14:35] * Quits: Lachy (~Lachy@213.166.174.2) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [14:40] <annevk> krit: <style> does external references right?
- # [14:40] <krit> annevk: yes
- # [14:41] <krit> oh
- # [14:41] <krit> mistaken
- # [14:41] <annevk> krit: so can <cursor> be defined in terms of 'cursor'?
- # [14:41] * Joins: harig (~harig@49.200.116.10)
- # [14:41] <annevk> krit: as in, it might be good to remove the elements that can be described in terms of CSS
- # [14:42] * Joins: sak_to (~sak_to@fifthlight-140-202.cust.b2b2c.ca)
- # [14:42] <krit> annevk: old content might use it, but let me bring it up to SVG WG conf
- # [14:42] <annevk> krit: I mean spec-wise
- # [14:43] <annevk> krit: e.g. HTML defines <font> in terms of CSS
- # [14:43] <krit> annevk: needed to check, but yes
- # [14:44] <krit> annevk: cursor property might even be more powerful
- # [14:45] * Quits: sak_to (~sak_to@fifthlight-140-202.cust.b2b2c.ca) (Remote host closed the connection)
- # [14:45] <annevk> krit: is the same true for other elements?
- # [14:45] <krit> annevk: looks like SVG has <cursor> to get the cursor position
- # [14:45] <annevk> o_O
- # [14:45] <krit> annevk: we have <font> in SVG which is the treated the same as in HTML
- # [14:45] * Joins: sak_to (~sak_to@fifthlight-140-202.cust.b2b2c.ca)
- # [14:46] * Quits: sak_to (~sak_to@fifthlight-140-202.cust.b2b2c.ca) (Read error: Connection reset by peer)
- # [14:46] <annevk> krit: <cursor> does not seem to be about getting the cursor position
- # [14:46] * Joins: sak_to (~sak_to@fifthlight-140-202.cust.b2b2c.ca)
- # [14:46] <krit> annevk: the x and y attributes are described about that + cursor image of course
- # [14:46] <annevk> yes
- # [14:46] <krit> http://www.w3.org/TR/SVG/interact.html#CursorElement
- # [14:47] <annevk> no, x and y are about where the image is to be placed relative to the mouse pointer
- # [14:47] <annevk> krit: see http://dev.w3.org/csswg/css-ui/#cursor
- # [14:49] <krit> annevk: for the property yes, but the SVG text implies otherwise
- # [14:49] <annevk> krit: that seems like one of the SVG's many bugs
- # [14:49] * Joins: tantek (~tantek@172.56.13.248)
- # [14:50] <hsivonen> MikeSmith: moving the keysystem attribute from EME to the HTML spec is a whole can of worms politically
- # [14:50] <annevk> because it doesn't actually make sense
- # [14:51] <krit> annevk: not even sure if we implement it in WebKit/Blink
- # [14:51] <hsivonen> MikeSmith: I'd rather have it better defined in EME itself as a first step
- # [14:52] <annevk> krit: can <feImage> be expressed in CSS?
- # [14:52] * Joins: Lachy (~Lachy@213.166.174.2)
- # [14:52] * Joins: barnabywalters (~barnabywa@46-239-239-203.tal.is)
- # [14:54] <krit> annevk: it does the same as <image> with the exception that it can reference an element
- # [14:54] * Quits: nicolasbadia (~nicolasba@78.209.78.103) (Ping timeout: 272 seconds)
- # [14:54] * Quits: tantek (~tantek@172.56.13.248) (Ping timeout: 245 seconds)
- # [14:54] <krit> annevk: which is than drawn in an offscreen buffer
- # [14:54] <krit> annevk: (maybe <image> can do the same? unsure)
- # [14:54] <annevk> is that observable somehow?
- # [14:55] <krit> annevk: observable how?
- # [14:56] <krit> annevk: I mean what do you want to observe?
- # [14:57] * Joins: karlcow (~karl@nerval.la-grange.net)
- # [14:57] * Joins: JosephSilber (~Joseph@ool-44c3e80a.static.optonline.net)
- # [14:57] <annevk> nm
- # [14:58] * Joins: nicolasbadia (~nicolasba@78.209.78.103)
- # [14:58] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Remote host closed the connection)
- # [14:58] <annevk> krit: do you know for all of these what the default fetching mode is?
- # [14:58] <annevk> krit: e.g. which are no CORS, which are CORS, and which are same-origin?
- # [14:59] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [15:00] <krit> annevk: again, definition is as <image> in general… added the cross origin attribute even http://dev.w3.org/fxtf/filters/#element-attrdef-crossorigin
- # [15:00] <krit> annevk: so it is no CORS by default, but can CORS can be set
- # [15:01] <annevk> what's the benefit of CORS in that case?
- # [15:02] <krit> annevk: http://dev.w3.org/fxtf/filters/#security
- # [15:03] <annevk> :(
- # [15:03] <krit> annevk: hehe, I guess I will never see a smile :)
- # [15:03] <annevk> heh
- # [15:04] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Ping timeout: 272 seconds)
- # [15:04] <annevk> Okay, so feImage is tainted if the response's type is opaque
- # [15:05] <annevk> krit: I guess what I'm really interested in is whether the elements and properties we listed are same-origin or no-CORS by default
- # [15:05] <MikeSmith> hsivonen: ok I guess I'll do as annevk suggested and raise a bug against the EME spec
- # [15:06] <annevk> MikeSmith: please copy Chris Pearce and maybe me
- # [15:06] * Joins: tantek (~tantek@172.56.10.120)
- # [15:06] <MikeSmith> k
- # [15:06] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [15:06] <krit> annevk: all no-CORS since CORS didn’t existed when SVG 1.1 was speced
- # [15:07] * Quits: harig (~harig@49.200.116.10) (Ping timeout: 244 seconds)
- # [15:07] <krit> annevk: (specification wise of course)
- # [15:07] <annevk> krit: nothing was same-origin restricted?
- # [15:07] <krit> annevk: and CSS doesn’t handle CORS yet either
- # [15:07] <krit> annevk: no
- # [15:07] <krit> annevk: nothing
- # [15:08] <annevk> can we talk implementation-wise now?
- # [15:08] <krit> annevk: CSS is still no-CORS
- # [15:08] <krit> annevk: same as in HTML
- # [15:08] <annevk> even clip-path?
- # [15:08] <krit> annevk: clip-path, mask, fill, stroke are same origin in Firefox
- # [15:09] <krit> annevk: they don’t fetch in WebKit and Blink yet
- # [15:09] <annevk> mask is mask-image?
- # [15:09] <krit> annevk: with the exception of -webkit-mask and -webkit-filter and -webkit-clip-path
- # [15:09] <krit> annevk: yes
- # [15:09] <annevk> ah, and -webkit- properties load images, not SVG, and do so no-CORS?
- # [15:09] <krit> annevk: remove -webkit-mask from the list
- # [15:10] <krit> annevk: -webkit-filter and -webkit-clip-path do load external resources as well. IIRC no self origin at the moment
- # [15:11] <krit> annevk: talking for general documents of course… not for SVG images
- # [15:11] <annevk> yeah
- # [15:12] <krit> annevk: the SVG elements do not fetch in Blink at all
- # [15:12] <annevk> krit: no SVG element?
- # [15:12] <krit> annevk: in WebKit we have the <use> element that did fetch. Think it is broken again
- # [15:12] <krit> annevk: In Firefox elements fetch same origin
- # [15:12] <annevk> krit: as in <svg><image xlink:href=...></svg> is broken?
- # [15:13] <krit> annevk: Opera <=12 fetches for CSS and elements without any restrictions
- # [15:13] <krit> annevk: I am unspecific
- # [15:13] <krit> annevk: operators and paint source elements don’t fetch
- # [15:13] <krit> in Blink and WebKit
- # [15:13] <annevk> in no context?
- # [15:13] <krit> annevk: right
- # [15:14] <annevk> but they support inline references?
- # [15:14] <krit> annevk: yes
- # [15:14] <annevk> okay, so lets figure out the algorithm to get to an SVG element
- # [15:14] <annevk> how is it established that you have an inline reference?
- # [15:15] <krit> annevk: I am not aware of restrictions for <script>, <?…stylesheet…?>, <image>, <feImage> specification wise
- # [15:15] <krit> annevk: we parse URL but just use the fragment identifier and search in the same document
- # [15:16] <krit> annevk: This caused a bug where the URL is a different document but we still search for the fragment ID in the same document
- # [15:16] <krit> annevk: might still be broken
- # [15:17] * Quits: newtron_ (~newtron@76-10-135-135.dsl.teksavvy.com) (Remote host closed the connection)
- # [15:17] <annevk> given a document /doc and a base URL /a/ and a fragment in /doc that reads #text where should we look?
- # [15:17] <annevk> what if the fragment/reference reads /a/#text
- # [15:17] * Joins: newtron_ (~newtron@76-10-135-135.dsl.teksavvy.com)
- # [15:18] * Quits: zcorpan (~zcorpan@90-230-218-37-no135.tbcn.telia.com) (Remote host closed the connection)
- # [15:18] * Quits: caitp (~caitp@CPE48f8b385c01c-CM602ad06daeed.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
- # [15:18] <krit> annevk: exclusively speaking for WebKit/Blink: we do not resolve the URL… we just take the string specified by the user and use the fragment identifier of it…. no resolving of URL yet
- # [15:18] * Joins: newtron_work (~newtron@76-10-135-135.dsl.teksavvy.com)
- # [15:19] <annevk> krit: what if the string does not start with a #?
- # [15:19] * Joins: TallTed (~Thud@63.119.36.36)
- # [15:19] * Joins: jwalden (~waldo@2620:101:80fc:224:7e7a:91ff:fe25:a5a3)
- # [15:19] <krit> annevk: well, the parsing process looks for the fragment identifier exclusively… example: “other.svg#test”… we do not resolve the base address of other.svg
- # [15:20] * Joins: darobin (~darobin@78.109.80.74)
- # [15:20] <annevk> krit: what is this "parsing process"?
- # [15:20] <annevk> krit: you just try to find a #?
- # [15:20] <krit> annevk: let me check, but that is what I remember
- # [15:22] * Quits: newtron_ (~newtron@76-10-135-135.dsl.teksavvy.com) (Ping timeout: 240 seconds)
- # [15:22] <krit> annevk: the parsing algorithm is 350 loc
- # [15:22] * Quits: newtron_work (~newtron@76-10-135-135.dsl.teksavvy.com) (Ping timeout: 240 seconds)
- # [15:23] <krit> annevk: I can say that we do not “simply” search for #… the algorithm does a lot more… just say we extract the fragment identifier from the string
- # [15:24] <krit> let me find the link
- # [15:24] <krit> annevk: http://trac.webkit.org/browser/trunk/Source/WebCore/platform/URL.cpp#L1088
- # [15:28] <annevk> krit: oh okay, so it seems to properly parse a URL, but then ignore all the good bits
- # [15:28] <annevk> seems to warrant a :(
- # [15:30] <krit> annevk: actually, it was a security pro caution and is limited to SVG
- # [15:30] <annevk> if you ignore the path and such that's not a security procaution, that's a bug
- # [15:31] <krit> annevk: this way we didn’t need to look into when we allow external resources. In the first days of SVG integration in WebKit this seemed wise. And then we never actually came to implement it correctly and there wasn’t a huge demand either
- # [15:31] <annevk> sure, I'm not advocating that we support Fetch
- # [15:31] <krit> annevk: it is a bug, true
- # [15:32] <annevk> but not properly parsing the URL and making sure it actually is relative to the document before proceeding is a huge forward compat issue
- # [15:32] <krit> annevk: I know, but implementations are ramping up and now it gets important
- # [15:32] <krit> annevk: agree, that was a bug we didn’t thought about at the time
- # [15:32] <annevk> o_O
- # [15:32] <annevk> okay, lets move on, I started drafting an algorithm
- # [15:38] <gsnedders> Hixie: ping; can you give me both your code, how to build it, and how to run it, then I'll try?
- # [15:38] * Joins: marcosc (~marcosc@66.207.208.102)
- # [15:39] * Quits: marcosc (~marcosc@66.207.208.102) (Read error: Connection reset by peer)
- # [15:39] <annevk> krit: data URLs and blob URLs will work due to the fetching algorithm
- # [15:39] * Joins: caitp (~caitp@CPE48f8b385c01c-CM602ad06daeed.cpe.net.cable.rogers.com)
- # [15:39] * Joins: marcosc (~marcosc@66.207.208.102)
- # [15:39] <annevk> krit: though for data URLs we'd need explicit opt in
- # [15:39] <krit> annevk: which section is that in URL spec?
- # [15:40] <annevk> krit: it's in the fetch spec
- # [15:40] <krit> annevk: looking
- # [15:43] <krit> annevk: still, your algorithm compares document URL with parsed URL… if they are equal and the URL has a frag id, then we search for an element in the same document OTHERWISE: 1)return network error if fetch is disabled…
- # [15:43] <krit> annevk: or do we not quit at 1)?
- # [15:44] <annevk> krit: ah
- # [15:45] <annevk> krit: no, blob and data URLs would just proceed to step 3
- # [15:46] <krit> annevk: right. Just mean that 3.1) says return on fetching disabled
- # [15:46] <krit> annevk: so dataURL and blob would return with negative result at 3.1
- # [15:46] <annevk> yes
- # [15:46] <annevk> if fetching is disabled
- # [15:46] <krit> annevk: for SVG image it is… and we should still allow blob and dataURL
- # [15:47] <annevk> how can an "SVG image" contain a blob URL?
- # [15:47] <krit> annevk: dholbert had a weird example
- # [15:47] <krit> annevk: I’ll ask him about the example again
- # [15:48] * Joins: newtron_ (~newtron@76-10-135-135.dsl.teksavvy.com)
- # [15:49] <krit> annevk: Asked him. He is in PSD timezone and should be awake in a couple of hours
- # [15:49] <krit> s/awake/online/
- # [15:49] <annevk> krit: okay, we could maybe make it a flag on Fetch
- # [15:50] * Joins: newtron_work (~newtron@76-10-135-135.dsl.teksavvy.com)
- # [15:50] <annevk> krit: "no networking flag" or some such
- # [15:50] <krit> annevk: ok, what about dataURLs and base64?
- # [15:50] <annevk> krit: I guess it might be okay to allow those yes
- # [15:51] <krit> annevk: it is important! :) People embed there PNGs in SVG files today
- # [15:51] <krit> annevk: External fonts seems to be the biggest problem for SVG Images… not sure how Firefox handles that today… not even sure how webkit does
- # [15:52] <krit> annevk: think WebKit doesn’t fetch web fonts today
- # [15:52] * Quits: newtron_ (~newtron@76-10-135-135.dsl.teksavvy.com) (Ping timeout: 240 seconds)
- # [15:52] <krit> annevk: for SVG images
- # [15:52] <annevk> krit: "SVG images" is ambiguous
- # [15:53] <krit> annevk: indeed. In SVG WG we refer to image/svg+xml usually
- # [15:53] <annevk> krit: what is important for now is to define a model that's somewhat realistic, once we have that we can address various features
- # [15:55] * Quits: newtron_work (~newtron@76-10-135-135.dsl.teksavvy.com) (Ping timeout: 240 seconds)
- # [15:56] <krit> annevk: yes
- # [15:56] <annevk> krit: so no scripting seems reasonably solid
- # [15:56] <krit> annevk: you refer to blobs?
- # [15:56] <annevk> krit: no, lets leave blob/data URLs alone for now, not important
- # [15:57] <annevk> krit: not doing scripting for an external resource is straightforward
- # [15:57] <annevk> krit: you simply don't invoke the parser with scripting enabled
- # [15:57] <annevk> krit: not doing fetching however, is processing layer
- # [15:58] <annevk> krit: so somewhere there's an algorithm that takes an SVG element and does something with it; use it as a mask/image/paint server/clip
- # [15:58] <annevk> krit: might be various such algorithms
- # [15:59] <annevk> krit: those need to be allowed to process elements, but also need to ensure no fetching is done
- # [15:59] <annevk> krit: for the CSS part of that CSS will need to gain a flag of "no fetching"
- # [15:59] <annevk> krit: which suggests maybe that flag should be passed all the way down to the fetching layer
- # [15:59] <annevk> krit: which then can decide whether to allow certain URLs, such as data URLs
- # [15:59] <annevk> in that mode
- # [16:00] * Joins: abinader (sid21713@gateway/web/irccloud.com/x-tdnrprgufaflljzj)
- # [16:00] <krit> annevk: another idea was to flag document
- # [16:00] <krit> annevk: and look at the status of document. So in general yes, fetching must pass the mode
- # [16:00] <annevk> yeah that seems equivalent
- # [16:00] <krit> annevk: fetchingEnables
- # [16:01] <krit> d
- # [16:02] <annevk> so for HTML most fetching is disabled if there's no browsing context
- # [16:02] <annevk> but it seems that wouldn't work here
- # [16:04] * Quits: karlcow (~karl@nerval.la-grange.net) (Ping timeout: 264 seconds)
- # [16:05] <krit> annevk: right
- # [16:05] <krit> annevk: sorry, need to take care of kids… slow in responce
- # [16:05] * Joins: arpitab__ (uid10516@gateway/web/irccloud.com/x-zdqghtnpljjsvxkm)
- # [16:05] <krit> se
- # [16:05] * Joins: karlcow (~karl@nerval.la-grange.net)
- # [16:09] <krit> annevk: could we continue tomorrow morning?
- # [16:09] * Joins: io__jp (~io@p19237-ipngn2001marunouchi.tokyo.ocn.ne.jp)
- # [16:09] <annevk> yeah sure, thanks for the help
- # [16:09] <krit> annevk: wrong way around ;)
- # [16:10] <annevk> need to think a bit how to proceed here
- # [16:10] <annevk> I'll let some Gecko people know we're trying to lock these things down
- # [16:14] <krit> annevk: cool! roc , bz and dholbert might be the right ppl to talk too
- # [16:19] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Remote host closed the connection)
- # [16:23] * Quits: Kolombiken (~Adium@gateway.creuna.se) (Quit: Leaving.)
- # [16:28] * Krinkle|detached is now known as Krinkle
- # [16:30] * Joins: sicking (~sicking@211.72.78.109)
- # [16:33] * Quits: tantek (~tantek@172.56.10.120) (Ping timeout: 272 seconds)
- # [16:37] * Quits: gungan_fuq (~encryptd_@68-112-125-21.dhcp.stcd.mn.charter.com)
- # [16:38] * Joins: newtron_ (~newtron@199.71.174.204)
- # [16:38] * Quits: newtron_ (~newtron@199.71.174.204) (Remote host closed the connection)
- # [16:39] * Joins: newtron_ (~newtron@199.71.174.203)
- # [16:39] * Joins: encryptd_fractl (~encryptd_@68-112-125-21.dhcp.stcd.mn.charter.com)
- # [16:42] * Quits: richt (~richt@83.218.67.123) (Quit: Leaving...)
- # [16:42] * Joins: mpaarating (~mpaaratin@rrcs-97-78-217-146.se.biz.rr.com)
- # [16:52] <jgraham> annevk: I might just be very stupid, but your response about why .to() is preferred over .toX() didn't make any sense to me
- # [16:54] * Joins: encrypt__ (~encryptd_@68-112-125-21.dhcp.stcd.mn.charter.com)
- # [16:55] <annevk> *waves magic wand to make jgraham understand unstated things*
- # [16:56] * Quits: encryptd_fractl (~encryptd_@68-112-125-21.dhcp.stcd.mn.charter.com) (Ping timeout: 244 seconds)
- # [16:56] <Ms2ger> The "state them" wand?
- # [16:57] <annevk> Ms2ger: unclear
- # [16:57] <jgraham> annevk: Erm. You posted the mail, I kind of assumed you already knew what you had stated
- # [16:57] <annevk> jgraham: you assumed I would understand what part didn't make sense to you?
- # [16:57] <annevk> sorry
- # [16:57] <jgraham> All of it didn't
- # [16:58] <jgraham> Hence "any sense"
- # [16:58] <jgraham> :)
- # [16:58] <annevk> seems pretty clear to me
- # [16:58] <annevk> anyway, I have to do something else
- # [16:58] * Quits: Ducki (~Ducki@137.116.197.171) (Remote host closed the connection)
- # [16:59] * Joins: ehsan (~ehsan@66.207.208.102)
- # [16:59] <jgraham> I don't think it's at all clear conceptually (wihout reading the spec) why you can only call to() once, or why it would be worse with toX()
- # [17:00] <jgraham> Neither seems more complicated than the other to implement, really
- # [17:00] * Quits: io__jp (~io@p19237-ipngn2001marunouchi.tokyo.ocn.ne.jp) (Ping timeout: 264 seconds)
- # [17:00] <jgraham> But the concerns about feature detection seem legitimate
- # [17:04] * Quits: markkes (~markkes@62.207.90.201) (Quit: Nettalk6 - www.ntalk.de)
- # [17:04] <gsnedders> Does anyone know if Google use Dart for anything significant?
- # [17:04] <gsnedders> (presumably in dart2js form)
- # [17:07] <caitp> the greentea stuff, at least
- # [17:10] * Quits: KevinMarks (~yaaic@2607:fb90:2207:4d65:547b:63f2:9f85:cf9c) (Ping timeout: 240 seconds)
- # [17:10] <caitp> i guess it depends how you define "significant", though
- # [17:12] * Joins: izhak (~izhak@92.248.142.152)
- # [17:12] * Joins: KevinMarks (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
- # [17:12] * Quits: mven (~textual@ip68-104-38-84.lv.lv.cox.net) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [17:16] * Quits: izhak (~izhak@92.248.142.152) (Ping timeout: 240 seconds)
- # [17:20] * Quits: sicking (~sicking@211.72.78.109) (Quit: sicking)
- # [17:33] * Quits: darobin (~darobin@78.109.80.74) (Remote host closed the connection)
- # [17:42] * Quits: gavin_ (~gavin@76.14.87.162) (Read error: Connection reset by peer)
- # [17:43] * Joins: gavin_ (~gavin@76.14.87.162)
- # [17:45] * Joins: harig (~harig@49.200.116.94)
- # [17:47] * Quits: Lachy (~Lachy@213.166.174.2) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [17:48] <annevk> jgraham: yeah, I guess we can look into it again
- # [17:48] * Joins: svl (~me@ip565744a7.direct-adsl.nl)
- # [17:53] * Quits: karlcow (~karl@nerval.la-grange.net) (Quit: This computer has gone to sleep)
- # [17:53] * Joins: mven (~textual@wsip-98-173-125-120.lv.lv.cox.net)
- # [17:53] * Joins: karlcow (~karl@nerval.la-grange.net)
- # [17:56] * Joins: jeffreyatw (~jeffreyat@66-194-1-26.STATIC.twtelecom.net)
- # [17:59] * abinader is now known as abinader|lunch
- # [17:59] * Quits: laurensclaessen (~laurenscl@91.183.84.141)
- # [18:03] * Quits: tj_vantoll (~Adium@2601:4:5380:eba:685e:17c7:fd5c:59ba) (Quit: Leaving.)
- # [18:07] * Quits: jungkees (uid24208@gateway/web/irccloud.com/x-nxvwulexlopvcbno) (Quit: Connection closed for inactivity)
- # [18:07] * Joins: felipedefarias (~felipedef@189-19-85-225.dsl.telesp.net.br)
- # [18:08] * Joins: Streusel (~Anonymous@unaffiliated/streusel)
- # [18:10] * Quits: svl (~me@ip565744a7.direct-adsl.nl) (Quit: And back he spurred like a madman, shrieking a curse to the sky.)
- # [18:10] * Joins: hemanth (~hemanth@122.178.207.93)
- # [18:11] * Joins: svl (~me@ip565744a7.direct-adsl.nl)
- # [18:13] * Joins: lmclister (~lmclister@192.150.10.206)
- # [18:23] * Quits: hemanth (~hemanth@122.178.207.93) (Ping timeout: 240 seconds)
- # [18:25] * Joins: Maurice` (~copyman@5ED5617C.cm-7-6b.dynamic.ziggo.nl)
- # [18:26] * Quits: mven (~textual@wsip-98-173-125-120.lv.lv.cox.net) (Read error: Connection reset by peer)
- # [18:26] * Joins: mven__ (~textual@wsip-98-173-125-120.lv.lv.cox.net)
- # [18:28] * Quits: adactio (~adactio@212.42.170.121) (Quit: adactio)
- # [18:28] * Joins: Lachy (~Lachy@cm-84.215.104.248.getinternet.no)
- # [18:31] * Joins: rxgx (uid22483@gateway/web/irccloud.com/x-kqsoauefrayfzarc)
- # [18:33] * abinader|lunch is now known as abinader
- # [18:33] * Joins: bnicholson (~bnicholso@24.130.57.109)
- # [18:34] * Joins: BigBangUDR (~Thunderbi@123.239.89.223)
- # [18:35] * Quits: dshwang_ (~dshwang@192.55.54.40) (Ping timeout: 240 seconds)
- # [18:35] * Quits: BigBangUDR (~Thunderbi@123.239.89.223) (Client Quit)
- # [18:37] <annevk> Is anyone trying this? https://loop.services.mozilla.com/calls/kfsTnuhULV9QzkcMbR4Xu1vJVV2hi-lQ4blJD1JVxcVlQ5lmH6isvyOI9iroY09PmTtX8hxuXCdeT-D4dXMwswZRId7DvBBEF728FxUOa0uS80v_TAt-pyak6A_Kubg0HU9qpbeQawu8KlEGuxcXYB9cpUPfAtoTWC6OJTMbx4YzxMnSnR0WfJwGJo41VsAVH_gC5W3lSIxArBE9V2-WG-CJ9fA
- # [18:37] * Quits: Maurice` (~copyman@5ED5617C.cm-7-6b.dynamic.ziggo.nl) (Read error: Connection reset by peer)
- # [18:37] * Joins: Maurice` (copyman@5ED5617C.cm-7-6b.dynamic.ziggo.nl)
- # [18:37] * Joins: dshwang_ (~dshwang@192.55.54.40)
- # [18:41] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [18:51] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Remote host closed the connection)
- # [18:52] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [18:52] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Remote host closed the connection)
- # [18:52] * Joins: poona_ (~poona@117.198.110.185)
- # [18:52] * Quits: poona_ (~poona@117.198.110.185) (Changing host)
- # [18:52] * Joins: poona_ (~poona@unaffiliated/poona)
- # [18:52] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [18:54] * Quits: poona (~poona@unaffiliated/poona) (Ping timeout: 240 seconds)
- # [18:56] * Joins: bholley (~bholley@corp.mtv2.mozilla.com)
- # [18:59] * Joins: BigBangUDR (~Thunderbi@123.239.89.223)
- # [18:59] * Quits: BigBangUDR (~Thunderbi@123.239.89.223) (Client Quit)
- # [19:02] * Quits: bnicholson (~bnicholso@24.130.57.109) (Ping timeout: 240 seconds)
- # [19:03] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Remote host closed the connection)
- # [19:03] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [19:06] * Joins: ambv (~ambv@206.108.217.134)
- # [19:06] * Quits: mven__ (~textual@wsip-98-173-125-120.lv.lv.cox.net) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [19:07] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Remote host closed the connection)
- # [19:07] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [19:07] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Remote host closed the connection)
- # [19:08] * Joins: mven (~textual@wsip-98-173-125-120.lv.lv.cox.net)
- # [19:10] * Quits: barnabywalters (~barnabywa@46-239-239-203.tal.is) (Quit: barnabywalters)
- # [19:16] * Joins: smaug____ (~chatzilla@cs78246079.pp.htv.fi)
- # [19:17] * Quits: mven (~textual@wsip-98-173-125-120.lv.lv.cox.net) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [19:18] * Joins: Areks (~Areks@95-26-126-235.broadband.corbina.ru)
- # [19:18] * Joins: zcorpan (~zcorpan@90-230-218-37-no135.tbcn.telia.com)
- # [19:20] * Joins: tj_vantoll (~Adium@108.78.130.35)
- # [19:21] * Quits: smaug____ (~chatzilla@cs78246079.pp.htv.fi) (Quit: Reconnecting…)
- # [19:22] * Joins: smaug____ (~chatzilla@cs78246079.pp.htv.fi)
- # [19:22] * Joins: dbaron (~dbaron@2620:101:80fb:224:51b1:7867:f2dd:82d9)
- # [19:22] * Quits: zcorpan (~zcorpan@90-230-218-37-no135.tbcn.telia.com) (Ping timeout: 240 seconds)
- # [19:26] * Joins: weinig (~weinig@17.202.48.136)
- # [19:30] * Joins: mven (~textual@wsip-98-173-125-120.lv.lv.cox.net)
- # [19:31] * Joins: bnicholson (~bnicholso@2620:101:80fc:224:3e97:eff:feef:9aba)
- # [19:33] * Quits: cheron (~cheron@unaffiliated/cheron) (Ping timeout: 272 seconds)
- # [19:33] * Quits: bnicholson (~bnicholso@2620:101:80fc:224:3e97:eff:feef:9aba) (Client Quit)
- # [19:33] * Joins: bnicholson (~bnicholso@2620:101:80fc:224:3e97:eff:feef:9aba)
- # [19:40] * Joins: zcorpan (~zcorpan@90-230-218-37-no135.tbcn.telia.com)
- # [19:57] * Joins: othermaciej (~mjs@17.244.0.244)
- # [20:01] * Quits: zdobersek (~zan@109.201.154.176) (Ping timeout: 252 seconds)
- # [20:03] * Joins: tantek (~tantek@207.225.131.142)
- # [20:05] * Joins: Rastus_Vernon (uid15187@wikimedia/Rastus-Vernon)
- # [20:06] * Quits: harig (~harig@49.200.116.94) (Quit: harig)
- # [20:06] * Joins: zdobersek (~zan@109.201.152.7)
- # [20:14] * Quits: jwalden (~waldo@2620:101:80fc:224:7e7a:91ff:fe25:a5a3) (Quit: Reconnecting…)
- # [20:14] * Joins: jwalden (~waldo@2620:101:80fc:224:7e7a:91ff:fe25:a5a3)
- # [20:19] * Quits: mpaarating (~mpaaratin@rrcs-97-78-217-146.se.biz.rr.com) (Quit: mpaarating)
- # [20:21] * Quits: Ms2ger (~Ms2ger@48.205-242-81.adsl-dyn.isp.belgacom.be) (Quit: nn)
- # [20:29] * Quits: dbaron (~dbaron@2620:101:80fb:224:51b1:7867:f2dd:82d9) (Ping timeout: 240 seconds)
- # [20:30] * Joins: BigBangUDR (~Thunderbi@123.239.89.223)
- # [20:30] * Quits: othermaciej (~mjs@17.244.0.244) (Quit: othermaciej)
- # [20:31] * Quits: BigBangUDR (~Thunderbi@123.239.89.223) (Client Quit)
- # [20:32] * Joins: jeremyj (~jeremyj@17.202.44.231)
- # [20:32] * Joins: othermaciej (~mjs@17.244.0.244)
- # [20:32] * Krinkle is now known as Krinkle|detached
- # [20:33] * Joins: estellevw (~estellevw@209.49.73.82)
- # [20:33] * Quits: bholley (~bholley@corp.mtv2.mozilla.com) (Quit: Textual IRC Client: www.textualapp.com)
- # [20:38] * Joins: weinig_ (~weinig@17.245.25.226)
- # [20:41] * Quits: weinig (~weinig@17.202.48.136) (Ping timeout: 244 seconds)
- # [20:41] * weinig_ is now known as weinig
- # [20:42] <estellevw> The <output>, even those with a name, never have their value sumbitted along with the associated form, right?
- # [20:42] * Joins: dbaron (~dbaron@2620:101:80fb:224:51b1:7867:f2dd:82d9)
- # [20:45] * Joins: seventh (seventh@207-207-17-149.fwd.datafoundry.com)
- # [20:48] * Krinkle|detached is now known as Krinkle
- # [20:49] <zcorpan> estellevw: right
- # [20:49] <estellevw> thanks
- # [20:51] * Quits: felipedefarias (~felipedef@189-19-85-225.dsl.telesp.net.br) (Remote host closed the connection)
- # [20:52] <Domenic> annevk: do you have that list of stream concepts that would be nice to define?
- # [20:54] * Quits: weinig (~weinig@17.245.25.226) (Remote host closed the connection)
- # [20:55] * Joins: weinig (~weinig@17.245.25.226)
- # [20:56] * Joins: darobin (~darobin@2a01:e34:ed05:d180:e84f:5b6:2b79:8589)
- # [20:56] * Quits: othermaciej (~mjs@17.244.0.244) (Quit: othermaciej)
- # [20:57] * Quits: Areks (~Areks@95-26-126-235.broadband.corbina.ru) (Quit: KVIrc 4.0.2 Insomnia http://www.kvirc.net/)
- # [20:57] <Hixie> gsnedders: ok here now
- # [20:57] * Quits: tj_vantoll (~Adium@108.78.130.35) (Quit: Leaving.)
- # [20:58] <gsnedders> Hixie: you could just email me ;P
- # [20:59] * Quits: Streusel (~Anonymous@unaffiliated/streusel) (Quit: Computer has gone to sleep.)
- # [20:59] <Hixie> that sounds like crazy talk
- # [20:59] <Hixie> ok
- # [20:59] <Hixie> so
- # [20:59] <Hixie> tests
- # [20:59] <Hixie> let's see
- # [20:59] <Hixie> git diff gives me a 1653 line diff
- # [20:59] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [21:00] <Hixie> how do you want them, one file at a time?
- # [21:00] * Quits: rxgx (uid22483@gateway/web/irccloud.com/x-kqsoauefrayfzarc) (Quit: Connection closed for inactivity)
- # [21:01] <gsnedders> Hixie: related changes together
- # [21:01] <Hixie> how do i do that?
- # [21:01] <gsnedders> Hixie: you can use git add -p to select what to commit at each time
- # [21:01] <gsnedders> Google or prod someone else as to how, I need to phone my sister before I go out ;P
- # [21:01] <Hixie> k
- # [21:03] * Joins: ^esc (~esc-ape@178.115.129.192.wireless.dyn.drei.com)
- # [21:05] <Hixie> man git makes no sense to me at all
- # [21:05] <Hixie> what's the equivalent of "svn commit", meaning, the thing that sends my change upstream?
- # [21:05] * Quits: weinig (~weinig@17.245.25.226) (Ping timeout: 244 seconds)
- # [21:05] * Joins: othermaciej (~mjs@17.244.165.240)
- # [21:06] <Hixie> everyone on the web is talking about multi-step processes involving web pages
- # [21:07] <caitp> `git push`?
- # [21:07] <Hixie> and waht does that push? all my commits?
- # [21:07] <SamB> hmm, anyone know a reference for the term "tofu"?
- # [21:08] * Quits: jacobolus (~jacobolus@70-36-196-50.dsl.static.sonic.net) (Remote host closed the connection)
- # [21:08] <Hixie> SamB: context?
- # [21:09] <SamB> that stuff you see when you don't have the right font
- # [21:10] <SamB> usually little boxes, sometimes with hex codes in them
- # [21:10] <Hixie> oh the little squares?
- # [21:10] <caitp> Hixie: it will push the objects needed for the local refs to make sense remotely
- # [21:10] <Hixie> caitp: i've no idea what that means
- # [21:10] * Quits: othermaciej (~mjs@17.244.165.240) (Ping timeout: 252 seconds)
- # [21:10] * Joins: weinig (~weinig@17.245.25.226)
- # [21:10] <Hixie> caitp: do i run git add, then git push? or git add, then git commit, then git push?
- # [21:10] <SamB> you have to commit before you can push changes
- # [21:10] <Hixie> how do i get several patches up to gsnedders?
- # [21:10] <SamB> commit each patch
- # [21:11] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Remote host closed the connection)
- # [21:11] <SamB> then push the lot of them somewhere and inform him of where
- # [21:11] <Domenic> branch per patch, if they are independent
- # [21:11] <caitp> it's easier to explain with a chalkboard, but for the most part it's not worth worrying about the specifics of what gets pushed --- the simple case is, you have a branch, and you want to update a remote branch to match it
- # [21:12] <caitp> so you push your branch to the remote, and if it's a fast-forward commit, it will just work
- # [21:12] * Joins: othermaciej (~mjs@17.245.25.187)
- # [21:12] <caitp> and if it's not a fast-forward commit, then you should think carefully about it :d
- # [21:12] * Joins: tj_vantoll (~Adium@2601:4:5380:eba:c51f:8f6a:528c:7a73)
- # [21:12] <Hixie> ok so with subversion, all i have to do is "svn diff", then i have the patch for review, then "svn commit", then it's upstream.
- # [21:13] <SamB> Hixie: in git you can commit first and review second
- # [21:13] <Hixie> you can do that in subversion too. svn commit, then svn diff with the revision numbers.
- # [21:13] <Hixie> i don't understand why git has to be so much more complicated.
- # [21:13] <SamB> yes, but without it being upstream
- # [21:13] <Hixie> i want it upstream
- # [21:14] <Hixie> what's the point of it not being upstream :-P
- # [21:14] <caitp> it's pretty simple, but there's a bit of a learning curve maybe. once you get the hang of it, it is totally natural
- # [21:14] <SamB> Hixie: git is used by many who don't have write access to upstream
- # [21:14] <Hixie> anyway
- # [21:14] <Hixie> so you're saying i should git add, then git commit, then git push, then git add, then git commit, then git push, etc?
- # [21:15] <Hixie> until i've got no more local changes?
- # [21:15] <caitp> you don't have to commit -> push -> commit -> push
- # [21:15] <caitp> you can commit -> commit -> commit -> push
- # [21:15] <caitp> if it's easier =)
- # [21:16] <Hixie> and that results in multiple patches on gsnedders' side?
- # [21:16] <Hixie> separate "pull requests" or whatever they're called?
- # [21:16] * Quits: tj_vantoll (~Adium@2601:4:5380:eba:c51f:8f6a:528c:7a73) (Ping timeout: 240 seconds)
- # [21:16] * Quits: othermaciej (~mjs@17.245.25.187) (Ping timeout: 244 seconds)
- # [21:17] <Domenic> it results in separate commits, but not separate patches
- # [21:17] <Domenic> for separate patches, you should make separate branches
- # [21:17] <Domenic> Has anyone gotten Anolis + Travis-CI up and running?
- # [21:18] <Hixie> separate _branches_?
- # [21:18] <Domenic> Alternately, TabAtkins, how do I switch to Bikeshed?
- # [21:18] <Hixie> just to commit two separate files?
- # [21:18] * Quits: karlcow (~karl@nerval.la-grange.net) (Ping timeout: 244 seconds)
- # [21:18] <Domenic> branches are basically equivalent to commits in git
- # [21:18] <Domenic> they are not heavyweight as in svgn
- # [21:18] * Joins: othermaciej (~mjs@17.114.217.240)
- # [21:19] * Quits: mven (~textual@wsip-98-173-125-120.lv.lv.cox.net) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [21:21] <Hixie> Domenic: i'm not finding anything online that leads me to that conclusions :-)
- # [21:21] <Domenic> Branches are pointers to commits
- # [21:21] * Joins: tj_vantoll (~Adium@2601:4:5380:eba:fde2:2a66:ef4d:1cc3)
- # [21:21] <Domenic> literally if you look in the .git directory there will be files saying something like "branch_name: deadb33f"
- # [21:22] <Hixie> maybe i should just send gsnedders diffs
- # [21:23] * Quits: mven_ (~textual@169.241.49.57) (Read error: Connection reset by peer)
- # [21:23] <SamB> branches are *names* for commits
- # [21:23] <SamB> Hixie: you can use "git send-email" for that ;-P
- # [21:23] <SamB> after committing everything
- # [21:23] <SamB> or get format-patch
- # [21:24] <Hixie> is there no real documentation got git? i'm not finding anything sane on the web.
- # [21:24] <Hixie> for git
- # [21:24] * Joins: mven (~textual@169.241.49.57)
- # [21:24] <Hixie> not got git
- # [21:24] <SamB> you could try the manpages
- # [21:24] <TabAtkins> Domenic: What are you switching from?
- # [21:24] <TabAtkins> git manpages are terrible.
- # [21:24] <Domenic> TabAtkins: Anolis. Not too much complicated stuff yet. https://github.com/whatwg/streams/blob/master/index.html
- # [21:24] <Hixie> the man pages are impenetrable
- # [21:24] * Quits: TallTed (~Thud@63.119.36.36) (Read error: Connection reset by peer)
- # [21:24] <SamB> hmm
- # [21:25] <Domenic> http://git-man-page-generator.lokaltog.net/
- # [21:25] * Joins: TallTed (~Thud@63.119.36.36)
- # [21:25] <TabAtkins> Domenic: That's pretty easy to switch from, since it's similar to the old CSSWG preprocessor, and Bikeshed is a spiritual descendent.
- # [21:25] <TabAtkins> I can convert for you, or you can just follow the docs and ask me questions.
- # [21:25] <Domenic> Hixie: http://git-scm.com/book is probably the best
- # [21:25] <SamB> Hixie: anwyay, the nice thing is that anything you screw up before you push, you can still fix
- # [21:26] <Hixie> Domenic: i don't even know where to begin with that
- # [21:26] <Hixie> Domenic: (i've been trying to read that for the past half hour)
- # [21:26] <TabAtkins> Ugh, there's a super-great visual guide to git I'm trying to find.
- # [21:26] <Domenic> TabAtkins: hmm documentation has gotten much better since I last saw. I'll give it a shot and ask questions if I get stuck. Thanks!
- # [21:26] <TabAtkins> Domenic: It's been stable for like a year, so you must have looked at it a *long* time ago. ^_^
- # [21:27] <TabAtkins> https://marklodato.github.io/visual-git-guide/index-en.html
- # [21:27] <SamB> Hixie: maybe http://eagain.net/articles/git-for-computer-scientists/ will help?
- # [21:27] <TabAtkins> Hixie: ^^^ this was super informative to me.
- # [21:27] <SamB> Hixie: you aren't scared of DAGs are you?
- # [21:27] * Quits: tj_vantoll (~Adium@2601:4:5380:eba:fde2:2a66:ef4d:1cc3) (Read error: Connection reset by peer)
- # [21:28] <Hixie> i'm not _scared_ of them, i just find the idea that i need to know about hashes and branches and DAGs and so forth just to submit some small diffs to be absurd
- # [21:28] <Hixie> TabAtkins: thanks, loking
- # [21:28] <Hixie> [24~looking
- # [21:28] <Hixie> l o o k i n g
- # [21:28] <TabAtkins> Hixie: The link I gave gives you a great, easy visual guide to the commands and what effect they have on the working directory, the index, and the history.
- # [21:28] <TabAtkins> Hahahaha
- # [21:28] <SamB> Hixie: well you don't have to know much about hashes to use it
- # [21:28] <TabAtkins> The hardest part of getting into git is (a) learning, intuitiveyl, what the index is for and why it's exposed, and (b) what commands interact with what thing.
- # [21:29] * Quits: tantek (~tantek@207.225.131.142) (Quit: tantek)
- # [21:29] * Joins: tj_vantoll (~Adium@2601:4:5380:eba:fde2:2a66:ef4d:1cc3)
- # [21:29] <SamB> call it the staging area
- # [21:29] <TabAtkins> Hard when you're used to a VCS that doesn't expose an index, at least.
- # [21:29] <TabAtkins> Yeah, same deal.
- # [21:29] <Hixie> TabAtkins: that explains the local stuff, but my real problem here is i don't care about the local stuff and just want to upload stuff to a remote server
- # [21:30] <SamB> the chief virtual of calling it an "index" is that that is less misleading than "cache"
- # [21:30] <SamB> er.
- # [21:30] <Hixie> i literally have zero use for the fact that git stores anything locally
- # [21:30] <SamB> s/virtual/virtue/
- # [21:30] <TabAtkins> Hixie: Pushing to a remote is just (1) get the stuff into your history, then (2) git push.
- # [21:30] <SamB> Hixie: you do it locally and then upload when you've got all the things locally that you want remotely
- # [21:30] <Hixie> TabAtkins: but what does it push?
- # [21:30] <SamB> just pretend you are the server for the moment
- # [21:30] <TabAtkins> Your history.
- # [21:30] <Hixie> i only want to push one diff
- # [21:30] <SamB> Hixie: all it needs to push to keep the dag in one piece
- # [21:30] <TabAtkins> (Using the "visual guide" terms.)
- # [21:30] <SamB> you can't push a diff
- # [21:30] <SamB> git has no diffs
- # [21:31] <TabAtkins> Hixie: You're already tracking the server, right?
- # [21:31] <TabAtkins> So you pulled from the server, then made changes and committed them, and want to push?
- # [21:31] <Hixie> "tracking"?
- # [21:31] <TabAtkins> Sorry, I keep using terms of art. ^_^
- # [21:31] <SamB> Hixie: you have it in the output of "git remote -v"?
- # [21:31] <TabAtkins> Point is: how did you get the code you were hacking on?
- # [21:31] <TabAtkins> With a `git pull`?
- # [21:31] <Hixie> i've no idea how i got my working directory, at this point, it's scrolled off the top of my .bash_history :-)
- # [21:32] <TabAtkins> Or `git clone`, whatever?
- # [21:32] <SamB> Hixie: so what says "git remote -v"?
- # [21:32] <TabAtkins> You probably cloned it. There a `.git` folder in the top-level folder?
- # [21:32] <Hixie> git remote -v says "origin https://github.com/html5lib/html5lib-tests (fetch)" (and origin)
- # [21:32] <TabAtkins> Okay, cool.
- # [21:32] <Hixie> er, and push
- # [21:32] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [21:32] <SamB> so yeah, you're tracking it
- # [21:32] <Hixie> now i have several changes in this direcory, and i'd like to submit them as separate patches. pull requests. whatever.
- # [21:33] <TabAtkins> Ah, you wanna do PRs.
- # [21:33] <SamB> hmm, separate pull requests means you'll need a branch for each
- # [21:33] <TabAtkins> That makes things a touch more complex.
- # [21:33] <TabAtkins> Want a walkthrough?
- # [21:33] <Hixie> if you're happy to give me one i would be much obliged, but i'd happily settle for documentation :-)
- # [21:33] * Joins: catalinb (~catalinb2@corp.mtv2.mozilla.com)
- # [21:34] <TabAtkins> Github's docs are okay for this, but it'll be compolicated since you've already made your changes all together.
- # [21:34] <SamB> "git gui" is your friend, I think
- # [21:34] <Hixie> they're in different files, fwiw
- # [21:34] <TabAtkins> Okay, that's easier.
- # [21:34] <SamB> oh, then "git add" is all you need
- # [21:34] <TabAtkins> Have you committed them yet? "No" is okay.
- # [21:34] <Hixie> (if they're not we'll pretend they are and then apologise to gsnedders later)
- # [21:34] <Hixie> nope
- # [21:34] <TabAtkins> Okay, cool.
- # [21:35] <TabAtkins> So you've got a lot of new files added, and none of them have had `git add` or `git commit` run on them yet, right?
- # [21:35] <SamB> ("yes" would have been okay too)
- # [21:35] <Hixie> no new files iirc, just edits to existing files
- # [21:35] <Hixie> (these are changes to the html5lib tests)
- # [21:35] <TabAtkins> SamB: (Yeah, but I was trying to head off a "No, but I'm doing it now").
- # [21:35] <TabAtkins> Hixie: Okay.
- # [21:35] <SamB> Hixie: "git add" isn't just for new files
- # [21:35] <TabAtkins> So for each PR you wanna do, you'll need a fresh branch.
- # [21:35] <Hixie> ok
- # [21:35] * Hixie grabs some wood
- # [21:35] <TabAtkins> So run `git checkout -b my-new-branch-name`.
- # [21:36] <TabAtkins> That'lll make a new branch and switch you to it.
- # [21:36] <Hixie> is that going to create new directories or anything?
- # [21:36] <TabAtkins> No.
- # [21:36] <Hixie> or just change the local directory to be in a branch?
- # [21:36] <TabAtkins> Branches are a magic git concept, not reflected in your directory structure.
- # [21:36] <TabAtkins> They're just a way of naming commits.
- # [21:36] <Hixie> so this is basically a way of naming the next commit(s)?
- # [21:36] <TabAtkins> The Yeah.
- # [21:36] <SamB> it switches which branch git considers to be your current branch
- # [21:37] <TabAtkins> Once you're in a new branch, `git add` the files you changed that you want to submit in a single PR, and `git commit`.
- # [21:37] <TabAtkins> Then make a new branch, and repeat.
- # [21:37] <Hixie> are these branch names local only, or should i take care to make them relevant in the future?
- # [21:37] <TabAtkins> Your uncommited files will follow you around as yous witch branches.
- # [21:37] <SamB> TabAtkins: shouldn't he switch back to "master" or whatever before he makes the next one?
- # [21:37] <TabAtkins> They'll go away as soona s the PR is merged.
- # [21:37] <TabAtkins> SamB: Oh yeah, right.
- # [21:37] <Hixie> ok
- # [21:37] <SamB> Hixie: the branch names don't have to last
- # [21:37] <TabAtkins> Do `git checkout master` after each commit, or your history'll be weird.
- # [21:38] <TabAtkins> And github will be unhappy.
- # [21:38] <SamB> I mean, probably the branches will be around forever but nobody will care once they've been merged up
- # [21:38] <TabAtkins> SamB: GH's UI lets you delete the branches.
- # [21:38] <SamB> well, sure
- # [21:38] <Hixie> where do i put the commit message?
- # [21:38] <TabAtkins> At least, remotely, and then that'll sync down.
- # [21:38] <Hixie> git commit -m"" ?
- # [21:38] <TabAtkins> Hixie: `git commit -m ""`
- # [21:38] <Hixie> k
- # [21:38] <SamB> but most people don't seem to bother to actually delete them ;-)
- # [21:38] <Hixie> and that gets sent to gsnedders somehow as part of the pull request?
- # [21:39] <SamB> Hixie: yes
- # [21:39] <TabAtkins> Not quite.
- # [21:39] <TabAtkins> Heh.
- # [21:39] <TabAtkins> This is preparing them for that.
- # [21:39] <TabAtkins> There are ways to do the PR from teh command-line, but I've never learned them.
- # [21:39] <TabAtkins> I do it through github's UI.
- # [21:39] <zcorpan> Hixie: you will want to checkout master (or gh-pages or whatever is the default branch) before doing the next git checkout -b foo
- # [21:39] <Hixie> TabAtkins: github can see my server?
- # [21:39] <SamB> TabAtkins: well, it does get included in the PR more-or-less
- # [21:40] <TabAtkins> Hixie: It can after you push.
- # [21:40] <TabAtkins> You'll be pushing the branches individually, and then you can tell GH to turn each branch into a PR.
- # [21:40] <TabAtkins> Like I said, there are more direct ways to do this last part, but I ahven't learned them yet.
- # [21:41] <Hixie> ok, so i've done git checkout -b format-changes; git add README.md; git commit -m"Update README file to include new and recent changes to the format"
- # [21:41] <TabAtkins> Now checkout master.
- # [21:41] <TabAtkins> Then repeat those steps for each other change.
- # [21:41] <Hixie> ok
- # [21:41] * Quits: sak_to (~sak_to@fifthlight-140-202.cust.b2b2c.ca) (Remote host closed the connection)
- # [21:41] <TabAtkins> This'll clear out your working directory, which'll make things simpler if you have to resolve conflicts or whatever.
- # [21:41] <zcorpan> not push first?
- # [21:42] <zcorpan> git push origin -u format-changes
- # [21:42] <TabAtkins> zcorpan: Yeah, I'm just worrying about merge conflicts, though I guess that can be handled later.
- # [21:42] * Joins: sak_to (~sak_to@fifthlight-140-202.cust.b2b2c.ca)
- # [21:42] <TabAtkins> There won't be any conflict with the initial push.
- # [21:42] <TabAtkins> So yeah, do what zcorpan says.
- # [21:44] <Hixie> k
- # [21:44] * Hixie wonders what his username is
- # [21:44] <TabAtkins> Is it asking for that?
- # [21:44] <TabAtkins> It's your github username/pw.
- # [21:44] <zcorpan> (if you want to make more commits to the same PR later, you can just checkout that branch and make your change, git add <file>; git commit -m "..."; git push )
- # [21:45] <zcorpan> (to fix review comments or rebase etc)
- # [21:45] <Hixie> hm
- # [21:45] * Hixie tries to log in via the web site
- # [21:45] <Hixie> i thought i knew my credentials...
- # [21:46] <zcorpan> Hixie: did you clone with https: URL?
- # [21:46] * Quits: sak_to (~sak_to@fifthlight-140-202.cust.b2b2c.ca) (Ping timeout: 245 seconds)
- # [21:46] <Hixie> "The requested URL returned error: 403 while accessing https://github.com/html5lib/html5lib-tests/info/refs"
- # [21:46] <Hixie> so i guess yes?
- # [21:46] <Domenic> if you have two-factor auth on you get screwed and have to generate a new per-machine password
- # [21:47] <Hixie> looks like chrome knows my password
- # [21:47] <Domenic> good old chrome
- # [21:47] <Hixie> now i just need to get chrome to tell it to me :-)
- # [21:47] <TabAtkins> That's in your settings page.
- # [21:47] <Hixie> yeah, chrome i know how to use. :-P
- # [21:48] <Hixie> ok well it's what i thought it was
- # [21:48] <Hixie> weird
- # [21:48] <Hixie> wtf
- # [21:49] <Hixie> no two factor auth...
- # [21:49] * Quits: SteveF (~chatzilla@cpc3-nmal20-2-0-cust916.19-2.cable.virginm.net) (Ping timeout: 244 seconds)
- # [21:49] <TabAtkins> Oooh!
- # [21:49] <TabAtkins> You may have used your keys, and it's asking for your key password.
- # [21:49] <TabAtkins> Though, if it's asking for username, that's not right.
- # [21:49] <Hixie> it's asking for my username first, yeah...
- # [21:50] <TabAtkins> Oh wait, that might still be right.
- # [21:50] <Hixie> my .gitconfig has different information
- # [21:50] <Hixie> i wonder if that's the problem
- # [21:50] <TabAtkins> Maybe your key password for whatever key you gave to github?
- # [21:50] <Hixie> TabAtkins: i have no ssh keys set up
- # [21:50] <TabAtkins> Okay, then never mind that.
- # [21:50] <Hixie> though maybe i should just do that
- # [21:51] <TabAtkins> It means no un/pw, so that's what I do.
- # [21:51] * Quits: zcorpan (~zcorpan@90-230-218-37-no135.tbcn.telia.com) (Remote host closed the connection)
- # [21:52] <Hixie> yeah
- # [21:52] <Hixie> ok done
- # [21:52] <Hixie> let's try git push again
- # [21:52] <Hixie> still asking for username
- # [21:52] <Hixie> wtf
- # [21:54] <Hixie> https://help.github.com/articles/https-cloning-errors is unhelpful...
- # [21:55] <Hixie> i've just discovered you can use svn with github
- # [21:55] <Hixie> that's rather tempting
- # [21:56] <TabAtkins> Haha, you'll have to learn git someday!
- # [21:56] <caitp> I think it just uses git-svn behind the scenes, but it's probably not as tempting as you think
- # [21:56] <TabAtkins> (Though, learning GitHub is somewhat harder than just learning git.)
- # [21:56] <Hixie> ok seriously, why is github not letting me login
- # [21:56] <Hixie> i can ssh to github fine
- # [21:57] <TabAtkins> annevk: Which spec was it that I offered to Bikeshed for you? Was it DOM?
- # [21:57] * Joins: tj_vantoll1 (~Adium@c-98-250-130-237.hsd1.mi.comcast.net)
- # [21:58] <caitp> Hixie: which remote url are you using? if its your own repository, and you aren't using the secure url, you should be able to login with your github user/pass
- # [21:58] <Hixie> https://help.github.com/articles/why-is-git-always-asking-for-my-password seems likely to be what's going on, but i don't understand the words on that page
- # [21:58] <caitp> if it's the secure url, you should associate a key with your account and make sure git knows where to find it
- # [21:58] <Hixie> caitp: i'm trying to push to https://github.com/html5lib/html5lib-tests
- # [21:58] <Hixie> caitp: and i have the key set up such that ssh -T git@github.com works fine
- # [21:59] <caitp> if it's not an account you have write access to, you're out of luck regardless
- # [21:59] <jamesr_> you can push to the ssh url if you want to use ssh key to auth
- # [21:59] <caitp> i'm guessing you have write access to html5lib
- # [21:59] <caitp> actually, I don't see you in the members list for that org
- # [21:59] <Hixie> caitp: i'm just trying to upload a pull request, presumably i don't need any rights to do that
- # [21:59] <TabAtkins> Oh yeah, that's probably it.
- # [21:59] * Quits: tj_vantoll (~Adium@2601:4:5380:eba:fde2:2a66:ef4d:1cc3) (Ping timeout: 252 seconds)
- # [22:00] <caitp> for a pull request, you'd upload to your own account
- # [22:00] <TabAtkins> To do a PR without commit right, you need to fork the repo to your own account.
- # [22:00] <TabAtkins> Then you push to your fork, and issue a PR from that.
- # [22:00] <Hixie> (seriously, what was wrong with the way we did it five years ago)
- # [22:00] <SamB> TabAtkins: is there a quick way to delete all the branches then?
- # [22:00] <TabAtkins> The main account can then accept the PR to integrate the change into themselves.
- # [22:00] <caitp> defunkt's `hub` tool makes this workflow pretty nice
- # [22:00] <caitp> so you might want to look into that
- # [22:00] <Hixie> so...
- # [22:00] <TabAtkins> Hixie: If you have commit rights its easier.
- # [22:00] <Hixie> how do i do that
- # [22:00] <Hixie> i thought i had already done my own fork
- # [22:00] <TabAtkins> Go into GitHub, and click the "fork" button.
- # [22:00] <Hixie> isn't that the whole point of git
- # [22:01] <TabAtkins> Then we can change your remote.
- # [22:01] <Domenic> TabAtkins: what metadata can I use to get something like the headers on http://fetch.spec.whatwg.org/ et al?
- # [22:01] <TabAtkins> And push your branches there instead.
- # [22:01] <caitp> cloning and forking are distinct
- # [22:01] <TabAtkins> Domenic: We don't have WHATWG boilerplate yet, but you can add that yourself really easily.
- # [22:01] <Domenic> TabAtkins: sounds good, will do later.
- # [22:01] <TabAtkins> Hixie: "forking" is a GH concept, not a git one.
- # [22:02] <Hixie> ok https://github.com/Hixie/html5lib-tests exists, whatever that is
- # [22:02] <TabAtkins> Hixie: All of these instructions are *way* more complicated than they have to be, because you're working within the GH model, but didn't *start* that way.
- # [22:02] * Quits: othermaciej (~mjs@17.114.217.240) (Quit: othermaciej)
- # [22:02] <Hixie> TabAtkins: i'd be happy to work in some other model if it's simpler
- # [22:02] * Quits: weinig (~weinig@17.245.25.226) (Quit: weinig)
- # [22:02] <TabAtkins> Hixie: Easiest model is to ask gsnedders to give you commit rights, and just push your changes. ^_^&
- # [22:02] <Hixie> i just want to have gsnedders review my changes and then have them committed to the repo
- # [22:03] <TabAtkins> Then you can set up cleanly with the GH model.
- # [22:03] <TabAtkins> In the GH model, you do all your work in your own fork, and throw PRs at the main repo.
- # [22:04] <caitp> the GH model is typically, you have your organization with a canonical repository, which is considered upstream, you have your own fork on your own account, and you have your local clones on however many machines
- # [22:04] <Hixie> TabAtkins: so in the GH model, you have a local repo, and then you push to a GH repo, and then you push from there to another GH repo?
- # [22:04] <Hixie> man
- # [22:04] <caitp> so all of your pushes should be against your fork on your github account, and you can submit those pushes for review in the canonical repository, it's pretty elegant
- # [22:04] <Hixie> again
- # [22:04] <TabAtkins> You push from your local repo to your fork, then PR over to the main fork, yeah.
- # [22:04] <Hixie> life was so much easier back in the subversion days
- # [22:04] <Hixie> but whatever
- # [22:05] <TabAtkins> Hixie: Depends on what you mean by "easier".
- # [22:05] <Hixie> is there some way to change my local working copy to point to https://github.com/Hixie/html5lib-tests instead?
- # [22:05] <TabAtkins> The GH model is designed for easy collaboration with strangers without allowing them to stomp on everything.
- # [22:05] <TabAtkins> And it works, once you know how to use it.
- # [22:05] <caitp> this model really grows on you, I am looking forward to chromium fully switching to git so that it's less crazy
- # [22:05] <TabAtkins> Yes, `git remote set-url origin <url-here>`
- # [22:06] <Hixie> caitp: so far this model has only grown on me like a disgusting fungus :-P
- # [22:06] <TabAtkins> You'll have to do this for each branch, I think? I'm not super-sure, haven't done that before.
- # [22:06] <TabAtkins> Hixie: You're just experiencing change aversion due to trying to apply your SVG mental model on top of git.
- # [22:06] * Joins: othermaciej (~mjs@17.114.217.240)
- # [22:06] <TabAtkins> They're close, but not exact, so the friction feels like errors.
- # [22:06] <Hixie> no, i'm pretty sure it's not change aversion :-)
- # [22:06] <TabAtkins> Adn then having to deal with GH's structure on top of it is makign it worse.
- # [22:07] <TabAtkins> Having used both SVG and git extensively, I know it's not just "git is fucked up and hard". ^_^
- # [22:07] <TabAtkins> It's a little bit more complex, but most of the time you don't see that, and the complexity is actually quite worthwhile.
- # [22:07] <TabAtkins> Hixie: You may be able to make changes directly to .git/config
- # [22:08] * Joins: morrita_ (uid16889@gateway/web/irccloud.com/x-zshpelfmsfsrlozu)
- # [22:08] <Hixie> so .git/config has no mention of the old url at all anymore
- # [22:09] <caitp> the basics are super simple, and intermediate stuff like complicated rebasing and refactoring stuff across multiple commits is actually really straight forward, but I guess I should focus on meetings and do less git-evangelism
- # [22:09] <Hixie> but i'm still getting prompted for my username
- # [22:09] <Domenic> TabAtkins: what if I have <dfn>Chunks</dfn> and want to (auto?) link to it from the word "chunk"
- # [22:09] <TabAtkins> Domenic: That happens automatically.
- # [22:09] <Domenic> such magic :O
- # [22:09] <TabAtkins> When it doesn't, use the title attribute to provide alternate text.
- # [22:10] * Joins: tantek (~tantek@63-252-49-201.ip.mcleodusa.net)
- # [22:10] <Domenic> Is there any difference between <a> and '?
- # [22:10] <jgraham> Hixie: We can make this easier
- # [22:10] <TabAtkins> (Bikeshed automatically accounts for common plurals, possessives, and -ing for both definitions and auotlinks.)
- # [22:10] <TabAtkins> Domenic: Big diff. Single quotes are for CSS property autolinks.
- # [22:10] <jgraham> Hixie: The GitHub model is broken for cases like this
- # [22:10] <TabAtkins> <a> by itself is a dfn autolink.
- # [22:10] <Domenic> ah k
- # [22:10] <TabAtkins> That is, a definition of type "dfn".
- # [22:10] <TabAtkins> A normal term, in other words.
- # [22:10] <jgraham> You should push to a branch of the main repo
- # [22:11] <jgraham> Then gsnedders or whoever can make pushes to fix your commits if needed
- # [22:11] <TabAtkins> jgraham: He just needs commit right for that, which he currently doesn't have.
- # [22:12] <jgraham> TabAtkins: That seems like a solvable problem
- # [22:12] <TabAtkins> That's what I said. ^_^
- # [22:13] <Hixie> ok, i've changed my password and now it lets me use that to push
- # [22:13] <jgraham> TabAtkins, Hixie: OK, now you have push access
- # [22:13] <Hixie> still isn't using ssh
- # [22:13] <Hixie> but whatever
- # [22:13] <Hixie> jgraham: ah
- # [22:13] <TabAtkins> Hixie: Okay, so just pushing to the main repo should be good now.
- # [22:13] <Domenic> General question (not Bikeshed specific): when should I use a normative vs. informative reference?
- # [22:13] <Hixie> does "push" affect my local repo at all?
- # [22:13] <Hixie> or can i just change the remote url and push again
- # [22:13] <TabAtkins> Domenic: Will a change in the reference cause your spec to need to change? If so, normative.
- # [22:13] <Domenic> In this case I am using the reference in an example, so it is presumably informative, but curious what the dividing line is.
- # [22:14] <TabAtkins> Hixie: Don't bother with remote urls now.
- # [22:14] <Domenic> TabAtkins: nice, that's a pretty clear line. thanks.
- # [22:15] <Hixie> Domenic: normative reference means that implementations of your spec need to read and implement the other spec or your spec won't make sense
- # [22:15] <TabAtkins> Hixie: But no, a push does nothing to your local repo. It just copies commits from your history to the remote repo's history.
- # [22:15] <Hixie> Domenic: non-normative means that the other document could be deleted from the world, and your spec would be unaffected
- # [22:15] <Hixie> Domenic: but that readers might still want to see that other spec for context
- # [22:15] <Hixie> TabAtkins: k
- # [22:15] <Domenic> Thanks Hixie.
- # [22:16] <TabAtkins> Hixie: Just like how "add" just copies changes from your working area to your staging area, and "commit" just copies changes from your staging area to your history. ^_^
- # [22:16] * Quits: darobin (~darobin@2a01:e34:ed05:d180:e84f:5b6:2b79:8589) (Remote host closed the connection)
- # [22:16] <Domenic> TabAtkins: well, that was pretty darn easy; impressive tool.
- # [22:17] <jgraham> Hixie: You want to do something like git remote add github git@github.com:html5lib/html5lib-tests.git; git push --set-upstream github HEAD:hixie/new_tests
- # [22:17] <TabAtkins> Starting from Anolis makes some things easy. It's also possible that your dfns aren't typed correctly yet. ^_^
- # [22:17] <Domenic> TabAtkins: what's the best way to get WHATWG boilerplate in? Pull request bikeshed, or can I have it take a boilerplate from external?
- # [22:17] <TabAtkins> I'll give it a lookover if you want.
- # [22:17] <Hixie> TabAtkins: there sure are a lot of different stages in the git/gh model
- # [22:17] <Hixie> what is whatwg boilerplate?
- # [22:17] <TabAtkins> Domenic: PR bikeshed - the /include directory has all the boilerplate files.
- # [22:17] <Hixie> there shouldn't be any whatwg boilerplate
- # [22:17] <TabAtkins> Just make new ones for whatever you need.
- # [22:18] <TabAtkins> Hixie: The entire header and footer are boilerplate.
- # [22:18] <Domenic> TabAtkins: Eek, that means I have to get it running locally on Windows... wheeee
- # [22:18] <Hixie> there's no standard header and footer for whatwg specs
- # [22:18] <Hixie> unless you mean the DOCTYPE
- # [22:18] <TabAtkins> You should make one. ^_^
- # [22:18] <Domenic> Hixie: "boilerplate" in this case includes <script> and <link> files
- # [22:18] <TabAtkins> But also, the Group can be as granular as needed.
- # [22:18] <Hixie> TabAtkins: no, i mean, there's no standard. it's whatever the spec writer wants.
- # [22:18] <Hixie> e.g. whatwg/html and whatwg/dom are quite different
- # [22:19] <TabAtkins> HTML's a special case. Everyone else is mostly different just because of the lack of a standard.
- # [22:19] <TabAtkins> Crafting a stadnardized header would be fine for most of them.
- # [22:19] <Hixie> noooooo
- # [22:19] <Hixie> no bureaucracy
- # [22:19] <Hixie> no boilerplate
- # [22:20] <Hixie> the spec author should be responsible for all spec content
- # [22:20] <TabAtkins> It's nothing to do with "bureacracy".
- # [22:20] <TabAtkins> It's just that the header is pretty formulaic.
- # [22:20] <Hixie> it shouldn't be
- # [22:20] <TabAtkins> And so typing it all out yourself is dumb.
- # [22:20] <Hixie> it should be compelling
- # [22:20] <Hixie> it should draw the reader in
- # [22:20] <Hixie> if it's formulaic then we're doing something wrong
- # [22:20] <Hixie> different specs have different needs
- # [22:21] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Remote host closed the connection)
- # [22:22] <TabAtkins> Those needs are much less unique and special than I think you're indicating. Case in point: most WHATWG specs have nearly identical-looking headers.
- # [22:22] <Hixie> and they all suck
- # [22:22] <TabAtkins> And I'll bet that whenever Anne makes a new one, he copy/pastes from an old one.
- # [22:22] <Hixie> seriously they're ugly headers right now
- # [22:22] <Hixie> we shouldn't create new specs that look like that
- # [22:23] <TabAtkins> Then figure out what they *should* look like, and standardize on that.
- # [22:23] * Joins: mven_ (~textual@wsip-98-173-125-120.lv.lv.cox.net)
- # [22:23] <Hixie> it will surely change regularly
- # [22:23] <Hixie> as different spec authors experiment
- # [22:23] <TabAtkins> Then change it regularly.
- # [22:24] <Hixie> there shouldn't be an "it"
- # [22:24] <TabAtkins> This is far easier to do when it's generated by the tool.
- # [22:25] <Hixie> it should just be part of the spec source
- # [22:25] <Hixie> there's nothing to generate
- # [22:25] <TabAtkins> Welp, most of it is repetitive garbage no matter what you do, so I guess I totally disagree.
- # [22:26] <Hixie> there shouldn't be anything repetitive about it
- # [22:26] <Hixie> if it's repetitive it shouldn't be in the spec
- # [22:27] <Domenic> I *would* be happier right now if I could just port over the existing parts of the spec source, and have Bikeshed only touch the main body of the spec... there's like 15 lines that I'm going to spend the next few hours duplicating
- # [22:28] <TabAtkins> Domenic: If you do that, you'll lose the auto-genned index, refs, issues index, etc.
- # [22:28] <TabAtkins> But you can trick Bikeshed into not doing the header generation by including a doctype.
- # [22:28] <TabAtkins> If the first line is the html doctype, Bikeshed assumes you're providing your own header.
- # [22:28] <TabAtkins> Hm, I can't remember if it still includes the footer in that case. Lemme see...
- # [22:29] <Hixie> um, so i broke something with this git stuff i'm doing
- # [22:29] <TabAtkins> Ah, it does not.
- # [22:29] <Hixie> i tried to be clever and use git add -p to add just one part of a change
- # [22:29] <Hixie> and now it's saying "error: You have local changes to 'tree-construction/template.dat'; cannot switch branches" when i try to checkout master
- # [22:30] <SamB> Hixie: "git stash" now
- # [22:30] <TabAtkins> Hixie: You need to commit them first.
- # [22:30] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [22:30] <SamB> then "git stash pop" after you switch back
- # [22:30] * Quits: Lachy (~Lachy@cm-84.215.104.248.getinternet.no) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [22:30] <Hixie> i did commit them
- # [22:30] <Hixie> i'm following the same steps you gave before :-)
- # [22:30] <TabAtkins> Oh, but they're to the file that's also commited.
- # [22:30] <Hixie> git checkout -b BRANCHNAME; git add FILES; git commit -m"MESSAGE"; git push origin -u BRANCHNAME; git checkout master
- # [22:30] <TabAtkins> Okay, yeah, stash.
- # [22:31] <Hixie> what does git stash pop do?
- # [22:31] <TabAtkins> `git stash` now will save and undo all the remaining uncommitted local changes.
- # [22:31] <TabAtkins> pop throws them away, don't do that.
- # [22:31] <Hixie> it says "nothing to apply"
- # [22:31] <SamB> hmm
- # [22:31] <SamB> I thought pop applied them first, THEN threw them away if that worked
- # [22:31] <Hixie> how do i see my "local changes"?
- # [22:32] <Hixie> and what are they local to?
- # [22:32] <TabAtkins> So, back to the visual guide. ^_^
- # [22:32] <Hixie> since there's three levels just in my own repo...
- # [22:32] <TabAtkins> working directory is the current state of your files.
- # [22:32] <TabAtkins> What you actually see.
- # [22:32] <SamB> Hixie: once committed, they don't count as "local" according to git
- # [22:32] <TabAtkins> staging area is what's getting ready for a commit.
- # [22:32] <Hixie> so which are the local changes? staged or working?
- # [22:33] <TabAtkins> (This exists for a few reasons, one of which is so that `git add -p` can exist and make sense)
- # [22:33] <TabAtkins> It usually means "not committed".
- # [22:33] <Hixie> git diff looks at working vs current comitted state of the branch?
- # [22:33] <jgraham> Hixie: git status shows the files with changes
- # [22:33] <TabAtkins> git diff looks at lots of things depending on the args.
- # [22:33] <TabAtkins> Visual guide explains that.
- # [22:33] <jgraham> Split into staged / unstaged / untracked
- # [22:33] <TabAtkins> Better than I'd be able to.
- # [22:33] <jgraham> git diff shows the unstaged changes
- # [22:33] <jgraham> git diff --staged shows the staged changes
- # [22:34] <Hixie> git diff --staged is empty
- # [22:34] <Hixie> git status shows everything under "On branch newtemplatetest" "Changed but not updated"
- # [22:34] <Hixie> presumably this is because i commited just one bit of one of these changed files
- # [22:34] <Hixie> and it doesn't know how to throw just that change away when going back to the earlier branch
- # [22:35] <Hixie> while keeping my other changes
- # [22:35] <Hixie> so i guess i do git diff > foo.patch; git reset; patch < foo.patch ?
- # [22:35] <jgraham> Hixie: Can you pastebin the output somewehre
- # [22:35] <Hixie> output of what?
- # [22:35] <jgraham> No, if you're using patch files you're doing it wrong
- # [22:35] <jgraham> Hixie: git status
- # [22:36] <Hixie> damowmow.com/temp/git-output
- # [22:36] <Hixie> http://damowmow.com/temp/git-output
- # [22:36] <Hixie> $ git checkout master
- # [22:36] <Hixie> error: You have local changes to 'tree-construction/template.dat'; cannot switch branches.
- # [22:36] <Hixie> template.dat is the file for which i commited just one chunk
- # [22:36] <Hixie> on the current branch
- # [22:37] <jgraham> Hixie: Just to make sure I know, what are you trying to achieve
- # [22:37] <jgraham> The scrollback was quite hard to follow
- # [22:37] <Hixie> trying to get gsnedders a bunch of patches
- # [22:37] <Hixie> one for each related change
- # [22:37] <Hixie> (brb getting food, back in 5 min)
- # [22:37] * Quits: seventh (seventh@207-207-17-149.fwd.datafoundry.com) (Ping timeout: 272 seconds)
- # [22:37] <jgraham> OK, and you have committed one patch and want to make more
- # [22:39] * Joins: Lachy (~Lachy@cm-84.215.104.248.getinternet.no)
- # [22:39] <TabAtkins> jgraham: And specifically, he's commited part of a changed file with add -p, and wants the rest of the file's changes in another branch.
- # [22:39] <jgraham> OK
- # [22:39] * Joins: weinig (~weinig@17.245.25.226)
- # [22:40] * Quits: weinig (~weinig@17.245.25.226) (Client Quit)
- # [22:40] * Quits: jeremyj (~jeremyj@17.202.44.231) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [22:40] * Quits: jwatt (~roslea@host109-145-4-35.range109-145.btcentralplus.com) (Ping timeout: 240 seconds)
- # [22:40] <jgraham> Hixie: So the advice from everyone about git stash was correct
- # [22:41] * Joins: aklein (sid4454@gateway/web/irccloud.com/x-frqvnemfwgzfzxlp)
- # [22:41] <jgraham> git stash basically commits all the changes in your working directory to a temporary branch
- # [22:42] * Joins: weinig (~weinig@17.202.48.136)
- # [22:42] <jgraham> These temporary areas are notionally arranged as a stack
- # [22:42] <jgraham> so git stash; git checkout master; git stash pop
- # [22:42] <annevk> TabAtkins: yeah, DOM I think
- # [22:42] <Hixie> back
- # [22:43] * Joins: KevinMarks_ (~KevinMark@c-67-164-14-200.hsd1.ca.comcast.net)
- # [22:43] <Hixie> jgraham: ok cool, thanks
- # [22:43] <Hixie> jgraham: that's basically the same as what i said about with diff and patch
- # [22:43] <annevk> Domenic: hmm "tee", push x to stream, read from stream (and read until empty or read current buffer)
- # [22:45] <annevk> Domenic: if stream is closed/open I guess
- # [22:45] <annevk> (I currently use "is fully read" for closed)
- # [22:47] * Joins: bholley (~bholley@corp.mtv2.mozilla.com)
- # [22:47] <Hixie> if i added something to my staging area in error, how do i remove it?
- # [22:48] <Hixie> git reset?
- # [22:49] * Quits: TallTed (~Thud@63.119.36.36)
- # [22:49] <Hixie> yeah that seems to be it
- # [22:49] <Hixie> how about a way to diff the working directory against the staged stuff?
- # [22:49] <Hixie> so i can tell what i haven't staged?
- # [22:49] <TabAtkins> Hixie: VISUAL GUIDE
- # [22:49] <TabAtkins> It has all of these questions in beautiful diagram form.
- # [22:50] <Hixie> it claims "git diff" does what i want
- # [22:50] <Hixie> but it's not clear that that is true
- # [22:50] <TabAtkins> It hasn't lied to me yet, so shrug.
- # [22:51] <Hixie> k
- # [22:51] <Hixie> part of the problem is that things that seem symmetric have entirely different names
- # [22:51] <Hixie> e.g. look at the diff diagram on that page
- # [22:51] <TabAtkins> Yes.
- # [22:51] <Hixie> diff maint, diff HEAD, diff, diff --cached, wtf
- # [22:52] <Hixie> it's all over the place
- # [22:52] <TabAtkins> Note that "maint" is just a branch name there, not a command.
- # [22:52] <TabAtkins> And HEAD is a magic commit name that always refers to the tip of your branch.
- # [22:53] <Hixie> yeah
- # [22:53] <TabAtkins> So `diff` is WD against SA, `diff <commit/branch/etc>` is WD against history, `diff <commit/etc> <commit/etc>` is commit against commit.
- # [22:53] <TabAtkins> The --cached one is weird, but it's also rare to have to diff staging area against history.
- # [22:54] <Hixie> basically i think git suffers from two fundamental problems (both made orders of magnitude worse by github): it's over-engineered, and it has a horrible inconsistent ui
- # [22:54] <TabAtkins> Ignore the GH parts right now. They have a simple and consistent model that is terribly confusing if you come at it piecemeal and trying to slowly adapt your working process to it.
- # [22:54] * Joins: jeremyj (~jeremyj@17.202.44.231)
- # [22:54] <TabAtkins> Once you actually learn it and use it proper, it's fairly easy and simple.
- # [22:55] * Hixie accidentally types git checkout -p foo instead of -b foo and hopes that didn't break anything
- # [22:56] <TabAtkins> I can't make the same argument as strongly for git itself, because it does have some weird edges, but its core is pretty simple and elegant.
- # [22:56] * Joins: jwatt (~roslea@host109-145-4-35.range109-145.btcentralplus.com)
- # [22:56] <TabAtkins> Though again, piecemeal changing your process from SVG to git is confusing, and it burned me too.
- # [22:56] <TabAtkins> Once I found the visual guide everything made way more sense.
- # [22:56] <Hixie> i'm not trying to change my process at all
- # [22:56] <Hixie> i'm just trying to commit this one set of changes
- # [22:56] <Hixie> :-)
- # [22:57] <TabAtkins> Your process being "make changes, commit them". ^_^
- # [22:57] <TabAtkins> Domenic: Point me to a spec that you want to use the heading portion of, and I'll make boilerplates for you to use.
- # [22:58] * Quits: abinader (sid21713@gateway/web/irccloud.com/x-tdnrprgufaflljzj)
- # [22:58] <TabAtkins> Domenic: If you and annevk can agree on what heading stuff to use, all the better.
- # [22:58] <TabAtkins> Domenic: Also, I'm happy to review your bikeshedded file, to make sure you're using the right dfn types (so Shepherd will be happy when it starts parsing your spec).
- # [22:59] <Hixie> jgraham: (btw, thanks for setting me up with access)
- # [22:59] <Domenic> TabAtkins: excellent. i am very close to being done with a bikeshed draft that repros my current stuff, will ping you in 10 minutes probably
- # [22:59] <TabAtkins> kk
- # [23:00] * Joins: jacobolus (~jacobolus@74-95-6-5-SFBA.hfc.comcastbusiness.net)
- # [23:01] <TabAtkins> annevk: Is "dom-core.html" an important filename to maintain for the generated file?
- # [23:01] <TabAtkins> Totally fine if it is, just making sure what you want.
- # [23:02] <Hixie> TabAtkins: ok i've committed everything
- # [23:02] <Hixie> TabAtkins: is there somewhere i can review these changes?
- # [23:02] <Hixie> pushed everything ,rather
- # [23:02] <TabAtkins> In the github UI, you can change what branch you're looking at.
- # [23:03] <TabAtkins> And if you need to make changes, `git checkout my-branch-name`, make changes, commit, push.
- # [23:04] * Quits: jwatt (~roslea@host109-145-4-35.range109-145.btcentralplus.com) (Ping timeout: 245 seconds)
- # [23:04] <Hixie> then i hit "create pull request"?
- # [23:05] <TabAtkins> PRing from a branch to another branch in the same repo is fiddly.
- # [23:05] <TabAtkins> Better to just ping gsnedders about it and let him deal with it.
- # [23:05] <TabAtkins> He can pull the branch and merge it himself.
- # [23:06] <Hixie> ah ok these are all publicly viewable already? good
- # [23:06] <Hixie> https://github.com/html5lib/html5lib-tests/branches
- # [23:06] <TabAtkins> Yeah.
- # [23:06] <Hixie> gsnedders: ok dude, https://github.com/html5lib/html5lib-tests/branches
- # [23:06] <Hixie> TabAtkins: thanks so much for the help
- # [23:06] <Hixie> and to everyone else also
- # [23:07] <Hixie> but mainly tab :-)
- # [23:07] <TabAtkins> Now in the *future*, this can be much easier.
- # [23:07] <TabAtkins> Because you can do it right from the start.
- # [23:07] <TabAtkins> Clone your fork instead.
- # [23:07] <Domenic> heh, Python doesn't like Unicode
- # [23:07] <TabAtkins> Then make branches whenever you want to submit something.
- # [23:07] <TabAtkins> *Then* the "create PR" button in GitHub is easy and does the right thing.
- # [23:08] <TabAtkins> Domenic: Bikeshed errors? Plz let me know, everything should be clean by now.
- # [23:08] * Quits: annevk (~annevk@77-57-114-66.dclient.hispeed.ch) (Read error: Connection reset by peer)
- # [23:08] * Joins: annevk (~annevk@77-57-114-66.dclient.hispeed.ch)
- # [23:10] * Joins: RiVale (~rv@a79-168-80-35.cpe.netcabo.pt)
- # [23:11] * Parts: RiVale (~rv@a79-168-80-35.cpe.netcabo.pt)
- # [23:11] * Quits: Lachy (~Lachy@cm-84.215.104.248.getinternet.no) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [23:11] <TabAtkins> annevk: Would it annoy you if I converted your indentation to tabs?
- # [23:12] <jgraham> TabAtkins: No it isn't
- # [23:12] * Joins: Lachy (~Lachy@cm-84.215.104.248.getinternet.no)
- # [23:12] <TabAtkins> jgraham: What isn't?
- # [23:12] <jgraham> Fiddly to create PRs from branches in the same repo
- # [23:12] <jgraham> There is like a big green button for that
- # [23:13] <jgraham> Working from a fork is *much* harder
- # [23:13] <jgraham> Because there are 3 repos to worry about rather than two
- # [23:13] <jgraham> and it's much harder for anyone else to help you out
- # [23:13] <jgraham> because they can't push commits
- # [23:13] * Joins: josemanuel (~josemanue@99.Red-88-26-150.staticIP.rima-tde.net)
- # [23:14] <TabAtkins> jgraham: In my experience with picture-element, it was really annoying.
- # [23:14] <TabAtkins> But maybe that was because we used a non-master main branch.
- # [23:14] <jgraham> Perhaps
- # [23:14] <TabAtkins> The GH UI was just super-unfriendly for this.
- # [23:14] <TabAtkins> And defaulted to doing some crazy shit when trying to specify what branch you were PRing against.
- # [23:14] <jgraham> In all the situations where I use GH I vastly prefer working with one upstream rather than a fork and a master
- # [23:15] <jgraham> s/master/origin/
- # [23:15] <Hixie> i have no experience of this, so my opinion is worthless, but what jgraham is saying makes more sense to me. :-)
- # [23:15] <jgraham> TabAtkins: For example https://github.com/html5lib/html5lib-tests/tree/newtemplatetest seems to be one of Hixie's branches
- # [23:15] * Quits: Maurice` (copyman@5ED5617C.cm-7-6b.dynamic.ziggo.nl)
- # [23:16] <jgraham> and the green button to the left of the branch name creates a PR from that branch against master
- # [23:16] <TabAtkins> I've worked with several repos in the "fork and PR" model, and it's always worked well for me.
- # [23:16] <TabAtkins> jgraham: Okay, so my difficulty may have mainly been from the non-master main branch.
- # [23:16] <TabAtkins> Stupid gh-pages bullshit.
- # [23:16] * Quits: svl (~me@ip565744a7.direct-adsl.nl) (Quit: And back he spurred like a madman, shrieking a curse to the sky.)
- # [23:17] <TabAtkins> In Anolis, does <span> by itself do anything?
- # [23:17] <jgraham> If you then want to make a PR against another branch, you can do it using the "pick a branch
- # [23:17] <jgraham> " UI after you select "create pull request"
- # [23:17] * jgraham wished he knew that a few hours ago
- # [23:17] <TabAtkins> jgraham: Yeah, that UI *completely bugged out* when I last used it in the picture-element repo.
- # [23:18] <Domenic> TabAtkins: https://github.com/whatwg/streams/tree/bikeshed
- # [23:18] <Domenic> index.html is the old Anolis source; output.html is the bikeshed output.
- # [23:18] <Domenic> In the future will have Travis run bikeshed on gh-pages branch and not commit the output at all.
- # [23:18] * Quits: jeremyj (~jeremyj@17.202.44.231) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [23:19] <TabAtkins> Okay.
- # [23:19] <Domenic> Haven't started using implicit paragraphs yet but I think I got most other things like references and definitions updated.
- # [23:20] <Domenic> https://rawgit.com/whatwg/streams/bikeshed/output.html is the rendered output
- # [23:20] <TabAtkins> Domenic: OH man, use them. They're so good!
- # [23:20] <TabAtkins> Also: Markdown headings should work now.
- # [23:20] <Domenic> Ooooh
- # [23:20] <TabAtkins> But they're still technically experimental.
- # [23:20] <TabAtkins> Have I updated the docs yet? Hm...
- # [23:20] <Domenic> Can I use them for no-num no-toc or similar?
- # [23:21] <Hixie> <span> is just a cross-ref source (<a>)
- # [23:21] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Remote host closed the connection)
- # [23:21] <Hixie> in anolis
- # [23:21] <TabAtkins> I have not.
- # [23:21] <TabAtkins> Domenic: Not quite yet.
- # [23:21] <TabAtkins> Domenic: I have a shorthand for adding an id, but not for marking them no-num or no-toc.
- # [23:21] <TabAtkins> Hixie: Thanks.
- # [23:21] * Joins: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com)
- # [23:22] <Domenic> TabAtkins: any other markdown features to know about? E.g. links?
- # [23:23] <TabAtkins> Domenic: No inline markdown yet.
- # [23:23] <TabAtkins> Still slightly unsure if I want to do them or not.
- # [23:23] <Domenic> ya
- # [23:23] <TabAtkins> But code blocks work.
- # [23:23] <TabAtkins> And I'm working on lists.
- # [23:23] <Domenic> oooh
- # [23:23] <Domenic> fenced code blocks? dare i ask, with syntax highlighting??
- # [23:23] <TabAtkins> Plan to add syntax highlighting to code blocks a la gfm
- # [23:24] <Domenic> yessss will make these examples so much better
- # [23:24] <TabAtkins> Oh, I haven't added the code block support quite yet!
- # [23:24] * Joins: SteveF (~chatzilla@cpc3-nmal20-2-0-cust916.19-2.cable.virginm.net)
- # [23:24] <TabAtkins> I'll do that today, it's easy.
- # [23:26] <Hixie> ok so now that i have an html parser i need to figure out what features i need in my pipeline
- # [23:26] <Hixie> TabAtkins: what does bikeshed do that's critical?
- # [23:26] * Quits: jensnockert (~jensnocke@dynamic.1.7.34dbfd722180.e0f8471ae7fa.afb.bredband2.com) (Ping timeout: 272 seconds)
- # [23:26] <TabAtkins> Hixie: Biggest one is cross-spec cross-references.
- # [23:26] <Hixie> ok, got that one
- # [23:26] <Hixie> outline, also
- # [23:26] <TabAtkins> Totally automagic unless there's a conflict.
- # [23:26] <Hixie> not so worried about the magic aspect, i like being explicit
- # [23:26] <TabAtkins> Bleh, okay.
- # [23:27] <TabAtkins> Railroad diagrams seem to be a lot of people's favorite feature. ^_^
- # [23:27] <Hixie> i also need spec splitting, and back-references from <dfn>
- # [23:27] <TabAtkins> IDL auto-markup, too.
- # [23:27] <TabAtkins> (That is, inserting <dfn> or <a>, as appropriate, on all the things in an IDL block.)
- # [23:28] <Hixie> interesting
- # [23:28] <Hixie> i'll just stick to using <span>s for now
- # [23:28] <Hixie> i need to get this up and running before i start making it clever :-)
- # [23:28] * Quits: tj_vantoll1 (~Adium@c-98-250-130-237.hsd1.mi.comcast.net) (Quit: Leaving.)
- # [23:29] <TabAtkins> Yeah, those were all nice-to-haves that I added later.
- # [23:29] <TabAtkins> cross-spec refs were the actual reason I started Bikeshed.
- # [23:29] * Hixie adds that to the "v2" list
- # [23:33] * Joins: cheron (~cheron@unaffiliated/cheron)
- # [23:35] * Joins: bholley_ (~bholley@corp.mtv2.mozilla.com)
- # [23:37] * Quits: bholley (~bholley@corp.mtv2.mozilla.com) (Ping timeout: 264 seconds)
- # [23:38] * Quits: tantek (~tantek@63-252-49-201.ip.mcleodusa.net) (Quit: tantek)
- # [23:39] * Joins: jwatt (~roslea@host109-145-4-35.range109-145.btcentralplus.com)
- # [23:45] <Domenic> TabAtkins: When I do "<dfn>Some term</dfn> means ..." at the start of a paragraph, it gets capitalized in the index, which seems silly.
- # [23:45] <TabAtkins> Domenic: You can manually specify the linking test with title='', just like Anolis.
- # [23:45] <TabAtkins> I don't want to tweak any capitalization normally, as that will often be wrong.
- # [23:46] <Domenic> niiice
- # [23:47] * Quits: montecfel (~montecfel@gateway/tor-sasl/montecfel) (Ping timeout: 264 seconds)
- # [23:49] * Quits: SteveF (~chatzilla@cpc3-nmal20-2-0-cust916.19-2.cable.virginm.net) (Ping timeout: 240 seconds)
- # [23:49] * Quits: cheron (~cheron@unaffiliated/cheron) (Ping timeout: 272 seconds)
- # [23:50] * Quits: jeffreyatw (~jeffreyat@66-194-1-26.STATIC.twtelecom.net) (Ping timeout: 244 seconds)
- # [23:51] * Joins: jeffreyatw (~jeffreyat@66-194-1-26.STATIC.twtelecom.net)
- # [23:51] <TabAtkins> annevk: Is your definition of "throw" supposed to be the same as WebIDL's, or something different?
- # [23:52] * Quits: mven_ (~textual@wsip-98-173-125-120.lv.lv.cox.net) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
- # [23:56] <TabAtkins> annevk: Hmmmm, the version of DOM on GitHub is different from the version on whatwg.org. Where's the canonical source?
- # [23:57] * TabAtkins is going to stop working on Bikeshedding this until figuring this out, in case he has to redo anything.
- # [23:58] * Quits: KevinMarks_ (~KevinMark@c-67-164-14-200.hsd1.ca.comcast.net) (Remote host closed the connection)
- # [23:59] * Joins: KevinMarks_ (~KevinMark@c-67-164-14-200.hsd1.ca.comcast.net)
- # [23:59] * Joins: montecfel (~montecfel@gateway/tor-sasl/montecfel)
- # Session Close: Tue Jun 17 00:00:00 2014
The end :)