[00:05:50] DracoBlue (~Adium@ip-vlan-obckunde-02-217-66-60-14.pixelpark.net) joined #rest. [00:07:04] DracoBlue (~Adium@ip-vlan-obckunde-02-217-66-60-14.pixelpark.net) left #rest. [01:18:34] http://tools.ietf.org/html/draft-ietf-core-coap-08 [01:18:55] that's very interesting for people like me with electronics as a hobby [02:29:35] qcomm (~qcon@cpe-70-123-124-14.tx.res.rr.com) left irc: Quit: Lost terminal [03:02:58] Wombert (~Wombert@dslb-092-074-120-056.pools.arcor-ip.net) joined #rest. [03:05:18] Hakon|mbp (~hakon1@130.82-134-26.bkkb.no) joined #rest. [05:19:36] bigbluehat (~bigblueha@nmd.sbx08595.greensc.wayport.net) joined #rest. [05:22:09] mikekkkk (~mike@ks391369.kimsufi.com) joined #rest. [05:22:40] ah [05:22:50] the good old partial PUT debate [05:23:18] "don't do that it violates the spec and is not visible" [05:23:27] lmarburger (u1979@gateway/web/irccloud.com/x-fynqtlapeqosldqp) left irc: Remote host closed the connection [05:23:27] tehviking (u2893@gateway/web/irccloud.com/x-yqqcfeyvarlgnntc) left irc: Read error: Connection reset by peer [05:23:41] "why do you want that to be visible?" [05:23:54] "beacuse it's good for visibility" [05:24:29] "and what are you planning on or already doing with that visibility?" [05:24:42] kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) joined #rest. [05:24:48] "irrelevant go read the spec" [05:27:13] mikekkkk: Do not question The spec. [05:30:33] lol [05:30:44] I wouldn't even say the spec is that absolute about it [05:31:01] + people fragrantly ignore it or don't care about it [05:31:40] You are correct. What I meant to say was do not question the elder's interpretation of The spec. [05:31:41] I really don't understand this "you can't do an impotent partial update" thing [05:32:02] it doesn't make any sense.. idempotency is about client intention [05:32:30] An impotent partial update? Is that some kind of medical condition? [05:32:43] lol! [05:32:53] :| [05:33:43] I don't see how the 'omg someone could update it before your reuqests actually gets to the server and could have unintended outcome' is not applicable to full updates too [05:34:15] gchristensen (~gchristen@unaffiliated/grahamc) joined #rest. [05:34:48] or why dealing with the distinction is not an application concern [05:35:10] why do we need systemic oversight.. nobodies doing anything interesting with 'full PUTs' [05:35:30] lmarburger (u1979@gateway/web/irccloud.com/x-kaugcbfiphvbgwrm) joined #rest. [05:36:22] mikekkk: "nobody is doing anything interesting with 'full PUTs'" That's exactly my feeling. Everyone says YOU MUST DO COMPLETE PUTs and then we all run off and do something different because other than the trivial cases it is just not practical. [05:45:51] I mean.. I don't care that people use full PUTs [05:46:11] that's fine, I just don't see why systemically everyone needs to agree that only full PUTs can be idempotent [05:46:36] particularly when there's many people who are already doing it, and it is not causing them any problem [05:46:46] apart from people reading specifications like they're holy law. [05:46:55] .. and then giving them an earful. [05:48:07] like.. we use Riak - that's full PUT (including Link in the request headers) [05:48:14] mamund: Wombert: I think we need to hand out a book of these at #restfest next year: http://www.flickr.com/photos/girliemac/6508023259/in/set-72157628409467125/ [05:48:16] that's fine for their use case and their application [05:48:20] that is all :) [05:57:03] I'm getting a t-shirt for the next restfest that says "I don't PUT and I don't care" [05:58:08] or maybe, "My PUTs are impotent" ;-) [05:58:16] :) [06:01:33] :) nice [06:01:41] we should have a shirt design contest [06:02:23] wav1 (~Adium@cpe-70-112-49-11.austin.res.rr.com) joined #rest. [06:02:47] tehviking (u2893@gateway/web/irccloud.com/x-afbzjbckmsbjzacx) joined #rest. [06:04:22] bigbluehat: I'm not so sure, because the funniest t-shirts are ones full of sexual innuendo and restfest is currently a bunch of geeky men. That would be just creepy. [06:05:07] agreed :) [06:08:22] :D [06:08:26] not big on the ol' homosex there eh darrelmiller ? [06:09:00] I've nothing against a good looking studly man. however.... [06:09:18] LOL :) [06:14:03] wav1 (~Adium@cpe-70-112-49-11.austin.res.rr.com) left #rest. [06:17:22] bigbluehat (~bigblueha@nmd.sbx08595.greensc.wayport.net) left irc: Quit: Leaving. [06:21:44] grove (~grove@aggw006.cappelendamm.no) left irc: Quit: grove [06:23:38] lmarburger (u1979@gateway/web/irccloud.com/x-kaugcbfiphvbgwrm) left irc: Remote host closed the connection [06:35:40] Action: mamund peeks into the room [06:36:22] lmarburger (u1979@gateway/web/irccloud.com/x-wzpgnisqeuvbqauq) joined #rest. [06:36:40] Morning @mamund. We can see you. [06:36:44] LOL [06:36:58] Action: mamund attempts to adjust his cloak of invisibility [06:46:10] Question for you http heads. If I am sending completely opaque payloads to a single URI (bear with me), is there an existing HTTP header that I could use to add some descriptive information in to aid with debugging? If not, would anyone object to be adding a custom header for this purpose. [06:47:02] custom your heart out [06:47:21] what are you debugging here? [06:47:28] fu-manchu: Thanks :-) [06:47:32] Action: mamund seems to recall some thread or IRC convo on this topic in the past [06:48:45] mamund: I'm working on a project that uses a framework that tunnels queries over http to a single uri and I'm trying to convince the framework guys of the value of being able to use a tool like fiddler to view what queries are actually happening and when. [06:49:29] ok [06:49:41] i';ve used custom headers during debugging a number of times. [06:49:49] So far, as options, I've suggested adding a query param to their URI that they can ignore that gives the name of the query being executed. [06:49:51] we use custom X-Timing and X-Trace-Id headers extensively here in-house [06:50:10] if it's something more permanent, you might check out http://tools.ietf.org/html/rfc4229 [06:50:14] I've suggested implementing a media type and param, e.g. vnd.foo.query;name=GetCustomers [06:50:17] to see if ther is something already registered that fits [06:50:27] and I've suggested a custom header as a possibility. [06:50:32] ahh [06:50:44] you want to create some "shared understanding" of the payload [06:50:55] mamund: I wondered about using TBL's title header. [06:51:06] add some label or something that would alloow clients to "know" what this payload is "about" [06:51:31] content-type might be useful, can't recall it's original intent [06:51:36] :) [06:51:49] but i kid now.... [06:52:03] No, this is purely debugging and it's mainly for documenting the POST body. [06:52:20] yeah, i understand, sorry for the sarcasm [06:52:23] levity? [06:52:26] np :-) [06:52:41] houw about profile? [06:52:55] do a link header w/ rel=profile [06:53:17] hmmm. yeah that might work. [06:53:26] i fall back on that quite often [06:53:31] So many choices. [06:53:44] nice thing there is yo can use a resolvable URI [06:54:14] you can use it within a body as well as a header [06:54:17] etc. [06:54:37] Yes, however, in many cases these are ad-hoc queries created by the client, so there is no corresponding server side concept. [06:55:10] LOL [06:55:22] The framework guys don't want to touch their body. versioning issues, you know the story :-) [06:55:51] mamund: Sometimes we have to make the best of a bad situation. [06:57:38] On a positive note I'm getting all sorts of evidence of why REST is awesome. [06:57:57] darrelmiller: yeah, you make lemonade [06:58:09] this comes up quite a bit when i come into an existing project [06:58:29] adding profile on each response is not a bit expense for servers [06:58:47] agreed. [06:58:47] even getting them to emit the *exact* *same* *value* for every response is a start [06:59:18] then you get client folks asking for "better" info in that header and/or better docs at the profile URI [06:59:39] at first is just pushes the issues out to this URI, but at least they are now "out" [06:59:47] after that it take effort to improve/refine [07:00:02] anyway, that may not be what you want to do right now. [07:00:43] isn't that exactly what X headers are for ? [07:01:10] am I missing something ? [07:01:14] mikekkkk: You mean custom headers right? We know X- is evil right? [07:01:30] well are you planning on making it part of the application ? [07:01:40] or are you just diagnosing something temporarily ? [07:03:25] I see it as a long term addition. [07:03:58] ...to a framework that is used to build many apps. [07:04:24] if you're going to change the app why not just split apart the resources ? [07:09:38] kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) left irc: Quit: Computer has gone to sleep. [07:22:57] kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) joined #rest. [07:25:45] kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) left irc: Client Quit [07:28:14] saml (~sam@adfb12c6.cst.lightpath.net) joined #rest. [07:28:35] kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) joined #rest. [07:28:54] hey, for search result page, does it make sense to have url like /book/search term/page number/ instead of /book?q=seaerch term&offset=N ? [07:29:22] mostly [07:29:52] you don't want /book/ to ever conflict with /book/ or /book/ [07:29:54] grove (~grove@193.201.9.46.customer.cdi.no) joined #rest. [07:30:42] I typically mitigate that by using /book/byterm/ or something [07:31:08] saml: "the network" doesn't care about / or ? &, etc. [07:31:28] clients "shound't care" (but usually do) [07:31:50] this really matters to servers since they are the ones that must parse and process the URI for the requests [07:33:04] I find that since "/" means hierarchy, it works really well as "subset", and what is a search returning other than a particular subset of all /books/ ? [07:33:15] so it makes more sense to me than ? [07:34:17] in that sense, the network does care: "/" means hierarchical (in many schemes like HTTP) and "?" means opaque [07:35:19] fu-manchu: "the network" is the various _machines_ connected together; they don't give a whit about "/" or "?" [07:35:48] the _machines_ don't understand "hierarchy"; those who _program_ the machines care about it, tho. [07:36:15] they understand it when they parser relative references [07:36:19] parse* [07:36:23] and you are absolutely correct that "/" means hierarchy and should be used that way [07:38:15] gchristensen (~gchristen@unaffiliated/grahamc) left irc: Quit: Leaving... [07:41:05] bigbluehat (~bigblueha@nmd.sbx08595.greensc.wayport.net) joined #rest. [07:41:29] whether them caring about it is something you want to sponsor is another issue. [07:41:39] I don't, personally. [07:43:01] the only URL shit that you should care about is the ?param=value pattern [07:43:22] and even that is not essential [07:44:34] mamund: is it really, /actually/, impossible for a client to issue a partial AND idempotent updating request ? [07:44:49] bigbluehat (~bigblueha@nmd.sbx08595.greensc.wayport.net) left irc: Read error: Connection reset by peer [07:45:11] regardless of HTTP [07:45:37] no, not impossible at all AFAIK [07:45:46] so why is Jan telling me that it is ? [07:45:48] business wants "pretty url" [07:45:59] tell them to fuck off [07:46:04] saml: they can have them, it doesn't matter [07:46:05] they think no ?foo=bar is pretty. even for dynamic search pages [07:46:17] Action: mamund LOL mikekkkk doesn't work and play well w/ others today [07:46:37] too many [07:46:42] logical fallacies [07:46:44] cannot [07:46:48] ! [07:46:48] have an sensible discussion [07:46:59] yeah, i think that PUT thing is way too muddled [07:47:13] well it's because Jan keeps insisting that partial idempotent requests are NOT POSSIBLE [07:47:16] that convo is messed up and i am leaving it alone [07:47:24] yeah, that's a mistake [07:47:25] and that POST IS THE BEST YOU HAVE [07:47:37] HTTP's "agreement" sez "we don't do partials" [07:47:37] which is cleeeeeeeeeearly bollocks. [07:48:00] https://github.com/rails/rails/pull/505#issuecomment-3163433 [07:48:12] gchristensen (~gchristen@unaffiliated/grahamc) joined #rest. [07:48:21] pretty sure I just nailed it. [07:50:12] does bis address this at all? [07:50:25] nope I don't think so [07:50:26] Action: mamund is not sure why he is even asking about this crap today [07:50:28] pretty sure I went to check [07:50:41] even if thyey changed it so it was more explicit that wouldn't alter my pov [07:50:41] there was some discussion about that for bis [07:51:03] we've had it for 12 years [07:51:11] yeha, your POV is not about the protocol spec [07:51:12] and nobodies done ANYTHING with it [07:51:17] but they altered it in a very Roy kind of way: perfectly factual but somehow slightly less than quickly enlightening [07:51:35] what is the point in a restrictive semantic that actually achieves NOTHING [07:51:48] i use full PUT every day; it matters to me [07:51:55] for your application [07:52:03] not as a systemic property of HTTP and the web [07:52:24] it's not systemic anyway tonnes of people violate it [07:52:36] and that makes 0 difference because the semantic is app specific [07:52:43] "When a PUT representation is inconsistent with the target resource, the origin server SHOULD either make them consistent, by transforming the representation [07:52:53] so partial puts don't matter in cache eviction? [07:53:07] huh? [07:53:15] doesn't matter [07:53:18] it's a request that invalidates [07:53:25] body is irrelevant [07:53:31] ok [07:53:52] did you see me pokeing around about that smarter caching thing ? [07:54:08] so 200 response on a partial put is not a problem for caches, right? [07:54:15] nope [07:54:17] nuclearsandwich (~nuclearsa@74-93-3-241-SFBA.hfc.comcastbusiness.net) left irc: Remote host closed the connection [07:54:25] ok [07:54:27] yeah, saw that [07:54:35] it would be if there were caches that leveraged the theoretical benefit of full PUT to prime the cache [07:54:37] mark seems to be on the same wavelength, right? [07:54:40] but last time I checked [07:54:41] noen do [07:54:58] "none do" as in it is impossible for them to do this? [07:55:09] well there's the issue that representation is HTTP metadata too [07:55:19] you don't get that from a request [07:55:30] the response metadata [07:55:34] i.e. Etags blabla [07:55:42] yeah, that's what i figured [07:55:55] it's just a massive pita - so everyone just does it normally [07:55:58] this is what I mean [07:56:01] it's so fiddly [07:56:06] it's just an unnecessary semantic [07:56:10] it adds nothing practical [07:56:17] and prevents useful behaviour [07:56:25] querty [07:56:31] qw <-erty [07:57:03] inefficient, annoying, too late to change it w/o additiona pain and suffering. [07:57:29] well I keep asking for a practical example of where it's used [07:57:48] and I get theoretical stuff about interemediaries that repeat requests [07:58:04] (not that that would actually be a problem if its idempotent) [07:58:09] :) [07:58:39] but yeah -0 afaict this is basically based on some huge assumption that you can't do partial + idempotent requests [07:58:50] mikekkkk: don't you think "inconsistent with the target resource" could mean "partial"? and therefore by transformed by the origin server to be complete? [07:59:02] right [07:59:03] be* transformed [07:59:09] yeah for sure [07:59:25] my memory is so crap that does ring a bell so I think it's come up before somewhere [07:59:35] I wonder what Jan would think of that text [07:59:54] !summon algermissen [07:59:54] "you can't do idempotentn partial updates" [07:59:56] at a guess. [08:00:00] :P [08:00:31] I do them all the time [08:01:04] and f(x * 0.5) -> y every time, idempotently [08:02:48] kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) left irc: Quit: Textual IRC Client: http://www.textualapp.com/ [08:03:45] have him read http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-17#section-6.6 again [08:05:50] even if he doesn't accept partial updates, he has to accept that the origin server can transform the entity to be consistent [08:09:39] kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) joined #rest. [08:15:32] no [08:15:35] it can't [08:15:40] read 2616 [08:15:41] omg [08:15:50] q.e.d [08:17:44] lol [08:18:18] actually, don't let him read it--he might raise a stink and delay Last Call ;) [08:19:10] the WG could settle this matter if they just included an example that was structured data instead of img [08:19:20] yeah lets keep it on the down low [08:19:27] and then spring him with it once it's through [08:19:32] maybe that's why Roy's doing [08:19:35] what^ [08:19:58] "I could've discussed this with you, but honestly you'd have just got in the way" [08:21:21] heh [08:40:59] o/ [08:41:57] \o [08:48:44] \o\ [08:52:13] DracoBlue (~Adium@ip-vlan-obckunde-02-217-66-60-14.pixelpark.net) joined #rest. [08:52:15] DracoBlue (~Adium@ip-vlan-obckunde-02-217-66-60-14.pixelpark.net) left #rest. [08:56:38] DracoBlue (~Adium@ip-vlan-obckunde-02-217-66-60-14.pixelpark.net) joined #rest. [08:57:11] nickp_ (~nickp@cpe-71-72-121-157.insight.res.rr.com) joined #rest. [09:04:18] mamund's got the moves... [09:10:14] :) [09:16:35] KevBurnsJr (~KevBurnsJ@50.0.103.39) joined #rest. [09:24:57] nuclearsandwich (~nuclearsa@65.50.203.171) joined #rest. [09:29:42] nuclearsandwich (~nuclearsa@65.50.203.171) left irc: Ping timeout: 248 seconds [09:30:06] nuclearsandwich (~nuclearsa@173.sub-166-250-40.myvzw.com) joined #rest. [09:38:18] nuclearsandwich (~nuclearsa@173.sub-166-250-40.myvzw.com) left irc: Ping timeout: 252 seconds [09:45:42] DracoBlue (~Adium@ip-vlan-obckunde-02-217-66-60-14.pixelpark.net) left irc: Ping timeout: 248 seconds [10:10:29] Hakon|mbp (~hakon1@130.82-134-26.bkkb.no) left irc: Ping timeout: 268 seconds [10:18:16] pc1oad1etter (~pc1oad1et@cpe-71-72-121-157.insight.res.rr.com) joined #rest. [10:23:08] DracoBlue (~Adium@dslb-088-075-066-254.pools.arcor-ip.net) joined #rest. [10:24:21] DracoBlue (~Adium@dslb-088-075-066-254.pools.arcor-ip.net) left #rest. [10:38:37] nuclearsandwich (~nuclearsa@173.247.193.198) joined #rest. [12:09:57] Action: mamund confesses out loud that he's starting to enjoy working w/ the Cloud9 editor [13:05:13] you are? also for priv projects? [13:05:22] yes. [13:05:41] i am testing it for my own internal work right now and it's not bad at all [13:05:49] does it cost something? [13:05:50] (of course these projecvts are nodejs, too) [13:05:55] to start it's 0 [13:06:14] does it support only github? [13:06:17] this gives you the chance to clone from git into the c9 repo [13:06:21] uses bitbucket, too. [13:06:42] we have our stuff on repositoryhosting.. [13:06:46] you can also use FTP as long as it's FTP/passive (no SFTP, no active, etc.) [13:06:50] yeah [13:07:09] i'd ping them to see what it takes to add a new repo host [13:07:48] for a fee you can create private projects (their own git, but private) [13:08:12] seems like the connector to your provider should be a no-brainer, but i don't know the details [13:08:21] anyway, been quite handy lately [13:08:23] but it hasn't got any "give git url here and clone"? (i'm on mobile atm..) [13:08:31] yes, it does [13:08:36] well, hmmmmm [13:08:39] crap [13:08:40] sure [13:08:44] you should have no problem [13:08:52] cool [13:08:58] gonna try out [13:08:59] and you have accesss to a command line [13:09:12] you can create project on c9, then add a remote and push [13:09:13] have heard only good [13:09:17] yeah [13:09:26] sometimes the servicew is a bit flakey as they rame up [13:09:29] ramp up [13:09:30] [13:09:36] but so far, been a good eperience [13:09:48] it's the ACE/bepsin editor [13:10:17] of course it is best for nodejs as you can run it directly from there, right? [13:10:27] and you can [13:10:33] even step-by-ste debugging [13:10:37] cool [13:10:54] the editor does highlihgting for a wdie range of files, too [13:11:05] even let you do local npm installs [13:11:34] anyway, i'm a tool for them this wekk, i guess [13:11:45] I do php a lot and need to run it.. it might be better for those projects tov edit locally.. [13:18:35] Action: mamund was away [13:18:56] yeah, one possible thing for non-node stuff & C9 is... [13:19:05] connect the editor via FTP [13:19:13] then you can edit in the browser [13:19:33] and then fire off stuff on the target host directly [13:20:00] i use active FTP conections (or SFTP) and haven't had a chance to try this [13:20:23] hey, you can even do live continuous deployment on your production server that way. =-P [13:20:36] I've had reasonable luck with an SSHFS link to remote servers...not that this has anything to do with C9, but it's nice to skip "deploy" steps and stuff. Just save and go. [13:23:20] grove (~grove@193.201.9.46.customer.cdi.no) left irc: Quit: grove [13:24:56] whartung: i use ssh + vim quite a bit [13:25:07] can be tricky, but works very well for diag & config stuff [13:25:16] how do you do that? what does that do? [13:25:39] ssh gives me a shell(command window) on the remote machine [13:25:54] o [13:25:55] then i can use vim (character editor) to mod files, run compilers, etcd. [13:26:01] You do it with lots of esoteric keystrokes :D [13:26:08] pc1oad1etter: LOL [13:26:23] pc1oad1etter: i've been testing out the github flow pattern... [13:26:49] Actually, relatively few esoteric keystrokes. Since it's all optimized to not use up network bandwidth sending keystrokes. [13:26:53] always code on branch, always delply form master. [13:27:33] pc1oad1etter: even better, use the same keys to do 20 diff things (depending on a "toggle" somewhere, etc.) [13:27:39] I know that they're not far apart in many areas, but I always feel a little lost when i switch from hg to github. [13:27:57] yeah, pertty diff, actually. [13:28:03] i feel the same dabbling in hg [13:28:31] sshfs is different because it "mounts" the remote machine locally, so you get to use your local tools etc, but the files are kept on the remote machine [13:29:54] yeah, that's nice [13:30:01] sometimes, i don't have my "tools" w/ me, tho. [13:30:48] grove (~grove@193.201.9.46.customer.cdi.no) joined #rest. [13:33:46] grove (~grove@193.201.9.46.customer.cdi.no) left irc: Client Quit [13:35:37] omfg [13:35:41] RAGE [13:35:49] Action: mamund waves [13:35:53] :( [13:36:04] mamund: remember the gawker hashbang disaster? [13:36:11] gizmodo.com and all the other sites? [13:36:18] yeahsssss [13:36:27] mamund: know travis-ci.org ? [13:36:51] name is familier..... [13:37:08] mamund: http://travis-ci.org/ :p [13:37:12] so they use hashbang urls throughout [13:37:16] yep, i see that [13:37:25] and I offered my help converting it to history.pushState [13:37:28] like github does [13:37:46] cause, you know, curl works then, and also for folks with no js etc [13:38:11] :) [13:38:13] so I start working on it and talking to folks on IRC etc [13:38:25] turns out they send json back and forth and render it with js in the browser [13:38:33] and I'm like "well imma need help with this" [13:38:46] and then the project lead calls me a troll and shoots the whole effort down [13:38:55] because apparently well, who gives a fuck about cacheability [13:38:55] ........ [13:39:00] and who wants to curl a website anyway [13:39:01] ffs [13:39:20] :( [13:39:24] [sigh] [13:40:22] grove (~grove@193.201.9.46.customer.cdi.no) joined #rest. [13:40:43] so, like, we no needz yer hep, doo weee? [13:43:28] grove_ (~grove@aggw006.cappelendamm.no) joined #rest. [13:46:38] grove (~grove@193.201.9.46.customer.cdi.no) left irc: Ping timeout: 240 seconds [13:46:38] Nick change: grove_ -> grove [13:51:11] mamund: well right now he claims there won't be server-side rendering for a year or more to come because there isn't any framework that can "support all of these things well enough" [13:51:58] ummmm..... yeah.... [13:53:30] kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) left irc: Quit: Computer has gone to sleep. [13:54:07] kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) joined #rest. [14:01:29] omfg [14:02:09] holy fuck [14:04:12] grove_ (~grove@193.201.9.46.customer.cdi.no) joined #rest. [14:04:47] uh wut? [14:05:19] lol [14:05:27] this partial PUT thing REALLY gets on my tits [14:05:37] heh [14:05:47] all the people who defend the spec basically have no actual reasoning behind their position [14:05:50] that doesn't make any sense to me [14:05:59] other than basically "that's what the spec says, that's how the web should be" [14:06:20] regardless of whether or not there's actually any value in it being that way [14:06:37] I mean, PUT is supposed to take a "representation" of the resource, right? [14:06:59] I'm still completely clueless about what it is that people need the web to guarantee them full PUT for [14:07:02] where does it say that this "representation" has to be "the entire thing"? It's a REPRESENTATION, it's NOT the "resource" [14:07:14] well, and that of course [14:07:32] so who says that a "partial" representation isn't VALID for a specific resource? [14:07:33] grove (~grove@aggw006.cappelendamm.no) left irc: Ping timeout: 248 seconds [14:07:51] I undersatnd why, in some cases applications might require client interactions that are full [14:07:58] but not in every case [14:08:09] it doesn't have to bee across the whole web [14:08:12] not sure I understand the idempotent issue... [14:08:23] grove_ (~grove@193.201.9.46.customer.cdi.no) left irc: Ping timeout: 245 seconds [14:08:32] I just skimmed the thread on the ML [14:08:37] cuz I'm lazy [14:08:41] and can't read [14:08:45] Jan's basically saying that partial updates cannot be idempotent [14:08:56] why not? [14:08:59] no idea. [14:09:08] "beacuse fuck you" [14:09:23] "See, section 4.5.3A -- FUCK YOU" [14:09:28] :) [14:10:25] maybe I don't understand what idempotentcy means here [14:11:14] no I think Jan has some over-specified definition [14:11:44] tbh I don't even care that much about terminology or anything [14:11:55] Maybe if I GET /person and I get John Smith, and then PUT /person changing the first name to Frank, but when I to a GET I end up with Frank Jones because someone else updated the last name to Jones. [14:11:59] O_o [14:12:02] I just care about what people's problem with using PUT that way is.. given that people are using [14:12:06] and not experiencing problems [14:12:11] and not causing anyone else any problems [14:12:29] well, 4.5.3A yo [14:12:35] other than 2616 wonks being anal about some badly worded terminology [14:12:42] partial updates cannot be idempotent [14:12:44] that is correct [14:12:52] explain [14:13:03] yea, 'splain please [14:13:06] I was dave's legs to be green [14:13:08] what does that mean [14:13:08] I GET details of a person from /people/john [14:13:17] PUT /dave { legs: "green" } [14:13:26] and then PUT it back but without the first_name field [14:13:36] does that mean we just deleted the first_name field? [14:13:44] the intention of the partial is to update only the specified attributes.. [14:13:46] it means whatever the application wants it to mean. [14:13:46] if I send a name field, is that just one field that replaces the existing one? [14:13:49] do we add another? [14:14:04] Wombert: in almost all cases it's less common to delete [14:14:05] it's up to the appliation to interpret the resource [14:14:10] if you need to delete make it a resource in its own right [14:14:21] there's no definition of semantics here [14:14:22] that makes way more sense than the other way round [14:14:46] If you forget the first name, it may well convert /person/john in to a PNG of a tomato. [14:14:55] wat if I have an intermediary that needs to validate the update? [14:15:00] it doesn't have all the data [14:15:00] ? [14:15:03] so how can it do it? [14:15:09] that is application specific [14:15:18] there's no need for a system-wide agreement to make that work [14:15:21] an intermediary?? You're "PUT"ing THROUGH something? [14:15:24] it makes 0 differnece. [14:15:34] whartung: a proxy [14:15:41] load balancer [14:15:41] whatever [14:15:52] Wombert: what standard/generic proxies exist that rely on fullness of PUT ? [14:15:53] PUTs punch trhough proxies as I understand it, and invalidate as they go [14:15:53] name 1 [14:16:13] I could be wrong of course. [14:16:30] there's NO web infrastructure that relies on fullness of PUT [14:16:54] that's up to the proxy [14:16:56] there's nothing that suggest that a proxy can cache the resource being PUT as if it's the actual resource is there? [14:17:05] it's a layered system, there can be any intermediary [14:17:14] ok so name one [14:17:21] :| [14:17:28] if it's a PUT, it must be able to rely on the idempotent nature of the message [14:17:31] it's been 12 years.. [14:17:36] who cares? I can just write one [14:17:50] I bet people wrote some, for whatever stuff they're doing [14:17:56] well it matters because the whole point of constraint is that it actually has a purpose [14:18:01] rather than just existing for the sake of itself [14:18:19] if there's no implementation relying on the constraint after 12 YEARS [14:18:30] I think it's safe to say that constraint is utterly pointless [14:18:44] particularly when people are violating it to good effect. [14:18:47] fine, here is one [14:18:53] I have an http client lib [14:18:53] Yea, here we got. 9.6 PUT 2616 -- "If the request passes through a cache and the Request-URI identifies one or more currently cached entities, those entries SHOULD be treated as stale. Responses to this method are not cacheable." [14:19:04] when it gets an error, and the request was a PUT or GET or DELETE [14:19:15] it will automatically re-try the request once [14:19:17] or twice [14:19:21] or whatever you configured [14:19:23] and now? [14:19:29] why would that not apply for partial PUT ? [14:19:29] who says that a partial update can't be reapplied? [14:19:39] it's not idempotent if it can't be retried [14:19:39] If I set the first name of a user to BOB 3 times, I still get BOB [14:19:42] I send a , does that append the name? [14:19:46] or replace it? [14:19:50] it sets the name.. [14:19:53] idempotently.. [14:19:56] and how do I append a name then? [14:19:58] appending a name wouldn't be idempotent [14:19:59] Senator Bob Bob Bob Bob Richards... OOPS! [14:20:03] send all existing names? [14:20:12] append isnt' an idempotent action it has nohtnig to do with PUT [14:20:19] what? [14:21:02] pushing onto a stack is not idempotent [14:21:25] setting the attribute of a resource to some value [14:21:27] is idempotent [14:21:45] don't do non-idempotent things using PUT, that doesn't mean that PUT has to be the entire resource [14:21:45] uhm [14:21:45] no [14:21:52] you're absolutely wrong, mikekkkk [14:21:59] ok well that's how rails works [14:22:01] I GET /people/dzuelke, okay? [14:22:05] rails is fucking wrong [14:22:07] it always has been [14:22:08] lol [14:22:09] about many many things [14:22:12] and I'm serious [14:22:16] Pure Wrong mikekkkk :) [14:22:17] like swapping PUT and POST [14:22:20] how much do you actualy know about rails ? [14:22:22] anyway, back to my example [14:22:29] GET /people/dzuelke [14:22:48] contains davidzuelke [14:22:53] now you want to add another part [14:22:55] how? [14:23:04] and how can you be sure someone else didn't do the same thing in the meantime? [14:23:04] that's up to the application [14:23:04] most of the wrongness about rails is software arch/ruby practice stuff - not HTTP :| [14:23:18] check the Etag or If Modified headers [14:23:23] if it's not idempotent, then you can't do conditional requests [14:23:37] sorry what ? [14:24:05] so don't do non-idempotent stuff with PUT. That doesn't mean you can't do partial updates. [14:24:21] ok so you have an xml structure that makes it mipossible to idempotently update it [14:24:29] partially [14:24:36] and that is why, in general, PUT cannot be partial [14:24:42] because of one contrived example [14:24:44] ? [14:24:54] that is /your/ application [14:25:16] I'm not saying full PUTs are bad full stop [14:25:25] all I am saying is that partial PUTs are useful [14:25:40] but not all partial PUTs are necessarily bad either [14:25:47] then make parts of your resource addressable separately and you get the same thing [14:25:48] or good [14:25:55] EXACTLY [14:26:00] PUT /people/dzuelke/address [14:26:01] done [14:26:06] terrific [14:26:11] cache invalidation [14:26:22] great, what happened to the /people/dzuelke resource in the cache? [14:26:24] there's tonnes of reasons doing that is not free [14:26:30] more to the point [14:26:49] and if you have to update the ENTIRE
tag, them so be it -- big deal. [14:27:03] and what if you don't control the cache, whartung? [14:27:07] then it's the same problem either way [14:27:10] that still doesn't actually explain what the problem with partial PUT is... [14:27:12] layered system, remember? [14:27:30] right but that ignores gateway caches, etc which you do control [14:27:49] if I have /people/dzeulke, and I do a partial PUT to it, the cache SHOULD(tm) make the URL stale so that it will fetch the new version on next request. [14:28:05] this is all irrelevant unless we actually figure out why it is that idempotent partial updates are *apparently* impossible [14:28:13] kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) left irc: Quit: Computer has gone to sleep. [14:28:25] because they aren't [14:28:28] clearly they are not impossible [14:28:31] uh oh, we're boring the computers now -- how sad is that [14:29:51] There are far to many examples where a partial update can be idempotent to handwave partial PUT away because of that [14:31:27] ahh man, I can't believe this got dragged up again [14:31:38] sorry, it was stuck to my shoe -- my bad [14:31:44] :) [15:02:09] Action: mamund has enjoyed the rants, toodles [15:09:06] saml (~sam@adfb12c6.cst.lightpath.net) left irc: Quit: Leaving [15:52:44] Action: KevBurnsJr does the 418 [16:05:03] Wombert (~Wombert@dslb-092-074-120-056.pools.arcor-ip.net) left irc: Quit: Wombert [16:21:52] gchristensen (~gchristen@unaffiliated/grahamc) left irc: Quit: Leaving... [16:38:27] gchristensen (~gchristen@unaffiliated/grahamc) joined #rest. [18:30:13] quest88 (~quest88@c-98-207-205-137.hsd1.ca.comcast.net) joined #rest. [18:35:25] nuclearsandwich (~nuclearsa@173.247.193.198) left irc: Remote host closed the connection [19:17:02] kennethreitz (~kennethre@c-24-127-96-129.hsd1.va.comcast.net) joined #rest. [19:59:55] KevBurnsJr (~KevBurnsJ@50.0.103.39) left irc: [20:03:34] nuclearsandwich (~nuclearsa@74.sub-166-250-32.myvzw.com) joined #rest. [20:13:48] nuclearsandwich (~nuclearsa@74.sub-166-250-32.myvzw.com) left irc: Ping timeout: 245 seconds [20:19:23] nuclearsandwich (~nuclearsa@77.sub-166-250-38.myvzw.com) joined #rest. [20:19:41] nuclearsandwich (~nuclearsa@77.sub-166-250-38.myvzw.com) left irc: Remote host closed the connection [20:28:09] Wombert (~Wombert@dslb-092-074-120-056.pools.arcor-ip.net) joined #rest. [21:03:56] Wombert (~Wombert@dslb-092-074-120-056.pools.arcor-ip.net) left irc: Quit: Wombert [21:34:47] pc1oad1etter (~pc1oad1et@cpe-71-72-121-157.insight.res.rr.com) left irc: Quit: ~ Trillian Astra - www.trillian.im ~ [21:35:03] pc1oad1etter (~pc1oad1et@cpe-71-72-121-157.insight.res.rr.com) joined #rest. [21:36:32] pc1oad1e1ter (~ubuntu@ec2-107-20-40-98.compute-1.amazonaws.com) joined #rest. [21:38:36] pc1oad1e1ter (~ubuntu@ec2-107-20-40-98.compute-1.amazonaws.com) left irc: Client Quit [21:39:30] pc1oad1e1ter (~ubuntu@ec2-107-20-40-98.compute-1.amazonaws.com) joined #rest. [21:39:49] pc1oad1e1ter (~ubuntu@ec2-107-20-40-98.compute-1.amazonaws.com) left irc: Client Quit [21:42:05] nickp_ (~nickp@cpe-71-72-121-157.insight.res.rr.com) left irc: Read error: Connection reset by peer [21:43:09] Nick change: pc1oad1etter -> pc1oad1etter2 [21:43:09] pc1oad1etter2 (~pc1oad1et@cpe-71-72-121-157.insight.res.rr.com) left irc: Quit: ~ Trillian Astra - www.trillian.im ~ [22:12:26] grove (~grove@aggw006.cappelendamm.no) joined #rest. [22:55:19] gchristensen (~gchristen@unaffiliated/grahamc) left irc: Quit: Leaving... [23:06:09] quest88 (~quest88@c-98-207-205-137.hsd1.ca.comcast.net) left irc: Quit: quest88 [23:44:51] nuclearsandwich (~nuclearsa@74-93-3-241-SFBA.hfc.comcastbusiness.net) joined #rest. [00:00:00] --- Fri Dec 16 2011