Options:
- # Session Start: Thu May 13 00:00:00 2010
- # Session Ident: #whatwg
- # [00:00] * Quits: othermaciej (~mjs@17.246.19.74) (Quit: othermaciej)
- # [00:01] * Joins: othermaciej (~mjs@17.246.19.74)
- # [00:01] * Quits: svl (~me@ip565744a7.direct-adsl.nl) (Quit: And back he spurred like a madman, shrieking a curse to the sky.)
- # [00:15] * Quits: Maurice (copyman@5ED573FA.cable.ziggo.nl)
- # [00:15] * Quits: mmn (~mmn@129-97-225-97.uwaterloo.ca) (Quit: Leaving.)
- # [00:18] * Quits: pesla (~pesla@ip51cc03a5.speed.planet.nl) (Quit: pesla)
- # [00:22] * Joins: pesla (~pesla@ip51cc03a5.speed.planet.nl)
- # [00:30] * Joins: grimboy (~grimboy@bcm-131-111-216-150.girton.cam.ac.uk)
- # [00:31] * Quits: pesla (~pesla@ip51cc03a5.speed.planet.nl) (Quit: kthxbye!)
- # [00:32] * Joins: pesla (~pesla@ip51cc03a5.speed.planet.nl)
- # [00:33] * Quits: pesla (~pesla@ip51cc03a5.speed.planet.nl) (Client Quit)
- # [00:34] * Joins: pesla (~pesla@ip51cc03a5.speed.planet.nl)
- # [00:49] <othermaciej> oh man another CORS flamewar?
- # [00:49] * Quits: workmad3 (~workmad3@cpc3-bagu10-0-0-cust651.1-3.cable.virginmedia.com) (Remote host closed the connection)
- # [00:50] * Joins: mmn (~mmn@129-97-120-85.uwaterloo.ca)
- # [00:53] * Quits: micheil (~micheil@124-170-251-16.dyn.iinet.net.au) (Quit: micheil)
- # [00:55] <Dashiva> Just the same one, I think
- # [00:58] * Quits: cying (~cying@70.90.171.153) (Quit: cying)
- # [00:59] * Joins: mbrubeck (~mbrubeck@184.77.100.34)
- # [01:02] <webr3> yeah but those headers in CORS need changed to the UMP ones | other than that I'm keeping my mouth shut
- # [01:05] * Joins: boblet (~boblet@p1072-ipbf36osakakita.osaka.ocn.ne.jp)
- # [01:08] * Quits: wakaba__ (~wakaba@181.63.138.58.dy.bbexcite.jp) (Quit: Leaving...)
- # [01:11] * Joins: Lachy (~Lachlan@85.196.122.246)
- # [01:16] * Joins: wakaba (~wakaba@181.63.138.58.dy.bbexcite.jp)
- # [01:24] * Joins: yutak_home (~kee@N038037.ppp.dion.ne.jp)
- # [01:27] * Quits: pesla (~pesla@ip51cc03a5.speed.planet.nl) (Quit: kthxbye!)
- # [01:34] * Quits: dglazkov (~dglazkov@nat/google/x-elwdridynppjhslq) (Quit: dglazkov)
- # [01:39] * Quits: Amorphous (jan@unaffiliated/amorphous) (Ping timeout: 245 seconds)
- # [01:55] * Joins: Amorphous (jan@unaffiliated/amorphous)
- # [01:57] * Quits: wakaba (~wakaba@181.63.138.58.dy.bbexcite.jp) (Quit: Leaving...)
- # [01:58] * Quits: aroben|afk (~aroben@unaffiliated/aroben) (Read error: Connection reset by peer)
- # [02:04] <TabAtkins_> Any of the html5lib guys awake at the moment?
- # [02:07] <Philip`> Depends on who is sufficiently an html5lib guy for your requirements
- # [02:09] <TabAtkins_> Anyone responsible for the development of it.
- # [02:11] <Philip`> I have commit access and wrote some bits of its code
- # [02:11] <Philip`> though I'm largely irresponsible
- # [02:11] * Joins: wakaba (~wakaba@181.63.138.58.dy.bbexcite.jp)
- # [02:12] <TabAtkins_> Good enough. You have any clue if you guys are going to try and get it pushed into the standard modules?
- # [02:13] <Philip`> I don't believe I've heard anybody intending to try that any time soon
- # [02:13] <TabAtkins_> Kk.
- # [02:13] <Philip`> It ought to be made fast (i.e. written in C) before attempting to make it standard
- # [02:14] <TabAtkins_> The teacher in this Python class I'm taking was just wondering.
- # [02:15] <TabAtkins_> As he had it listed as a standard external module.
- # [02:20] * Quits: ap (~ap@17.246.17.104) (Quit: ap)
- # [02:21] * Quits: yutak_home (~kee@N038037.ppp.dion.ne.jp) (Quit: Ex-Chat)
- # [02:28] * Quits: TabAtkins_ (~tabatkins@ip-64-139-11-254.dsl.sca.megapath.net) (Ping timeout: 240 seconds)
- # [02:34] * Joins: wakaba_ (~wakaba_@122x221x184x68.ap122.ftth.ucom.ne.jp)
- # [02:50] * Quits: eighty4 (~eighty4@c-d9cee455.012-403-6c6b701.cust.bredbandsbolaget.se) (Remote host closed the connection)
- # [02:55] * Quits: jwalden (~waldo@nat/mozilla/x-otjjkwyafzzsbdxo) (Quit: brb)
- # [02:57] * Joins: jwalden (~waldo@nat/mozilla/x-jzoputwmxcfkidtt)
- # [02:58] * Joins: divya (~divya@219.64.117.145)
- # [03:05] * Quits: ttepasse (~ttepasse@ip-109-90-160-217.unitymediagroup.de) (Quit: ?Q)
- # [03:07] * Quits: roc (~roc@203-97-204-82.dsl.clear.net.nz) (Ping timeout: 258 seconds)
- # [03:07] * Quits: cpearce (~cpearce@203-97-204-82.dsl.clear.net.nz) (Ping timeout: 258 seconds)
- # [03:09] * Joins: cpearce (~cpearce@203-97-204-82.dsl.clear.net.nz)
- # [03:10] * Joins: roc (~roc@203-97-204-82.dsl.clear.net.nz)
- # [03:11] * Quits: mmn (~mmn@129-97-120-85.uwaterloo.ca) (Quit: Leaving.)
- # [03:13] * Quits: KevinMarks (~KevinMark@157.22.22.57) (Ping timeout: 260 seconds)
- # [03:15] * Quits: JonathanNeal (~JonathanN@rrcs-76-79-114-210.west.biz.rr.com) (Ping timeout: 258 seconds)
- # [03:25] * tabatkins is now known as TabAtkins
- # [03:26] <TabAtkins> annevk: A Python class.
- # [03:30] * Joins: rolandsteiner (~rolandste@220.109.219.244)
- # [03:31] * Quits: sicking (~chatzilla@nat/mozilla/x-cmzguhcfhiohiskp) (Ping timeout: 264 seconds)
- # [03:39] * Joins: cpearce_ (~cpearce@203-97-204-82.dsl.clear.net.nz)
- # [03:41] * Joins: mmn (~mmn@129-97-225-97.uwaterloo.ca)
- # [03:42] * Quits: cpearce (~cpearce@203-97-204-82.dsl.clear.net.nz) (Ping timeout: 258 seconds)
- # [03:42] * cpearce_ is now known as cpearce
- # [03:53] * Joins: JonathanNeal (~JonathanN@99-59-124-67.lightspeed.irvnca.sbcglobal.net)
- # [04:00] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 240 seconds)
- # [04:05] * Joins: gavin_ (~gavin@firefox/developer/gavin)
- # [04:11] * Joins: JonathanNeal_ (~JonathanN@99-59-124-67.lightspeed.irvnca.sbcglobal.net)
- # [04:15] * Quits: JonathanNeal (~JonathanN@99-59-124-67.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 264 seconds)
- # [04:28] * Parts: mbrubeck (~mbrubeck@184.77.100.34)
- # [04:41] * Quits: dbaron (~dbaron@nat/mozilla/x-wzwqpawmdggewjch) (Quit: 8403864 bytes have been tenured, next gc will be global.)
- # [04:41] * Parts: llrcombs (~11rcombs@c-67-173-106-77.hsd1.il.comcast.net) ("Bye")
- # [04:46] * Joins: wakaba_0 (~wakaba_@203-140-91-140.eonet.ne.jp)
- # [04:47] * Quits: wakaba_ (~wakaba_@122x221x184x68.ap122.ftth.ucom.ne.jp) (Ping timeout: 258 seconds)
- # [04:53] * Quits: erlehmann (~erlehmann@89.204.153.9) (Quit: Ex-Chat)
- # [04:59] * Quits: rauchg (~rauchg@186.124.211.127) (Quit: rauchg)
- # [05:02] * Quits: rolandsteiner (~rolandste@220.109.219.244) (Quit: Leaving.)
- # [05:14] * Quits: dave_levin (~dave_levi@nat/google/x-yjftbsngfgatears) (Quit: dave_levin)
- # [05:14] * Quits: othermaciej (~mjs@17.246.19.74) (Quit: othermaciej)
- # [05:19] * Joins: othermaciej (~mjs@17.246.19.74)
- # [05:55] <paul_irish> boblet: i'm working on your feature request. :)
- # [05:55] <boblet> paul_irish: lol
- # [05:55] <boblet> sorry to forget the @ in the original
- # [05:56] <boblet> I was pretty shocked how much things have changed in the last two years
- # [05:56] <boblet> really didn’t realise the rate of progress
- # [05:56] <boblet> yay browser makers!
- # [05:58] <asmodai> hsivonen: Oh very colol indeed.
- # [05:58] <asmodai> cool
- # [05:58] <paul_irish> totally. :) now, would you expect ie7 to remain in the same position as you change years?
- # [05:58] <asmodai> http://validator.nu/?doc=http%3A%2F%2Fwww.in-nomine.org%2F~asmodai%2F3d.html passes as expected
- # [05:58] <asmodai> \o/
- # [05:59] <asmodai> Now to go back to being drained of my bodily moisture in this Thai heatwave
- # [06:00] <boblet> paul_irish: yeah — each browser is in the same arc, so flipping between 2008, 2009 and 2010 shows each arc filling out (well, depending on browser)
- # [06:00] <divya> boblet: some browsers disappear in later years
- # [06:01] <paul_irish> yah only from 2008, only ie7 survives until the 2010 view. :/
- # [06:01] <boblet> that makes things a little tricky
- # [06:01] <divya> Firefox 2 survives 08/09
- # [06:03] <divya> we could probably assign a position for each browser (irrespective of version)
- # [06:03] <boblet> hrm, you could have arcs for every browser in all views, and have them blank when that browser isn’t represented
- # [06:03] <boblet> divya: yeah
- # [06:04] <boblet> that’d work too
- # [06:04] <divya> so 3 spaces for IE 2 spaces for FF and 1 each for the rest.
- # [06:05] <paul_irish> and a ghost ie5
- # [06:05] <boblet> :|
- # [06:06] <divya> paul_irish: whaaaa
- # [06:06] <divya> In any case I think this should be an 'alternate view' but not default :|
- # [06:09] <boblet> divya: completely agree. current view is more helpful. ‘locked’ view only good for over-time comparison
- # [06:10] <boblet> btw you can use numbers in class names if you want ;-) (twenty10 etc is cute tho!)
- # [06:11] <boblet> s/use numbers in class names/start class names with numbers/
- # [06:11] <boblet> (read what I thought, not what I typed)
- # [06:11] <boblet> ;-)
- # [06:12] <paul_irish> you can? whoa sweet
- # [06:13] <boblet> paul_irish: in HTML5 class/id names can be any unicode character(s) except space
- # [06:13] <boblet> kanji is fine
- # [06:13] <paul_irish> beautiful.
- # [06:13] <paul_irish> does that degrade fine?
- # [06:14] <boblet> dunno about browser support for crazy things like smileys, but a starting number was only ever a validation issue, and I’ve seen kanji class names over here on live Japanese sites
- # [06:14] <divya> boblet: woah sweet!
- # [06:15] <boblet> :)
- # [06:15] <divya> last time I tried, it didnt detect for ids starting with numbers. Though that was more than a year ago :/
- # [06:16] <boblet> http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#classes which links to http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#space-separated-tokens
- # [06:16] <boblet> “A set of space-separated tokens is a string containing zero or more words separated by one or more space characters, where words consist of any string of one or more characters, none of which are space characters”
- # [06:17] <boblet> divya: it meaning validator?
- # [06:18] <divya> boblet: no, the styles did not apply :/
- # [06:18] <divya> when I did #1 { blah: blah; }
- # [06:18] <boblet> ohrly!? do you remember which browser?
- # [06:18] <divya> boblet: wow most likely Firefox but that was a long time ago :/
- # [06:19] <boblet> crikey, didn’t think browsers would actually enforce that rule. seems pretty brutal
- # [06:20] <boblet> well, maybe I’m living in a theoretical world then re: starting with a number
- # [06:20] <divya> boblet: they still dont http://dl.dropbox.com/u/952/random.html
- # [06:21] <boblet> yeah, I’m finding the same thing ;-(
- # [06:21] <boblet> jeez, that’s crap
- # [06:23] <divya> could it be something to do with DOM naming prefs
- # [06:23] <boblet> sorry for ray of false hope
- # [06:23] * Joins: dave_levin (~dave_levi@c-98-203-247-78.hsd1.wa.comcast.net)
- # [06:23] <divya> ROFL
- # [06:25] <paul_irish> boblet: its up. take a look
- # [06:27] <boblet> ooo nice jeorb! :)
- # [06:29] <boblet> btw I tested class and id names with →, ☺ and オ. all worked
- # [06:30] <boblet> so there’s something about starting numbers huh
- # [06:30] <boblet> (all worked = latest Chrome, Webkit, Opera, Firefox)
- # [06:33] <divya> boblet: ha! That is interesting to note :) I sense a blog post :P
- # [06:33] <boblet> divya: I’ll leave the IE checking to you ;-)
- # [06:36] <divya> boblet: sheesh The only Windows I have is Vista which eats my battery in 2 mins flat.
- # [06:38] <boblet> that’s a short window for browser testing
- # [06:39] <boblet> paul_irish: the JS var twenty10 etc in script.js are how you’re doing the alternate view right?
- # [06:40] <paul_irish> yup
- # [06:41] <paul_irish> it looks to see if there isnt a block where it expects one and chucks in a fake one
- # [06:41] * Quits: kuatto (~kuatto@c-75-72-177-136.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
- # [06:41] <paul_irish> going one by one through the browsers through the yeras.
- # [06:41] * Quits: othermaciej (~mjs@17.246.19.74) (Quit: othermaciej)
- # [06:42] <boblet> huh. tried to hack a version with all browsers taking a slot on every year, but the script doesn’t seem to work on the locally saved version. maybe b/c Chrome saved the HTML with all-caps tags
- # [06:45] <boblet> yeah, that was it. wow, I done gone broke it good now tho
- # [06:46] * Joins: dbaron (~dbaron@c-98-234-51-190.hsd1.ca.comcast.net)
- # [06:46] <paul_irish> while you're at it, size the bars to be representative of browser market share, why dontcha. :)
- # [06:47] <boblet> sure, right after I pop round to bring you both a cup of tea and a biscuit…
- # [06:47] <divya> boblet: Earl Grey Pls. :)
- # [06:49] <boblet> divya: certainly ma’am, although perhaps ma’am would care to try the broken orange pekoe afternoon blend?
- # [06:49] * Quits: shepazu (~schepers@adsl-69-155-247.rmo.bellsouth.net) (Ping timeout: 265 seconds)
- # [06:50] * Joins: rolandsteiner (~rolandste@220.109.219.244)
- # [06:50] <divya> boblet: only if it comes with a scone :P
- # [06:53] <boblet> I’ll just grab some clotted cream, brb
- # [06:53] * Quits: dave_levin (~dave_levi@c-98-203-247-78.hsd1.wa.comcast.net) (Quit: dave_levin)
- # [06:53] * Joins: shepazu (~schepers@adsl-69-155-247.rmo.bellsouth.net)
- # [06:54] * Joins: dave_levin (~dave_levi@216.239.45.130)
- # [07:05] * Quits: jwalden (~waldo@nat/mozilla/x-jzoputwmxcfkidtt) (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2/20100122095031])
- # [07:14] <annevk> oh fun, more CORS email
- # [07:15] <annevk> yawn
- # [07:16] * Joins: kuatto (~kuatto@c-75-72-177-136.hsd1.mn.comcast.net)
- # [07:23] * Quits: mmn (~mmn@129-97-225-97.uwaterloo.ca) (Quit: Leaving.)
- # [07:26] <annevk> webr3, please raise an issue only once instead of spamming it in every thread
- # [07:26] <Hixie> what's the best practice method of constructing an array of sorted strings when you receive them in a random order?
- # [07:27] <Hixie> collect them out of order then quick sort then remove duplicates?
- # [07:27] <annevk> webr3, also, it may help to read the archives, the issue you have been raising in about three emails since I was asleep has already been recorded and a solution has already been proposed
- # [07:27] <Hixie> that seems like it'd be slow
- # [07:28] <annevk> Hixie, spec doesn't have to be fast :p
- # [07:28] <annevk> assuming this is for WebSRT
- # [07:28] <Hixie> i'm writing code for my game
- # [07:29] * Joins: AnthonyCat (~AnthonyCa@2002:3aaf:19c2:0:21f:5bff:feb6:f0e1)
- # [07:30] <annevk> ooh, sounded very much like collecting cues and sorting them :)
- # [07:30] <Hixie> nah
- # [07:30] <annevk> I guess duplicates should've alarmed me
- # [07:30] <Hixie> hm, maybe it's better to just put them in an array doing mem moves as i go
- # [07:31] <Hixie> so they're pre-sorted
- # [07:31] <Hixie> but that seems like it'd involve a lot of moves...
- # [07:35] * Quits: michaeln (~michaeln@nat/google/x-smdkphrrscoajihv) (Quit: Leaving.)
- # [07:39] * Quits: roc (~roc@203-97-204-82.dsl.clear.net.nz) (Quit: roc)
- # [07:42] * Quits: AnthonyCat (~AnthonyCa@2002:3aaf:19c2:0:21f:5bff:feb6:f0e1) (Quit: cya l8τ alig8τ)
- # [07:57] <webr3> annevk: point taken and I'll check through the archives to see if i can find it
- # [07:59] * webr3 really doesn't want to be sending the mail(s) about CORS or having any worries or issues with it at all :(
- # [08:02] * Quits: rolandsteiner (~rolandste@220.109.219.244) (Quit: Leaving.)
- # [08:04] <webr3> Hixie: transfer them into an array as key's on the way in (rather than values), that'll remove all duplicates without any work
- # [08:05] <Hixie> "as key's"?
- # [08:05] <webr3> "string1" = '',
- # [08:05] * Joins: rolandsteiner (~rolandste@220.109.219.244)
- # [08:05] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 258 seconds)
- # [08:05] <webr3> yeah instead of [] = "string1"
- # [08:05] <webr3> (depending on length of strings)
- # [08:06] * Joins: gavin_ (~gavin@firefox/developer/gavin)
- # [08:06] <Hixie> oh i'm not using javascript
- # [08:06] <Hixie> this is a compiler language
- # [08:08] <webr3> non-option then i guess :)
- # [08:08] <Hixie> also i'm more concerned about the work the computer does than the work i have to do :-)
- # [08:12] <webr3> probably produce way less op codes, but depending on size of strings etc would have other performance hits
- # [08:12] <webr3> best of luck though, sure you'll figure it out easily enough (if not already)
- # [08:13] * Quits: annevk (~annevk@5355737B.cable.casema.nl) (Remote host closed the connection)
- # [08:13] * Joins: annevk (~annevk@5355737B.cable.casema.nl)
- # [08:27] * Joins: dave_levin_ (~dave_levi@c-98-203-247-78.hsd1.wa.comcast.net)
- # [08:30] * Quits: dave_levin (~dave_levi@216.239.45.130) (Ping timeout: 248 seconds)
- # [08:30] * dave_levin_ is now known as dave_levin
- # [08:37] * Quits: rolandsteiner (~rolandste@220.109.219.244) (Quit: Leaving.)
- # [08:39] * Joins: rolandsteiner (~rolandste@220.109.219.244)
- # [08:40] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 258 seconds)
- # [08:41] * Joins: gavin_ (~gavin@firefox/developer/gavin)
- # [08:42] * Joins: Mrmil (~ut_ollie@server.ebrana.cz)
- # [08:52] * Quits: ment (thement@ibawizard.net) (Ping timeout: 252 seconds)
- # [08:52] * Joins: othermaciej (~mjs@c-69-181-42-237.hsd1.ca.comcast.net)
- # [08:53] * Joins: ment (thement@ibawizard.net)
- # [08:54] <annevk> http://www.w3.org/Bugs/Public/show_bug.cgi?id=9662 -- lol
- # [08:55] <annevk> it's unfortunate that with the current process that bug may end up escalating to a meaningless vote
- # [08:55] <annevk> wasting everyone's time for something that will not change
- # [08:56] <Hixie> at least that's a technical question
- # [08:56] <Hixie> not as much of a waste of time as what reference to use for ascii
- # [08:58] <annevk> unlike this one, that one we could actually do something about
- # [08:58] <annevk> I wonder why Unicode doesn't define ASCII as code points 1-127
- # [08:58] <annevk> 0-127 I mean
- # [08:59] * Joins: epeus (~KevinMark@c-71-204-145-244.hsd1.ca.comcast.net)
- # [09:00] <annevk> 44 new CORS emails since Tuesday in only one of the running threads
- # [09:00] <othermaciej> doesn't seem useful to change it
- # [09:00] <annevk> (not counting all the duplicates I receive)
- # [09:01] <annevk> also, nothing new (the claim about new is not accurate, it's simply not done)
- # [09:02] <annevk> and to be honest I'm not really sure what to say in the security section
- # [09:03] <othermaciej> annevk: if I had time I would volunteer to write a draft of a security section
- # [09:03] <annevk> I suppose I could expand the sentence on validation saying you shouldn't just pass on everything from origin a to c via yourself, b
- # [09:03] <annevk> but in the end developers won't read CORS
- # [09:05] <webr3> annevk: if it helps, I think they will
- # [09:06] * webr3 is a developer, /me read it
- # [09:08] <annevk> sure a couple might
- # [09:08] <annevk> s/might/will/
- # [09:08] <annevk> but most won't
- # [09:08] <othermaciej> annevk: I think security considerations should cover the following things:
- # [09:08] <othermaciej> 1) Two-party interactions
- # [09:08] <othermaciej> 2) Three-party interactions - potential for Confused Deputy risk in this scenario
- # [09:09] <othermaciej> 3) Ways to avoid Confused Deputy - validate inputs before retransmitting, distinguish requests made on behalf of third parties in your protocol, or use secret tokens in combination with CORS for services to be used cooperatively
- # [09:10] <othermaciej> 4) How you can use CORS combined with secret tokens to get a stronger defense than either separately, even for two-party interactions
- # [09:10] * Quits: dave_levin (~dave_levi@c-98-203-247-78.hsd1.wa.comcast.net) (Quit: dave_levin)
- # [09:11] <othermaciej> I guess security considerations should also discuss the no-credentials mode of CORS, since that is in the CORS spec
- # [09:11] <othermaciej> and I guess there should be a list of potential pitfalls for implementors to watch out for, I think
- # [09:11] <annevk> there's http://dev.w3.org/2006/waf/access-control/#user-agent-security
- # [09:12] <othermaciej> that seems to be a good start on the UA issues
- # [09:12] <othermaciej> I could write at least a rough outline for the 4 things I mentioned
- # [09:13] <othermaciej> not sure I have time to draft final text
- # [09:13] <annevk> a draft might be enough for me to finish it
- # [09:14] <annevk> the outline sounds good, i'm just not sure how to fill them in... :/
- # [09:16] * Joins: workmad3 (~workmad3@cpc3-bagu10-0-0-cust651.1-3.cable.virginmedia.com)
- # [09:19] <webr3> annevk: (i hate to ask, honestly) - if the headers (i mean the allowed headers) from UMP where added to CORS and it was sealed at that, would the vendors be happy / could it go through to rec. (security section aside) - hixie replied "I'm not familiar with the browser vendor opinions on this specific issue." - perhaps you know, or could ask /end - i swear I'll never mention CORS again
- # [09:20] * Joins: mhausenblas (~mhausenbl@wg1-nat.fwgal01.deri.ie)
- # [09:20] <webr3> mhausenblas: morning :)
- # [09:21] <Hixie> i'd like to provide some text for xhr's intro section that talks about how to safely do some common things that tyler thinks are dangerous, but i haven't been able to figure out what that is exactly
- # [09:21] <mhausenblas> morning webr3
- # [09:21] <annevk> webr3, I don't understand
- # [09:22] * Quits: divya (~divya@219.64.117.145) (Quit: divya)
- # [09:22] * Quits: dbaron (~dbaron@c-98-234-51-190.hsd1.ca.comcast.net) (Quit: 8403864 bytes have been tenured, next gc will be global.)
- # [09:23] <webr3> annevk: CORS limits to 5 headers, UMP allows more headers (Location etc) still a whitelist, but also allows Uniform-Headers = "Uniform-Headers" ":" 1#field-name - basically http://dev.w3.org/2006/waf/UMP/#response-header-filtering section 4.2 only - could that be added to CORS [/me would be happy could work with that, under current setup i/we simply can't)
- # [09:23] <webr3> s/5/6
- # [09:25] <annevk> I thought I already told you it's an open issue
- # [09:25] <annevk> And you already raised it more than once on the mailing list
- # [09:26] <annevk> patience
- # [09:26] <webr3> okay I'll take you at your word it's being handled & leave it there
- # [09:27] <othermaciej> CORS has a way to allow additional request headers
- # [09:27] <othermaciej> does it not have a way to expose additional response headers yet?
- # [09:27] <annevk> not yet, I'm waiting for whether we want to rename the headers or not
- # [09:27] <annevk> so far nobody replied so I guess we won't
- # [09:28] <annevk> (and by nobody I mean affected browser vendors)
- # [09:28] <othermaciej> what kind of replies are you looking for?
- # [09:28] <othermaciej> I'd rather not change them unless the new names are a huge improvement
- # [09:28] <othermaciej> I won't object if other vendors want to change
- # [09:29] <othermaciej> (we could always support the old names too for a transition period)
- # [09:29] <annevk> something like 1) looks great lets do it 2) if you change that proposed syntax to this lets do it 3) not worth the change 4) looks great, but only if Mozilla/WebKit makes the changes too
- # [09:30] <annevk> something like that
- # [09:30] <annevk> see http://lists.w3.org/Archives/Public/public-webapps/2010AprJun/thread.html#msg508 othermaciej
- # [09:30] <annevk> oops http://lists.w3.org/Archives/Public/public-webapps/2010AprJun/0508.html (there's no thread)
- # [09:31] <othermaciej> oh, I see
- # [09:32] <othermaciej> does that cover all the headers that start with "Accesss-Cotrol-"?
- # [09:32] <annevk> yup
- # [09:32] <annevk> only "Origin" remains unchanged, effectively
- # [09:33] <othermaciej> "CORS" seems a bit mysterious as a header name, but I do like getting rid of the obsolete Access-Control
- # [09:35] <annevk> I couldn't really think of something better
- # [09:35] <annevk> "http cors" or some such would be easy to find though
- # [09:36] <othermaciej> I'm writing up my thoughts in email
- # [09:36] <othermaciej> my ideas so far:
- # [09:36] <othermaciej> CORS ==> Allow-Access
- # [09:36] <othermaciej> CORS-Methods ==> Allow-Methods
- # [09:36] <othermaciej> CORS-Headers ==> Allow-Headers
- # [09:37] <othermaciej> can't think of a good name for CORS-preflight
- # [09:37] <othermaciej> maybe Allow-Request-Headers to make space for the response version
- # [09:37] <othermaciej> or perhaps that one could be Reveal-Headers
- # [09:38] <annevk> Expose-Headers was my idea
- # [09:38] <annevk> CORS-Expose-Headers
- # [09:38] <othermaciej> I like Expose better than Reveal
- # [09:38] <webr3> annevk: perfect, anything like that
- # [09:38] <annevk> Allow-Access is not really accurate though, it's not really about granting access
- # [09:39] <othermaciej> isn't it?
- # [09:39] <othermaciej> that header is what the browser uses to determine whether to expose the response, right?
- # [09:39] <othermaciej> maybe it should be Expose-Response
- # [09:39] <annevk> that's an interesting one
- # [09:39] <othermaciej> unless it's also used for other purposes
- # [09:40] <hsivonen> can't we stop renaming things and let the platform stablilize?
- # [09:40] <othermaciej> I don't really want to rename things
- # [09:40] <othermaciej> the Access-Control-* names are not so great, but not so terrible I feel compelled to change
- # [09:41] <othermaciej> but others did raise the idea of change, so I'd like to propose good names in case we choose to do it
- # [09:42] <othermaciej> annevk: maybe (in this hypothetical renamed world) it should be Expose-Response in response to an actual request, and Allow-Access in response to a preflight
- # [09:43] <annevk> maybe Allow-Request?
- # [09:43] <othermaciej> for the preflight response that makes sense
- # [09:44] <annevk> and Preflight-For or some such instead of CORS-preflight
- # [09:44] <othermaciej> I'm not sure that makes things more clear
- # [09:45] <annevk> yeah
- # [09:46] * Quits: cpearce (~cpearce@203-97-204-82.dsl.clear.net.nz) (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.0.15/2009101909])
- # [09:46] <annevk> hsivonen, this part of the platform is not stable
- # [09:47] <hsivonen> annevk: self-fulfilling statement
- # [09:47] <annevk> hsivonen, but I'm not that keen on it either but since mnot argued quite strongly that the header names were too long and all I thought I should at least give it a chance
- # [09:47] <annevk> hsivonen, guess I'm mostly where othermaciej is with this
- # [09:47] <webr3> maybe mnot was challenge you to get as short as his "link" header
- # [09:48] * webr3 chuckles
- # [09:48] <annevk> dunno, but "his" link header is around since HTTP 1.0
- # [09:48] <webr3> ... k
- # [09:51] <webr3> fwiw.. i kinda like the "new header to expose more response headers ==> Expose-Headers (or Expose-Response-Headers)" idea :)
- # [09:51] * webr3 runs
- # [09:51] * Parts: webr3 (~nathan@host86-147-36-254.range86-147.btcentralplus.com)
- # [09:54] * Joins: divya (~divya@219.64.117.145)
- # [09:54] <annevk> my google Buzz stream is nothing but my twitter/Flickr account and the twitter account of Sjoerd Visscher
- # [09:55] <annevk> I guess Buzz has failed; at least in my universe
- # [09:57] * Joins: Maurice (copyman@5ED573FA.cable.ziggo.nl)
- # [09:59] <hsivonen> people think of google-branded services as trustworthy private space. when google-branded services behave like facebook, it feels creepy
- # [09:59] <Hixie> google search is a private space?
- # [09:59] <Hixie> :-)
- # [10:00] <hsivonen> Hixie: people think their search terms are
- # [10:00] <Hixie> ah, fair enough
- # [10:01] <othermaciej> facebook doesn't tend to broadcast your info though
- # [10:01] <othermaciej> the buzz privacy debacle was totally different from the facebook privacy debacle
- # [10:02] <annevk> facebook exposes more and more
- # [10:02] <othermaciej> some private info was broadcast to the general public (perhaps partly by accident) as opposed to facebook which is giving your private data to business partners or people you don't know, in contravention of the expectations it set originally
- # [10:02] <othermaciej> I guess both cases come down to violating previously established expectations
- # [10:03] <Hixie> buzz was fixed pretty damn quick though
- # [10:03] <hsivonen> othermaciej: both debacles arise from similar actions but people thought google wouldn't do such a thing
- # [10:03] <Hixie> facebook's on the other hand seems to be intentional
- # [10:03] <Hixie> not that i'm trying to defend google
- # [10:03] <hsivonen> othermaciej: where as facebook has... let's say a different reputation
- # [10:04] <othermaciej> google did do a better job of reacting to the outcry
- # [10:04] <hsivonen> Hixie: I thought the buzz thing was an intentional greed-driven attempt to compete with facebook in their game
- # [10:05] <othermaciej> I've always assumed that Google only cares about my privacy to the extent it helps foster their self-image as doing no evil
- # [10:05] <othermaciej> hsivonen: buzz in general as a feature - yes
- # [10:05] <annevk> isn't buzz competing with twitter?
- # [10:05] * Hixie decides to let his PR department handle the issue, since this is logged
- # [10:06] <othermaciej> buzz being shoved in, in a way that exposed personal information, that may have been intentional but it didn't seem very clearly thought out
- # [10:07] <hsivonen> annevk: twitter is pretty clear about what's public and what's private--unlike facebook
- # [10:08] * Joins: riven` (~riven@53518387.cable.casema.nl)
- # [10:09] * Joins: cpearce (~cpearce@ip-118-90-17-75.xdsl.xnet.co.nz)
- # [10:12] * Quits: riven (~riven@53518387.cable.casema.nl) (Ping timeout: 252 seconds)
- # [10:17] <annevk> Hixie, the date on the January 1 2006 archive copy is a copypasta error: http://www.whatwg.org/specs/
- # [10:17] <Hixie> fixed thanks
- # [10:22] * Joins: erikvold (~erikvold@S01060024012860e9.gv.shawcable.net)
- # [10:26] * Parts: Mrmil (~ut_ollie@server.ebrana.cz)
- # [10:33] * Joins: JonathanNeal (~JonathanN@99-59-124-67.lightspeed.irvnca.sbcglobal.net)
- # [10:34] * Quits: JonathanNeal_ (~JonathanN@99-59-124-67.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 264 seconds)
- # [10:39] * Quits: rolandsteiner (~rolandste@220.109.219.244) (Quit: Leaving.)
- # [10:39] * Joins: rolandsteiner (~rolandste@220.109.219.244)
- # [10:39] * Joins: lhnz (~lhnz@188-223-83-48.zone14.bethere.co.uk)
- # [10:40] * Joins: Phae (~phaeness@gatej.mh.bbc.co.uk)
- # [10:40] * Joins: mpt (~mpt@canonical/mpt)
- # [10:41] * Joins: jarib (jarib@tttt.mine.nu)
- # [10:43] * Joins: cedricv (~cedric@175.156.64.111)
- # [10:44] * Quits: rolandsteiner (~rolandste@220.109.219.244) (Ping timeout: 276 seconds)
- # [10:45] * Joins: rolandsteiner (~rolandste@220.109.219.244)
- # [10:54] * Quits: mpt (~mpt@canonical/mpt) (Ping timeout: 264 seconds)
- # [10:57] * Joins: mpt (~mpt@canonical/mpt)
- # [11:02] * Joins: MikeSmith (~MikeSmith@EM111-188-76-181.pool.e-mobile.ne.jp)
- # [11:03] * Joins: FireFly (~firefly@unaffiliated/firefly)
- # [11:05] * Joins: mat_t (~mattomasz@91.189.88.12)
- # [11:07] * Quits: kuatto (~kuatto@c-75-72-177-136.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
- # [11:08] * Joins: ROBOd (~robod@109.96.227.246)
- # [11:18] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 260 seconds)
- # [11:19] * Joins: gavin_ (~gavin@firefox/developer/gavin)
- # [11:20] <MikeSmith> hsivonen: I don't know if you saw my discussion with Ville on the validator mailing list, but people have been reporting unexpected EOF errors when using it
- # [11:20] <MikeSmith> I remember now I mentioned this to you earlier
- # [11:21] <MikeSmith> I don't get any errors if I post (using curl) from the shell to localhost port 8888
- # [11:21] * Joins: kuatto (~kuatto@c-75-72-177-136.hsd1.mn.comcast.net)
- # [11:21] <MikeSmith> but in browsing through the log output for the instance, I do see EOF errors being logged
- # [11:22] <MikeSmith> with the root cause being this:
- # [11:22] <MikeSmith> Caused by: java.net.SocketException: Broken pipe
- # [11:22] <MikeSmith> at java.net.SocketOutputStream.socketWrite0(Native Method)
- # [11:22] <MikeSmith> at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
- # [11:22] <MikeSmith> at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
- # [11:22] <MikeSmith> at org.mortbay.io.ByteArrayBuffer.writeTo(ByteArrayBuffer.java:177)
- # [11:22] <MikeSmith> at org.mortbay.io.bio.StreamEndPoint.flush(StreamEndPoint.java:122)
- # [11:22] <MikeSmith> at org.mortbay.jetty.HttpGenerator.flush(HttpGenerator.java:693)
- # [11:22] <MikeSmith> ... 35 more
- # [11:23] <MikeSmith> well, if not the root cause, at least the lowest-level error that's causing the EOF
- # [11:25] <MikeSmith> hsivonen: see http://pastebin.org/229072 for the full record of the error
- # [11:26] <MikeSmith> I suspect this is just due to excessive load on the validator hosts, and that causing a timeout or something
- # [11:33] <Philip`> Hixie: Store the incoming strings in a hashmap (which will remove duplicates, total cost O(n) in the total number of strings), then extract and sort all the keys at the end (O(n log n) in the number of unique strings) - I can't imagine any way to be asymptotically faster than that
- # [11:35] <othermaciej> what was the problem?
- # [11:36] <Philip`> http://krijnhoetmer.nl/irc-logs/whatwg/20100513#l-177
- # [11:37] <othermaciej> oh I see
- # [11:37] <othermaciej> yeah, that would be the best way
- # [11:38] <othermaciej> unique in O(N) with O(N) space, sort in O(N log N)
- # [11:39] <othermaciej> there's no way to beat N log N by putting things in the right place, because any data structure that sorts on insertion would take O(N log N) time to build
- # [11:44] * Quits: kuatto (~kuatto@c-75-72-177-136.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
- # [11:46] * Quits: divya (~divya@219.64.117.145) (Quit: divya)
- # [11:47] * Joins: micheil (~micheil@124-170-251-16.dyn.iinet.net.au)
- # [11:54] * Joins: tyoshino_m (~tyoshino_@EM114-48-37-198.pool.e-mobile.ne.jp)
- # [11:55] * Joins: eighty4 (~eighty4@c-d9cee455.012-403-6c6b701.cust.bredbandsbolaget.se)
- # [11:58] * Joins: Necrathex (~bleptop@212-123-163-12.ip.telfort.nl)
- # [12:04] * Quits: mpt (~mpt@canonical/mpt) (Ping timeout: 245 seconds)
- # [12:11] * Joins: svl (~me@ip565744a7.direct-adsl.nl)
- # [12:15] * Quits: othermaciej (~mjs@c-69-181-42-237.hsd1.ca.comcast.net) (Quit: othermaciej)
- # [12:17] * Quits: tyoshino_m (~tyoshino_@EM114-48-37-198.pool.e-mobile.ne.jp) (Ping timeout: 265 seconds)
- # [12:18] * Quits: MikeSmith (~MikeSmith@EM111-188-76-181.pool.e-mobile.ne.jp) (Quit: Till kicked and torn and beaten out he lies, and leaves his hold and crackles, groans, and dies.)
- # [12:18] * Quits: smaug (~chatzilla@cs181150024.pp.htv.fi) (Ping timeout: 258 seconds)
- # [12:20] * Joins: adactio (~adactio@host213-123-197-180.in-addr.btopenworld.com)
- # [12:21] * Joins: MikeSmith (~MikeSmith@EM111-188-76-181.pool.e-mobile.ne.jp)
- # [12:22] <MikeSmith> hsivonen: validator.w3.org updated to latest upstream v.nu (SVG and MathML in text/html)
- # [12:23] <MikeSmith> also updated http://www.w3.org/html/check (but that is running my workspace code)
- # [12:24] * Quits: MikeSmith (~MikeSmith@EM111-188-76-181.pool.e-mobile.ne.jp) (Client Quit)
- # [12:28] * Quits: Dashiva (Dashiva@wikia/Dashiva) (Ping timeout: 240 seconds)
- # [12:28] * Joins: Dashiva (Dashiva@m223j.studby.ntnu.no)
- # [12:28] * Quits: Dashiva (Dashiva@m223j.studby.ntnu.no) (Changing host)
- # [12:28] * Joins: Dashiva (Dashiva@wikia/Dashiva)
- # [12:32] * Joins: JohnnyAmerica (~Simon@213-64-113-37-no97.tbcn.telia.com)
- # [12:36] * Quits: rolandsteiner (~rolandste@220.109.219.244) (Quit: Leaving.)
- # [12:38] * riven` is now known as riven
- # [12:39] * Joins: mpt (~mpt@canonical/mpt)
- # [12:40] * Quits: mpt (~mpt@canonical/mpt) (Client Quit)
- # [12:46] * Joins: virtuelv (~virtuelv_@52.95.189.109.customer.cdi.no)
- # [12:52] * annevk is even less of a fan of this hybi experiment now
- # [12:53] * Quits: micheil (~micheil@124-170-251-16.dyn.iinet.net.au) (Read error: Connection reset by peer)
- # [12:53] * Joins: micheil (~micheil@124-170-251-16.dyn.iinet.net.au)
- # [13:02] <Dashiva> annevk: What is it that's being overengineered this time?
- # [13:04] * Joins: smaug (~chatzilla@80-186-12-77.elisa-mobile.fi)
- # [13:04] * Quits: micheil (~micheil@124-170-251-16.dyn.iinet.net.au) (Read error: Connection reset by peer)
- # [13:04] * Joins: micheil (~micheil@124-170-251-16.dyn.iinet.net.au)
- # [13:05] * Quits: kennyluck (~kennyluck@2001:200:1c0:3508:225:ff:fe4d:f8c7) (Ping timeout: 268 seconds)
- # [13:05] * Joins: othermaciej (~mjs@c-69-181-42-237.hsd1.ca.comcast.net)
- # [13:06] <annevk> Dashiva, process :)
- # [13:07] * Joins: borismus (~borismus@62.48.209.165)
- # [13:09] <Dashiva> Oh boy
- # [13:09] <Dashiva> Because it wasn't slow enough already?
- # [13:10] <annevk> more layers is better
- # [13:12] <Dashiva> Is there a requirements specification for how to decide on a proper definition of 'better'?
- # [13:13] <annevk> drafting one as we speak
- # [13:13] <annevk> though getting consensus on it might implode the WG
- # [13:13] <annevk> and the interwebs
- # [13:14] <Dashiva> That's a feature
- # [13:14] <Dashiva> Makes it easier to transition to new protocols when there's no legacy around
- # [13:14] <annevk> you're on to something here
- # [13:15] <annevk> then we could finally deploy XHTML2
- # [13:15] <annevk> and Cookie2
- # [13:15] <annevk> and XSL:FO
- # [13:15] <annevk> and lots of other X-based specifications
- # [13:15] <annevk> the web would reborn
- # [13:15] <annevk> magical
- # [13:17] * Joins: kennyluck (~kennyluck@tea04.w3.mag.keio.ac.jp)
- # [13:23] * Quits: smaug (~chatzilla@80-186-12-77.elisa-mobile.fi) (Ping timeout: 240 seconds)
- # [13:49] * Joins: variable (~44a3bc67@gateway/web/freenode/x-rprxkfcllgfntrxu)
- # [13:49] * Quits: variable (~44a3bc67@gateway/web/freenode/x-rprxkfcllgfntrxu) (Changing host)
- # [13:49] * Joins: variable (~44a3bc67@unaffiliated/variable)
- # [13:49] * Quits: variable (~44a3bc67@unaffiliated/variable) (Changing host)
- # [13:49] * Joins: variable (~44a3bc67@gateway/web/freenode/x-rprxkfcllgfntrxu)
- # [14:01] * Quits: othermaciej (~mjs@c-69-181-42-237.hsd1.ca.comcast.net) (Quit: othermaciej)
- # [14:03] * Joins: mpt (~mpt@canonical/mpt)
- # [14:06] * Quits: mpt (~mpt@canonical/mpt) (Remote host closed the connection)
- # [14:06] * Joins: othermaciej (~mjs@c-69-181-42-237.hsd1.ca.comcast.net)
- # [14:07] * Joins: mpt (~mpt@canonical/mpt)
- # [14:07] * Quits: mpt (~mpt@canonical/mpt) (Read error: Connection reset by peer)
- # [14:15] * Quits: annevk (~annevk@5355737B.cable.casema.nl) (Read error: Connection reset by peer)
- # [14:18] * Joins: annevk (~annevk@5355737B.cable.casema.nl)
- # [14:21] * Joins: pmuellr (~pmuellr@nat/ibm/x-rdgoqqxufavmbpby)
- # [14:21] * Quits: Maurice (copyman@5ED573FA.cable.ziggo.nl) (Read error: Connection reset by peer)
- # [14:26] * Quits: adactio (~adactio@host213-123-197-180.in-addr.btopenworld.com) (Ping timeout: 245 seconds)
- # [14:33] * Quits: boblet (~boblet@p1072-ipbf36osakakita.osaka.ocn.ne.jp) (Quit: thxbye)
- # [14:36] * Quits: riven (~riven@53518387.cable.casema.nl) (Read error: Connection reset by peer)
- # [14:36] * Joins: riven (~riven@53518387.cable.casema.nl)
- # [14:36] * Quits: virtuelv (~virtuelv_@52.95.189.109.customer.cdi.no) (Quit: Ex-Chat)
- # [14:47] * Quits: variable (~44a3bc67@gateway/web/freenode/x-rprxkfcllgfntrxu) (Quit: Page closed)
- # [14:53] <annevk> "I'm afraid that is too meta-physical for me. I've been asked to edit the requirements document as part of the IETF process and that's what I'm attempting to do." is it just me or is the obvious follow-up question asking if he wants to jump in the pond?
- # [14:53] <annevk> incidentally, i recall Steven Pemberton justifying working on XHTML2 in much the same way
- # [15:00] * Joins: ttepasse (~ttepasse@ip-109-90-160-217.unitymediagroup.de)
- # [15:02] * Joins: mpt (~mpt@canonical/mpt)
- # [15:07] * Joins: salavas (~salavas@h4n1fls31o279.telia.com)
- # [15:18] * Quits: m_W (~mwj@c-69-141-106-205.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
- # [15:31] * Quits: wakaba_0 (~wakaba_@203-140-91-140.eonet.ne.jp) (Ping timeout: 264 seconds)
- # [15:36] * Joins: wakaba_ (~wakaba_@122x221x184x68.ap122.ftth.ucom.ne.jp)
- # [15:36] * Quits: borismus (~borismus@62.48.209.165) (Quit: borismus)
- # [15:39] * Joins: Maurice (copyman@5ED573FA.cable.ziggo.nl)
- # [15:42] * Joins: aroben (~aroben@unaffiliated/aroben)
- # [15:47] <Philip`> http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2010/05/12/BUPJ1DDISH.DTL - "In a full-page ad [...] Adobe says, we love [...] HTML5"
- # [15:48] * Philip` sadly can't find the actual ad
- # [15:48] <annevk> would be fun to see a picture of the ad, indeed
- # [15:50] * Joins: kuatto (~kuatto@c-75-72-177-136.hsd1.mn.comcast.net)
- # [15:54] * Quits: Necrathex (~bleptop@212-123-163-12.ip.telfort.nl) (Quit: Necrathex)
- # [15:58] <krijnh> Hey, this HTML5 thing.. Do you guys think this is going to be a mainstream thing? I really have my doubts about it!
- # [15:59] <Philip`> I don't know about this HTML5 thing
- # [15:59] <Philip`> That other HTML5 thing is pretty popular, though
- # [15:59] <Philip`> The one that's made up of CSS3 and Geolocation and so on
- # [15:59] <krijnh> I heard HTML5 also included Flash 10.1 in some definitions..
- # [16:00] <Dashiva> It needs a better acronym, there's no X
- # [16:06] <annevk> i know i know, XHTML5!
- # [16:08] <krijnh> That's not catchy enough
- # [16:09] * Joins: AnthonyCat (~AnthonyCa@2002:3aaf:19c2:0:21f:5bff:feb6:f0e1)
- # [16:10] * Quits: mpt (~mpt@canonical/mpt) (Ping timeout: 248 seconds)
- # [16:10] * Quits: AnthonyCat (~AnthonyCa@2002:3aaf:19c2:0:21f:5bff:feb6:f0e1) (Client Quit)
- # [16:10] * Joins: miketaylr (~miketaylr@38.117.156.163)
- # [16:10] * Quits: wakaba_ (~wakaba_@122x221x184x68.ap122.ftth.ucom.ne.jp) (Quit: Leaving...)
- # [16:13] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 268 seconds)
- # [16:13] * Joins: gavin_ (~gavin@firefox/developer/gavin)
- # [16:13] <annevk> the adobe stuff might be http://www.adobe.com/choice/ ?
- # [16:14] * Quits: knowtheory (~knowtheor@bas1-london16-1176190282.dsl.bell.ca) (Quit: There are lives at stake here!)
- # [16:16] <Philip`> annevk: That and the ads seem to be part of the current Adobe-vs-Apple battle
- # [16:19] <Philip`> It's a nice battle since it's about who's the most open and most supportive of open standards like HTML5
- # [16:20] <krijnh> I thought it was about who was most open about H.264 :)
- # [16:21] <Dashiva> It's about who has the stronger RDF
- # [16:22] * Joins: mr_danie1 (~irssi@e177122093.adsl.alicedsl.de)
- # [16:22] * Joins: knowtheory (~knowtheor@bas1-london16-1176190282.dsl.bell.ca)
- # [16:25] * Quits: mr_daniel (~irssi@f054053100.adsl.alicedsl.de) (Ping timeout: 260 seconds)
- # [16:30] * Quits: karlushi (~karlushi@fw.vdl2.ca) (Read error: Connection timed out)
- # [16:39] * Joins: mpt (~mpt@canonical/mpt)
- # [16:41] * Quits: Heimidal (~heimidal@unaffiliated/heimidal) (Remote host closed the connection)
- # [16:55] * Joins: jgornick (~joe@199.199.212.242)
- # [16:57] * Joins: drhodes (~none@209-20-72-61.slicehost.net)
- # [16:58] * Joins: MikeSmith (~MikeSmith@EM114-48-3-118.pool.e-mobile.ne.jp)
- # [17:07] * Joins: mmn (~mmn@129-97-225-97.uwaterloo.ca)
- # [17:12] * Quits: kinetik (~kinetik@121.98.132.55) (Ping timeout: 240 seconds)
- # [17:12] * Joins: kinetik (~kinetik@121.98.132.55)
- # [17:14] * Quits: mpt (~mpt@canonical/mpt) (Ping timeout: 264 seconds)
- # [17:16] * Joins: mhausenblas_ (~mhausenbl@wlan-nat.fwgal01.deri.ie)
- # [17:18] * Quits: mhausenblas (~mhausenbl@wg1-nat.fwgal01.deri.ie) (Ping timeout: 260 seconds)
- # [17:18] * mhausenblas_ is now known as mhausenblas
- # [17:22] * Quits: danbri (~danbri@unaffiliated/danbri) (Quit: danbri)
- # [17:34] * Joins: tyoshino_m (~tyoshino_@102.76.147.124.dy.bbexcite.jp)
- # [17:36] * Parts: bfrantz (~bfrantz@pdpc/supporter/professional/bfrantz)
- # [17:37] * Joins: KaOSoFt (~KaOSoFt@190.24.156.162)
- # [17:41] * Joins: mpt (~mpt@canonical/mpt)
- # [17:52] * Joins: dbaron (~dbaron@c-98-234-51-190.hsd1.ca.comcast.net)
- # [17:56] * Quits: nessy (~Adium@124-170-18-159.dyn.iinet.net.au) (Quit: Leaving.)
- # [17:56] * Quits: peol (~andree@unaffiliated/peol) (Remote host closed the connection)
- # [18:03] * Joins: tito_ (~irchon@25.183.244.43.ap.yournet.ne.jp)
- # [18:10] <MikeSmith> othermaciej: you around?
- # [18:10] * Joins: dglazkov (~dglazkov@nat/google/x-cvfcqusirkpcfztn)
- # [18:13] * Quits: JonathanNeal (~JonathanN@99-59-124-67.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
- # [18:22] <TabAtkins> Hixie: Because I'm biased towards linked lists, just do insertion sort as each comes in. Worst case in n^2 time, but with a standard fairly uniform distibution of values it'll be fine, and dupe elimination comes along for free.
- # [18:24] * Quits: mhausenblas (~mhausenbl@wlan-nat.fwgal01.deri.ie) (Ping timeout: 240 seconds)
- # [18:27] <Philip`> Average case is O(n^2) time too
- # [18:27] * Joins: mhausenblas (~mhausenbl@wlan-nat.fwgal01.deri.ie)
- # [18:27] <TabAtkins> Hm, yeah, you're right, since on average you'll just be adding it to the middle.
- # [18:30] * Joins: mhausenblas_ (~mhausenbl@wg1-nat.fwgal01.deri.ie)
- # [18:31] <Philip`> If you have n total and m unique it'll be O(nm), vs O(n + m log m) for the hash/sort method, which isn't so good if m and n are large
- # [18:31] <Philip`> (and if they're not large then you wouldn't worry about performance at all)
- # [18:33] * Quits: Phae (~phaeness@gatej.mh.bbc.co.uk)
- # [18:33] * Quits: mhausenblas (~mhausenbl@wlan-nat.fwgal01.deri.ie) (Ping timeout: 252 seconds)
- # [18:33] * mhausenblas_ is now known as mhausenblas
- # [18:35] * Quits: kuatto (~kuatto@c-75-72-177-136.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
- # [18:37] <TabAtkins> That then brings up the obvious question of, how large is it?
- # [18:38] * Quits: erikvold (~erikvold@S01060024012860e9.gv.shawcable.net) (Quit: erikvold)
- # [18:40] <Philip`> -> <- this large
- # [18:41] <ment> Hixie: i would go with path-compressed tries. http://cr.yp.to/critbit.html
- # [18:41] * Quits: ttepasse (~ttepasse@ip-109-90-160-217.unitymediagroup.de) (Ping timeout: 260 seconds)
- # [18:46] <TabAtkins> You have to ensure that what you have is prefix-free in that case, though (which it likely is).
- # [18:48] * Joins: ttepasse (~ttepasse@ip-109-90-160-217.unitymediagroup.de)
- # [18:49] * Joins: mlpug (~mlpug@a88-115-164-40.elisa-laajakaista.fi)
- # [18:51] * Joins: karlushi (~karlushi@fw.vdl2.ca)
- # [18:51] <ment> TabAtkins: or you can just store strings with some kind of terminating character at the end (nul-byte in case of cstrings)
- # [19:07] * Quits: lhnz (~lhnz@188-223-83-48.zone14.bethere.co.uk) (Quit: Leaving)
- # [19:15] * Quits: mpt (~mpt@canonical/mpt) (Ping timeout: 260 seconds)
- # [19:15] * Quits: KaOSoFt (~KaOSoFt@190.24.156.162) (Quit: Leaving)
- # [19:20] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 264 seconds)
- # [19:22] * Quits: mhausenblas (~mhausenbl@wg1-nat.fwgal01.deri.ie) (Quit: mhausenblas)
- # [19:22] * Quits: othermaciej (~mjs@c-69-181-42-237.hsd1.ca.comcast.net) (Quit: othermaciej)
- # [19:24] * Joins: gavin_ (~gavin@firefox/developer/gavin)
- # [19:28] * Joins: m_W (~mwj@c-69-141-106-205.hsd1.nj.comcast.net)
- # [19:30] * Quits: tito_ (~irchon@25.183.244.43.ap.yournet.ne.jp) (Remote host closed the connection)
- # [19:32] * Quits: ttepasse (~ttepasse@ip-109-90-160-217.unitymediagroup.de) (Quit: ?Q)
- # [19:32] * Joins: cohitre (~cohitre@174-21-104-138.tukw.qwest.net)
- # [19:34] * Parts: cohitre (~cohitre@174-21-104-138.tukw.qwest.net)
- # [19:36] * Quits: dbaron (~dbaron@c-98-234-51-190.hsd1.ca.comcast.net) (Quit: 8403864 bytes have been tenured, next gc will be global.)
- # [19:38] * Joins: Heimidal (~heimidal@unaffiliated/heimidal)
- # [19:38] * Quits: mat_t (~mattomasz@91.189.88.12) (Quit: This computer has gone to sleep)
- # [19:40] * Joins: mpt (~mpt@canonical/mpt)
- # [19:42] * Quits: gregw (~gregwilki@host116-234-static.43-88-b.business.telecomitalia.it) (Read error: Connection reset by peer)
- # [19:45] * Joins: erikvold (~erikvold@S01060024012860e9.gv.shawcable.net)
- # [19:49] * Quits: epeus (~KevinMark@c-71-204-145-244.hsd1.ca.comcast.net) (Quit: The computer fell asleep)
- # [19:51] * Quits: karlushi (~karlushi@fw.vdl2.ca) (Read error: Operation timed out)
- # [19:52] * Joins: karlushi (~karlushi@fw.vdl2.ca)
- # [19:55] * Joins: KaOSoFt (~KaOSoFt@190.24.156.162)
- # [19:58] * Joins: gregw (~gregwilki@host116-234-static.43-88-b.business.telecomitalia.it)
- # [20:05] * Joins: borismus (~borismus@62.48.209.165)
- # [20:07] * Joins: cying (~cying@70.90.171.153)
- # [20:08] * Joins: weinig (~weinig@17.246.17.242)
- # [20:10] * Quits: borismus (~borismus@62.48.209.165) (Client Quit)
- # [20:10] * Joins: smaug (~chatzilla@a91-154-43-186.elisa-laajakaista.fi)
- # [20:12] * Joins: dbaron (~dbaron@nat/mozilla/x-yaaabjeolaifqequ)
- # [20:21] * Joins: gratz|home (~gratz@gratz.gotadsl.co.uk)
- # [20:22] * aroben is now known as aroben|lunch
- # [20:24] * Quits: mpt (~mpt@canonical/mpt) (Quit: Ex-Chat)
- # [20:27] * Joins: jwalden (~waldo@nat/mozilla/x-hxtiksulznjktxfv)
- # [20:30] * Joins: CharelB (~azunix@195.46.241.227)
- # [20:33] * Joins: JonathanNeal (~JonathanN@rrcs-76-79-114-210.west.biz.rr.com)
- # [20:37] * Joins: othermaciej (~mjs@17.246.16.216)
- # [20:44] * Quits: karlushi (~karlushi@fw.vdl2.ca) (Read error: Connection timed out)
- # [20:47] * Joins: pesla (~pesla@ip51cc03a5.speed.planet.nl)
- # [20:47] * Quits: pesla (~pesla@ip51cc03a5.speed.planet.nl) (Client Quit)
- # [20:48] * Joins: pesla (~pesla@ip51cc03a5.speed.planet.nl)
- # [20:50] * Quits: othermaciej (~mjs@17.246.16.216) (Quit: othermaciej)
- # [20:51] * Joins: ttepasse (~ttepasse@ip-109-90-160-217.unitymediagroup.de)
- # [20:54] * Joins: karlushi (~karlushi@fw.vdl2.ca)
- # [21:05] * Quits: micheil (~micheil@124-170-251-16.dyn.iinet.net.au) (Ping timeout: 245 seconds)
- # [21:10] * Joins: remysharp (~remysharp@cpc2-brig17-2-0-cust448.3-3.cable.virginmedia.com)
- # [21:10] * Joins: danbri (~danbri@unaffiliated/danbri)
- # [21:12] * Joins: epeus (~KevinMark@157.22.22.57)
- # [21:14] * Joins: michaeln (~michaeln@nat/google/x-hnmazitbtcuckggb)
- # [21:14] * Joins: dave_levin (~dave_levi@nat/google/x-tkmnroryexgmorqr)
- # [21:16] * Quits: ttepasse (~ttepasse@ip-109-90-160-217.unitymediagroup.de) (Quit: ⌘Q)
- # [21:20] * Joins: ttepasse (~ttepasse@ip-109-90-160-217.unitymediagroup.de)
- # [21:24] * Quits: karlushi (~karlushi@fw.vdl2.ca) (Read error: Connection timed out)
- # [21:32] * Joins: peol (~andree@unaffiliated/peol)
- # [21:33] * Joins: karlushi (~karlushi@fw.vdl2.ca)
- # [21:37] * Joins: borismus (~borismus@62.48.209.165)
- # [21:38] <annevk> btw, karaoke plus ruby
- # [21:38] <annevk> http://www.flickr.com/photos/annevk/4601462252/
- # [21:38] <annevk> including that animated effect with the letters
- # [21:38] <annevk> guess we'll need some new CSS features for that
- # [21:39] * aroben|lunch is now known as aroben
- # [21:40] <TabAtkins> Oh, that wiping effect? Yeah, I've seen that in karaoke a lot.
- # [21:41] <TabAtkins> If we ever decide to handle that, though, it's certainly something just on the CSS side, with no effect on the captioning format, like you said.
- # [21:47] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 276 seconds)
- # [21:51] * Joins: gavin_ (~gavin@firefox/developer/gavin)
- # [21:51] * Quits: karlushi (~karlushi@fw.vdl2.ca) (Read error: Connection timed out)
- # [21:57] * Joins: sicking (~chatzilla@nat/mozilla/x-fpryxfpncabfhidz)
- # [21:59] * Quits: jgornick (~joe@199.199.212.242) (Quit: jgornick)
- # [22:00] * Joins: othermaciej (~mjs@17.246.16.216)
- # [22:00] * Joins: karlushi (~karlushi@fw.vdl2.ca)
- # [22:03] * Quits: remysharp (~remysharp@cpc2-brig17-2-0-cust448.3-3.cable.virginmedia.com) (Remote host closed the connection)
- # [22:09] * Quits: FireFly (~firefly@unaffiliated/firefly) (Quit: null)
- # [22:10] * Joins: ap (~ap@17.246.17.104)
- # [22:18] * Quits: sebmarkbage (~miranda@h-70-237.A146.priv.bahnhof.se) (Read error: Connection reset by peer)
- # [22:20] * Quits: mlpug (~mlpug@a88-115-164-40.elisa-laajakaista.fi) (Remote host closed the connection)
- # [22:20] * Joins: micheil (~micheil@124-170-52-1.dyn.iinet.net.au)
- # [22:22] * Quits: Rik` (~Rik`@pha75-2-81-57-187-57.fbx.proxad.net) (Read error: Connection reset by peer)
- # [22:23] * Joins: Rik` (~Rik`@pha75-2-81-57-187-57.fbx.proxad.net)
- # [22:27] * Quits: karlushi (~karlushi@fw.vdl2.ca) (Read error: Connection timed out)
- # [22:30] * Quits: JohnnyAmerica (~Simon@213-64-113-37-no97.tbcn.telia.com) (Quit: leaving)
- # [22:37] <paul_irish> Philip`: there were some reports of your font optimizer POST table mods messing with the printability.
- # [22:38] * Quits: CharelB (~azunix@195.46.241.227) (Read error: No route to host)
- # [22:41] <Philip`> paul_irish: That's not unexpected
- # [22:41] <paul_irish> :) ok
- # [22:43] * Joins: aho (~nya@g228026005.adsl.alicedsl.de)
- # [22:44] * Quits: boaz (~boaz@64.119.159.231) (Read error: Connection reset by peer)
- # [22:44] <aho> slightly off topic perhaps, but does anyone know why there isn't "rgba(#abc, 0.5)"?
- # [22:44] <aho> i'd happily trade that for that silly version which takes percentages :>
- # [22:44] <TabAtkins> Because people hate #rgb notation. ;_;
- # [22:44] <TabAtkins> But I and a few other people have been regularly arguing for an #rgba notation.
- # [22:45] <TabAtkins> s/people hate/some browser implementors/
- # [22:45] <AryehGregor> I don't care whether I use hex or decimal, as long as I don't have to convert between them.
- # [22:45] <AryehGregor> "Because some browser implementors #rgb notation. ;_;"
- # [22:45] <TabAtkins> I've used hex colors for so long that I think about color in hex at this point.
- # [22:45] <aho> AryehGregor, well currently you do have to convert between them
- # [22:45] <TabAtkins> AryehGregor: So I write broken regexps. ^_^
- # [22:46] <aho> i.e. you got some color in hex... and now you'd like to have it somewhat translucent
- # [22:46] <Hixie> Philip`: my N is low (1<=N<100) so the contant factors of setting up a hashmap seem high... isn't it just as easy and efficient to just build an array using binary search to find where to put things and a mem copy to move things around?
- # [22:46] <TabAtkins> But yeah, aho, I'm still trying to get #rgba added to the Color module, so we can write #06c8 and similar.
- # [22:47] <aho> that would be awesome
- # [22:47] <aho> :)~
- # [22:47] <TabAtkins> Hixie: Are you locked to an array, or can you use a linked list?
- # [22:47] <Philip`> Hixie: If N < 100 then why are you caring about performance at all?
- # [22:47] <aho> i'd be also fine with something like rgba(#abc,0.5) though
- # [22:47] <Hixie> TabAtkins: how do i search a linked list?
- # [22:47] <Hixie> Philip`: there's a lot of them
- # [22:48] <Philip`> A lot of what?
- # [22:48] <TabAtkins> Hixie: I don't understand the context of that question.
- # [22:48] <Hixie> Philip`: lists to sort
- # [22:48] <Philip`> Oh, lots of short lists?
- # [22:48] <Hixie> TabAtkins: how do i construct the linked list in a sorted manner without walking on average half the list each time?
- # [22:48] <Hixie> Philip`: yeah
- # [22:48] <TabAtkins> You don't. You just do insertion sort and eat that cost, because the constant factors are low and the asymptotic behavior is irrelevant for such small cases.
- # [22:49] <Hixie> Philip`: i have a bunch of trees that contain strings, and for each tree i have to construct a sorted array of strings
- # [22:49] <Hixie> TabAtkins: i have an irrational aversion to searching for things by just walking a list :-)
- # [22:49] <Philip`> About hashmaps, "just as easy" depends on what language/library functionality you have available
- # [22:49] <TabAtkins> Hixie: Stop being irrational, then.
- # [22:49] <Hixie> :-)
- # [22:49] <Philip`> e.g. std::unordered_set<std::wstring> is trivial in C++ and writing code for an explicit binary search takes much more effort
- # [22:50] <Lachy> TabAtkins, what are the objections to the #rgba syntax?
- # [22:50] <TabAtkins> Lachy: Man, I dunno. Let me dig up the thread for you.
- # [22:50] * Philip` isn't quite sure if it's really called std::unordered_set
- # [22:50] <Hixie> Philip`: code writinge effort in this case is not an isue
- # [22:50] <AryehGregor> Lachy, hard to tell at a glance whether something has three/four/six/eight characters after the #. Will take a long time to be usable compatibly.
- # [22:51] <TabAtkins> The latter is probably the main objection, since it's a convenience feature. I think it's pretty easy to tell 3/4/6/8 apart, though.
- # [22:51] <Philip`> Hixie: So "easy" is irrelevant?
- # [22:51] <Lachy> that last argument is bogus. It will just take longer if they keep delaying it.
- # [22:51] <Lachy> But I suppose the quickest way to get it in, is for some browser to implement it
- # [22:52] <TabAtkins> Hixie: Just write up a few possibilities and time. With lists that small constant factors that you have little control of will dominate, and so if you need efficiency you'll need to discover it experimentally.
- # [22:52] <TabAtkins> Lachy: Get to it.
- # [22:52] * TabAtkins wonders who's the right person to ping for that on chrome team...
- # [22:53] <aho> <AryehGregor> Lachy, hard to tell at a glance whether something has three/four/six/eight characters after the #. <- well, rgba(#f00,0.4) is pretty easy to read and it's also very obvious :>
- # [22:53] <TabAtkins> Lachy: Actually, I think the main objection was that it would slow Color3's progression. Getting two of us to implement would kill that argument.
- # [22:54] <Hixie> Philip`: yeah
- # [22:54] <aho> (personally i also got somewhat used to using a normalized value for the alpha)
- # [22:54] <Hixie> Philip`: i'm just looking for something cheap in cpu and memory
- # [22:54] <Lachy> if distingishing 3/4/6/8 chars is the main objection, then maybe (though I think this is less ideal) the syntax could be like #369/A
- # [22:54] <Hixie> Philip`: primarily cpu
- # [22:54] <Hixie> Philip`: for 1<=N<100
- # [22:54] <Philip`> How long are the strings?
- # [22:54] <AryehGregor> Lachy, that wouldn't conflict with other uses of /?
- # [22:55] <aho> i'd be also fine with that
- # [22:55] <Lachy> not in the color properties.
- # [22:55] <AryehGregor> Even in shorthand properties?
- # [22:55] <Hixie> TabAtkins: yeah, probably
- # [22:55] <Lachy> The / is used in 'font', where it wouldn't conflict
- # [22:55] <TabAtkins> Lachy: Rereading the latest thread on it, it appears the objections were (1) too late for Colors 3, it would slow down progression for a mere convenience feature, and (2) some implementors don't like #rgb notation at all, and so don't particular care to increase the usefulness of that syntax
- # [22:55] <aho> i don't really care... as long as i don't have to convert to dec or percentages (wtf) anymore, i'm fine
- # [22:55] <Philip`> It seems possible that string comparisons would be the most expensive operation so you'd want to minimise those
- # [22:55] <Hixie> Philip`: 1<=len(S)<20
- # [22:55] * Parts: pmuellr (~pmuellr@nat/ibm/x-rdgoqqxufavmbpby)
- # [22:56] <AryehGregor> Hixie, have you considered just buying better hardware? :)
- # [22:56] <Lachy> #rgb syntax is far superior to rgb() syntax for authors.;
- # [22:56] <Philip`> and shuffling smallarrays of pointers would be very quick
- # [22:56] <Hixie> AryehGregor: actually not an option in this case, but in any case it's more of a theoretical issue :-)
- # [22:56] <Philip`> s/la/l a/
- # [22:56] <Hixie> Philip`: true
- # [22:56] <TabAtkins> Lachy: Yeah, I agree. Shrug. So go ping whoever you need to at Opera and get it in. ^_^
- # [22:57] <Hixie> i'm surprised there isn't a well-known algorithm to solve this like there is for sorting constructed lists
- # [22:57] <Philip`> Maybe that means a trie would be best, since you'd only need to examine each character of an incoming string once, instead of comparing it against many others
- # [22:58] <Hixie> ooh, that's an interesting idea
- # [22:58] <Hixie> hadn't thought of that
- # [22:58] <Lachy> yeah, I think I know who's job it would be to implement it, but he's currently assigned to other tasks and has other more important tasks scheduled. But I'll see what I can do
- # [22:58] <Philip`> (ment already suggested a trie variant)
- # [22:59] <TabAtkins> Trie would probably be fine, since you won't be doing any more pointer-chasing than you would with a linked list, and the savings in comparisons might be significant.
- # [22:59] * Quits: pesla (~pesla@ip51cc03a5.speed.planet.nl) (Quit: pesla)
- # [23:00] <Hixie> Philip`: yeah, i had opened the page he suggested but not read it yet :-)
- # [23:00] <Philip`> Since there's not much data it'd all fit in L1 and pointers shouldn't be too expensive, I guess
- # [23:00] <aho> #abcd #aabbccdd #abc/d #aabbcc/dd ... hmm... i think i prefer the one with slash a little bit
- # [23:00] <aho> but the pure one is fine too
- # [23:01] * Quits: MikeSmith (~MikeSmith@EM114-48-3-118.pool.e-mobile.ne.jp) (Ping timeout: 240 seconds)
- # [23:01] <TabAtkins> What's an average size for L1 caches these days?
- # [23:03] <TabAtkins> Man, I was wracking my brain for something I remembered for quickly sorting an array as it's built, but just realized that the algo I'm thinking of is for quickly *shuffling* an array as it is built.
- # [23:03] <aho> 64 kb + 64 kb (data + instructions) per core, i guess
- # [23:03] <TabAtkins> Ah, that's just fine then. With roughly 100 strings of 20 characters or less each, that's about 2k of data per set. So yeah, everything fits in L1 no problem.
- # [23:04] <othermaciej> I don't like that the A in the rgba() function syntax has a different scale than the other components
- # [23:06] <TabAtkins> I think it's pretty dumb that <alphavalue> is restricted to being a number in [0.0,1.0], and can't be a percentage like the other colors.
- # [23:06] * Joins: MikeSmith (~MikeSmith@EM114-48-163-147.pool.e-mobile.ne.jp)
- # [23:07] <aho> i never used percentages for colors
- # [23:07] * Quits: ROBOd (~robod@109.96.227.246) (Quit: http://www.robodesign.ro)
- # [23:07] <Philip`> TabAtkins: http://en.wikipedia.org/wiki/Nehalem_(microarchitecture) says "32 KB L1 instruction and 32 KB L1 data cache per core; 256 KB L2 cache per core; 4–12 MB L3 cache shared by all cores"
- # [23:08] <Philip`> TabAtkins: You have to count all the pointers too, which are probably going to be larger than the actual character data
- # [23:08] <Philip`> but it sounds like it still wouldn't be a problem
- # [23:08] <Philip`> so there's no need to worry too much about optimising memory usage
- # [23:09] <TabAtkins> Hm? A pointer is 4-8 bytes. The strings will be 1-40 bytes, depending on encoding.
- # [23:09] <Hixie> (8 bytes, in this architecture)
- # [23:10] <Philip`> If it's a simple trie then I guess you need at least a pointer per node, which in the worst case is one per character
- # [23:10] <TabAtkins> Ah, right, per trie node. Yeah, then the pointers are more expensive.
- # [23:11] * Philip` likes it when he can make code faster just by rearranging data and not having to do anything complicated like think about algorithms
- # [23:13] <ment> what problem are you trying to solve?
- # [23:18] <Hixie> ment: the same one i mentioned earlier
- # [23:18] <Hixie> Philip`: for a trie, it seems you need some sort of dictionary structure per node
- # [23:20] <ment> Hixie: i still haven't understand why don't you just sort them with qsort?
- # [23:20] <othermaciej> if you want to sort N items, just sort them
- # [23:20] * Quits: Rik` (~Rik`@pha75-2-81-57-187-57.fbx.proxad.net) (Read error: No route to host)
- # [23:20] <othermaciej> N log N is pretty good
- # [23:21] <othermaciej> qsort has good constants
- # [23:21] <Philip`> Depends if there's going to be lots of duplicates you want to get rid of before sorting
- # [23:21] * Joins: Rik` (~Rik`@pha75-2-81-57-187-57.fbx.proxad.net)
- # [23:21] <ment> why not remove duplicates _after_ sorting?
- # [23:21] <othermaciej> or use heapsort if you need very little memory
- # [23:21] * Joins: roc (~roc@203-97-204-82.dsl.clear.net.nz)
- # [23:21] <othermaciej> if you want to remove duplicates before sorting, just use a hashset
- # [23:21] <othermaciej> O(N) in number of entries
- # [23:22] <othermaciej> there's no way to sort and unique a list of strings that is faster than O(N log N)
- # [23:22] <othermaciej> (unless they are fixed length, then you can use a radix sort to sort I guess)
- # [23:22] <TabAtkins> Ha, beat me to it.
- # [23:23] <Philip`> ment: You might find everything is a duplicate of a single value in O(N) time, and then you avoid the whole O(N log N) sort
- # [23:23] <TabAtkins> Strings can be treated as fixed-length if you already know the longest length, and treat non-existent characters as sorted before any actual characters.
- # [23:23] <AryehGregor> "I'm not *strongly* opposed to the concepts that these semantic elements, attributes and controls add, but I do think that, in order to actually reach a W3C standard quickly, controversial additions that are likely to slow down progress or result in poor interoperability should be removed from the specification so that the W3C HTML working group can reach closure quickly."
- # [23:24] <AryehGregor> Is it just me, or is this kind of statement usually a self-fulfilling prophecy?
- # [23:24] <Hixie> ment: constructing an array, then sorting it, then removing duplicates, seems like something that could be optimised further
- # [23:24] <othermaciej> TabAtkins: that would be O(N * MAXLEN), so unless MAXLEN is much less than log N it doesn't much help
- # [23:24] <othermaciej> Hixie: is your input streaming in, or is it already in memory?
- # [23:24] <TabAtkins> Hixie: You don't need a dictionary for a trie. It's just a normal tree, with each link representing a single element of the lists.
- # [23:25] <othermaciej> a trie is still essentially N log N
- # [23:25] <Hixie> ment: i'm just surprised there aren't well-established algorithms for doing this :-)
- # [23:25] <othermaciej> don't use a fancy data structure when a simple one would do
- # [23:25] <TabAtkins> othermaciej: Right, but it's fun!
- # [23:25] <Hixie> TabAtkins: how do you store the connections at each node?
- # [23:25] <ment> Philip`: first, there's three-way qsort. second, you would need a really large amount of data with duplicates to speed things up (it would only complicate the code)
- # [23:25] <othermaciej> there are - unique using a dictionary, then sort using a common sort
- # [23:25] <TabAtkins> Hixie: An array of pointers.
- # [23:25] <ment> Hixie: there are! qsort :)
- # [23:25] <Hixie> othermaciej: it's in memory (in a tree data structure)
- # [23:25] <othermaciej> Hixie: what kind of tree?
- # [23:25] <Hixie> ment: for constructing the array while sorting it, i mean
- # [23:26] <Hixie> othermaciej: on what axis are you asking for the trees to be described?
- # [23:26] <othermaciej> if the tree is indexed by the string in question, then an inorder traversal will give you back the strings in sorted order
- # [23:26] <Hixie> TabAtkins: then you're back to walking a list to find things :-P
- # [23:26] <ment> Hixie: do you need it to be 1) with low latency (and with intermidiate results available) 2) able to cope with large amount of data 3) high speed ... ? just give some conditions
- # [23:26] <othermaciej> that's O(N)
- # [23:26] <othermaciej> Hixie: any - "it's a tree" is very little information
- # [23:27] <TabAtkins> Hixie: Hm? No, if you have a set alphabet the strings are constructed from, you just make an array of that size and you can grab the appropriate one with a simple index.
- # [23:27] <ment> othermaciej: trie is not 'N log N', trie is O(1) if implemented right
- # [23:27] <ment> erm, O(N)
- # [23:27] <othermaciej> is it a binary tree? a b-tree? something else? are these the strings to the key or not?
- # [23:27] <othermaciej> ment: building the trie isn't O(N)
- # [23:28] <ment> othermaciej: erm I mean O(N) where N is sum of lenghts of the keys
- # [23:28] <Hixie> othermaciej: it's just a regular tree, like a DOM tree; the strings are just annotations at each node and have nothing to do with the structure of the tree
- # [23:28] <ment> othermaciej: but you wouldn't get better result with sort anyway as comparsion or varlen keys isn't really O(1)
- # [23:28] <ment> *of
- # [23:28] <othermaciej> Hixie: so my suggestion is, make an array and a set, visit each tree node, check if string is in set, if not, append to the array
- # [23:28] <othermaciej> then sort the array
- # [23:28] <othermaciej> if that is too slow or uses too much memory, then you can worry about whether you need a fancy algorithm
- # [23:28] <Hixie> TabAtkins: um, i'm not creeating a 256-entry (or 0x10FFFF-entry!) array at each node of a trie, that would take insane amounts of memory :-P
- # [23:29] <ment> Hixie: my suggestion is qsort it, then remove the duplicates
- # [23:29] <othermaciej> sorting before removing duplicates could use less memory in theory but is probably slower
- # [23:29] <Hixie> man creating an array then sorting it seems so silly
- # [23:29] <ment> you don't have to, you can save the state-transition table in hashmap :)
- # [23:29] <Hixie> ment: that's what i said earlier
- # [23:30] <Hixie> ment: each node of a trie requires some sort of dictionary
- # [23:30] <TabAtkins> Hixie: Heh, just estimate the minimum and maximum character used and establish an array that wide.
- # [23:30] <othermaciej> Hixie: you could build a balanced binary tree instead, but then building the tree takes longer than building the array + sorting the array
- # [23:30] <Hixie> ment: TabAtkins was disagreeing
- # [23:30] <ment> but you can use one dictionary for all states
- # [23:30] <othermaciej> basic rule of programming: never use a fancy data structure when a simple one would do
- # [23:30] <ment> and access it with composed key (state, char)
- # [23:30] <TabAtkins> Hixie: Though a linked list of pointers would be better, since it will be sparse past the root node.
- # [23:30] <Hixie> othermaciej: i'm just surprised there isn't some variant on sorting algorithms that basically sorts as the array is constructed instead of doing it as a two-step process
- # [23:30] <othermaciej> if you haven't tried the simple solution first, you are wasting all our time and are a bad software engineer
- # [23:31] <ment> Hixie: it is :) insert sort
- # [23:31] <othermaciej> Hixie: a balanced binary tree self-sorts, but it's not really faster
- # [23:31] <Hixie> ment: insertion sort still acts on a pre-built array unless we're talking about different things
- # [23:31] <othermaciej> true, insertion sort will do it, but that's O(N^2)
- # [23:32] <Hixie> othermaciej: i agree entirely that using complex data structures is silly here, hence my pushback on the ideas of using tries and so forth
- # [23:32] <othermaciej> you can use insertion sort in the course of inserting
- # [23:32] <ment> Hixie: no, you walk down sorted list and insert it before first larger key
- # [23:32] <othermaciej> Hixie: why your pushback on building an array and then sorting it then?
- # [23:32] <othermaciej> that's the obvious CS101 solution
- # [23:32] <TabAtkins> Hixie: No, insertion sort works fine. That's why I suggested it beforehand. ^_^ You need a linked list, not an array, though, to avoid data-moving penalties.
- # [23:32] <othermaciej> if you haven't tried that, you are wasting all our time
- # [23:32] <Hixie> othermaciej: no push back there, i'm just saying i'm surprised there's no better solution
- # [23:32] <Hixie> othermaciej: it's basically what i had gotten to before asking here
- # [23:32] <othermaciej> sorting is N log N
- # [23:32] <ment> TabAtkins: data moving while traversing is cheap
- # [23:33] <othermaciej> (unless you have a special case amenable to radix sort or the like)
- # [23:33] <Hixie> ment: walking the whole list each time just seems obviously suboptimal
- # [23:33] <Hixie> or half the list
- # [23:33] <Hixie> on average
- # [23:33] <TabAtkins> ment: Not in the situation you'd have here, where you would traverse part of the array, and then ahve to move the rest.
- # [23:33] <TabAtkins> ment: That's guaranteeing a full-price n^2 cost.
- # [23:33] * Quits: cying (~cying@70.90.171.153) (Ping timeout: 240 seconds)
- # [23:34] <othermaciej> insertion sort is a poor solution here
- # [23:34] <ment> TabAtkins: what if you move while traversing from the back?
- # [23:34] <othermaciej> one O(N^2) pass is not better than an O(N) pass followed by an O(N log N) pass
- # [23:34] <ment> Hixie: do you need it to be high-speed for 10000 or more keys?
- # [23:34] <TabAtkins> othermaciej: It is if the N is very small (which it is here, roughly 100 strings).
- # [23:35] <TabAtkins> othermaciej: Or rather, it can be, if the constant factors are small enough for the n^2.
- # [23:35] <othermaciej> they are not smaller than the constant factors for vector append and quicksort
- # [23:36] <othermaciej> and if your problem set size is 100, then if you are spending time optimizing it at all you're probably wasting effort
- # [23:36] <TabAtkins> othermaciej: Individual problems are roughly 100, but if you have a bunch of problems like that then optimization can make sense.
- # [23:36] <othermaciej> (unless you do it over and over)
- # [23:37] <othermaciej> optimization doesn't make sense until you measure
- # [23:37] <TabAtkins> But really, I said before that at problem sizes this small you can't establish efficiency through theory, and really just need to do timings.
- # [23:37] * Hixie wasn't trying to optimise, just asking if there was some obvious solution intended for this case that he was overlooking :-)
- # [23:37] <othermaciej> you already found the obvious solution
- # [23:37] <Hixie> apparently
- # [23:38] * Quits: cpearce (~cpearce@ip-118-90-17-75.xdsl.xnet.co.nz) (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.0.15/2009101909])
- # [23:38] <othermaciej> there may be marginally faster solutions depending on context, but none of them are obvious, and the obvious solution is not at all bad
- # [23:38] <Philip`> The obvious solution is always some combination of sorts and trees and hashmaps, whatever the problem is
- # [23:38] <Philip`> and usually works well enough
- # [23:39] <othermaciej> sometimes you need a crazy data structure
- # [23:39] <othermaciej> not often though
- # [23:39] <ment> sometimes you need word-encoded hash-table indexed by tree shape
- # [23:40] * Quits: shepazu (~schepers@adsl-69-155-247.rmo.bellsouth.net) (Quit: shepazu)
- # [23:40] <ment> btw do css* working groups have irc channels?
- # [23:41] <Philip`> Overoptimisation of underspecified problems is always fun, though
- # [23:41] <TabAtkins> ment: We have #css on the w3 server, but that's not really for CSS discussion, just working group stuff.
- # [23:43] <ment> ah, i was looking for a place where i can threaten people designing new css3 collection of specs
- # [23:43] <TabAtkins> Which specs? I can be threatened here without you having to lift an additional finger.
- # [23:50] * Joins: nessy (~Adium@124-170-18-159.dyn.iinet.net.au)
- # [23:54] * Quits: ap (~ap@17.246.17.104) (Remote host closed the connection)
- # [23:54] * Joins: ap_ (~ap@17.246.17.104)
- # [23:58] * Quits: miketaylr (~miketaylr@38.117.156.163) (Remote host closed the connection)
- # Session Close: Fri May 14 00:00:00 2010
The end :)