[00:03:13] DracoBlue (~Adium@ip-vlan-obckunde-02-217-66-60-14.pixelpark.net) joined #rest. [00:03:25] DracoBlue (~Adium@ip-vlan-obckunde-02-217-66-60-14.pixelpark.net) left #rest. [00:48:56] nuclearsandwich (~nuclearsa@74-93-3-241-SFBA.hfc.comcastbusiness.net) left irc: Remote host closed the connection [00:56:12] boru (~conor@92.251.255.6.threembb.ie) joined #rest. [00:59:05] Hey guys, I'm not sure if this is the correct channel to ask this but I haven't had much luck googling or in ##aws. I'm prototyping some rest queries in bash and sending them to EC2 but I'm running into a problem. The basic signed queries themselves work fine but if I add extra parameters to them, my sigs and the server's don't match. Is this sort of thing covered by any REST docs? [01:38:10] this isn't the channel you're looking for, unless someone happen to do S3/EC2 stuff in addition to REST [02:12:23] Ah, ok. Thanks anyway. [02:12:57] ##aws has been hit and miss as have the aws dev forums. I thought the topic of signing the calls might be covered here. [02:14:03] Someone in ##aws suggested I ask here, funnily enough. [02:19:21] you can always hang around, someone might know the answer [02:23:11] Yeah, I'll do that. It's driving me kind of crazy... [04:04:24] anyone here know much about OpenRasta ? [04:06:28] mikekkkk: darrelmiller most likely [04:06:38] at least he is the one who pointed out the existance to me [04:06:44] (I haven't had time to test it) [04:07:14] nice one ta [04:10:31] why do I get the impression 99% of non-ruby people who gripe about rails have no clue about it at all ? :) [04:31:21] I have never used rails [04:31:40] I just remember their stupid decision like "if you want json, you have to end your route with .json" [04:31:46] but it might be like 100 years ago [04:51:02] you don't have to do that, you can use conneg if you want [04:55:31] mikekkkk: I know [04:55:54] and I have played around with cucumber lately and starting to fell in love with ruby [04:56:05] so rails might be the next logical step for me [05:08:42] yeah ruby is pretty nice, if you like solving problems with metaprogramming it's good too [06:06:49] grove (~grove@aggw006.cappelendamm.no) left irc: Quit: grove [06:20:40] gchristensen (~gchristen@unaffiliated/grahamc) joined #rest. [06:24:48] Action: mamund is here [06:46:51] grove (~grove@193.201.9.46.customer.cdi.no) joined #rest. [06:54:05] I'm legally bound to hate rails since I develop a competitor [06:58:14] bigbluehat (~bigblueha@nmd.sbx08595.greensc.wayport.net) joined #rest. [06:58:29] ivanfi (~ivanfi@62.159.77.164) joined #rest. [06:58:40] ivanfi (~ivanfi@62.159.77.164) left #rest. [06:58:58] I hate rails just to balance out the world a little. [07:20:08] Just to follow up on my problem from earlier, in case anyone else runs into it: AWS requires that request parameters are ordered alphabetically in the signing string. Thanks anyway, trygvis. [07:20:17] boru (~conor@92.251.255.6.threembb.ie) left #rest ("Leaving"). [07:20:29] nuclearsandwich (~nuclearsa@74-93-3-241-SFBA.hfc.comcastbusiness.net) joined #rest. [07:22:50] boru: pretty sure MSFT's OData header signing requires alpha ordering in the hash, too. [07:23:30] he's gone! [07:23:57] :( [07:25:21] mephju (~mephju@dslb-188-102-096-123.pools.arcor-ip.net) joined #rest. [07:29:07] Hakon|mbp (~hakon1@130.82-134-26.bkkb.no) joined #rest. [07:35:54] don't worry, it's soon beer o'clock [07:36:32] LOL [07:39:59] nuclearsandwich (~nuclearsa@74-93-3-241-SFBA.hfc.comcastbusiness.net) left irc: Remote host closed the connection [07:41:04] DracoBlue (~Adium@dslb-088-075-066-254.pools.arcor-ip.net) joined #rest. [07:41:09] DracoBlue (~Adium@dslb-088-075-066-254.pools.arcor-ip.net) left #rest. [07:53:15] :| [07:53:32] thank you John Moore [07:53:48] ... [07:53:56] actually it's Jon Moore [07:54:05] well finally someone making sense [07:54:23] bigbluehat (~bigblueha@nmd.sbx08595.greensc.wayport.net) left irc: Quit: Leaving. [07:55:14] and asking about this apparently impossible idempotent partial update thing [07:55:18] you mean the idempotent thing? [07:55:23] yeah [07:55:43] if someone comments about a comment on the web without a link, did it really happen? [07:55:44] 1) i use a patch XML format that *is* *not* idempotent [07:55:46] it's weird he says he thinks he agrees but can't come up with an example himself :P [07:56:18] i think i once used a *diff* format for PATCH that _was_ idempotent [07:56:38] PAT [07:56:39] but the request itself is not idempotent right [07:56:58] PATCH is def'd as non-idempotent [07:57:02] i.e. it's PATCH so it's not [07:57:06] right [07:57:15] people keep waving that away like it doesn't matter [07:57:18] I think it does [07:57:22] sure it does [07:57:25] we have mobile clients on shitty networks that fail all the time [07:57:29] they want to make: [07:57:34] 1. tiny requests [07:57:52] 2. have them idempotent so they can keep retrying without worrying about consequences [07:58:04] PATCH doesn't offer that [07:58:11] correct [07:58:16] so I'm confused why people keep telling me that's a solution [07:58:19] 3. not have the cache for the tiny bits get out of sync with the overview [07:58:19] because claerly it's not [07:58:43] well, all too vague for me to care at this point. [07:58:50] :| [07:59:13] i've seen the thread verr through partial update issues, comparing http methods, .... [07:59:13] well Seb won't talk to me [07:59:18] but apparently I'm wrong and rails is shit [07:59:23] mixing the two issues, ... [07:59:37] now yhou tell me about tiny updtes that are repeatable for mobile... [07:59:42] and Jan seems convinced that partial idempotent updates are impossible [07:59:44] blehhh./ [08:00:07] despite the subject matter being a clear implementation of that [08:00:14] go figure. [08:00:20] "impossible" is too vague here. [08:00:29] Action: mikekkkk shrug [08:00:43] i.e. is "not allowed" [08:00:56] no I'm pretty sure Jan believes it is not possible [08:00:59] is not actually physically do-able under any cirsumtance [08:01:10] is not logially sounds, etc. [08:01:30] it's certainly possible, done quite often [08:01:38] " [08:01:39] git does it every day [08:01:40] And just to repeat: Idempotent partial updates are impossible semantics for HTTP methods because the idempotency of partial updates depends on the media type used." [08:01:52] LOL [08:01:59] that's just what i said a few lines up! [08:02:14] the def'd XML PATH media type is non-idempotent [08:02:30] using any file diff as amedia type is idempotent [08:02:57] XML PATCH media type, btw [08:02:59] wait wait [08:03:02] wait wait wait [08:03:04] oik [08:03:07] waiting [08:03:09] I thinkI just realised what he said [08:03:12] that's Jan quote btw [08:03:15] yep [08:03:37] he's saying that HTTP methods cannot specify partial'ness [08:04:00] that logic is crazy if that is what he is saying [08:04:15] well, not sure he's saying (or meaning) that. [08:04:29] I literally have no idea what his argument is [08:04:37] proly correct [08:05:01] i sure don't [08:05:05] so.. HTTP method can't specify partial semantics [08:05:10] that one quote you posted is all over the map, IMO [08:05:15] but it *CAN* specify non-partialness [08:05:23] epic logic. [08:05:35] how's about.. it doesn't do either. [08:05:39] because it.... [08:05:44] *is about the media type* [08:05:55] first, i don't buy this forced link between media type semantics and protocol methods. [08:06:26] POST is NI, PUT is I, regardless of media type [08:06:43] right [08:07:03] second, IMO, "partial" is in the eye of the beholder [08:08:01] "replace" is just as vague [08:08:38] PATCH skims along the edges of all this stuff [08:09:43] there is nothing i can do (at the protocol level) w/ PATCH that i cannot do w/ PUT. [08:10:01] there is nothing i can do (at the protocol level) w/ PATCH that i cannot do w/ POST [08:10:25] an PATCH and POST have the same protocol-level assurances (NI) [08:11:50] right [08:12:04] I think for me this comes down to self-descriptiveness [08:12:26] I only really see any value in specifying these sorts of protocol semantics if they enhance self-descriptiveness [08:12:31] otherwise it's basically bloat [08:14:39] i.e. if it doesn't have value across the web self-descriptively (i.e. enable some intermediary mechanisms) then I don't see the point in it [08:14:48] you know, i've been contemplating "self-desc" lately. [08:14:58] starting to develop a new view on thiat [08:15:30] I don't think mine's very authodox [08:15:43] is that how you spell that? :| [08:16:44] pc1oad1etter (~ubuntu@ec2-174-129-99-58.compute-1.amazonaws.com) joined #rest. [08:16:45] LOL [08:17:00] there's definitely differnet levels (breadths) of self-descriptiveness [08:17:16] i.e. you can have things which are self-descriptive within your organisation but not necessarily on the web [08:17:48] my view on this SD is atually colored by my attempt to sort out H2m vs. M2m [08:18:26] but that quote form the dissertation is pretty much where I come from when I think about SD [08:18:33] i.e. it's about intermediary processing [08:18:52] DOM rendering is intermediary processing [08:18:58] "knowledge in the head" vs "knowledge in the world" [08:21:21] pc1oad1etter (~ubuntu@ec2-174-129-99-58.compute-1.amazonaws.com) left irc: Quit: leaving [08:21:59] pc1oad1etter (~ubuntu@ec2-174-129-99-58.compute-1.amazonaws.com) joined #rest. [08:22:09] seld-descriptive means (in my head, today) all the knowledge is in the 'world' - the thing. [08:22:32] there is a minimum of "knowledge in the head" needed in order to "understand" the self-descriptive thing [08:22:46] session state is "knowledge in the head" [08:22:57] hm [08:23:16] Wombert (~Wombert@dslb-092-074-120-056.pools.arcor-ip.net) joined #rest. [08:23:19] I look at it from a mechanical pov [08:23:28] ok [08:23:57] i.e. it's the agreed properties something has which allows interemdiaries to make assumptions about it [08:24:40] i.e. DOM renderers fetching embedded images, scripts, etc. [08:24:59] or cache-control in http [08:25:14] or rel="inv" (from link cache invalidation) [08:26:02] interesting that rel="inv" is 'compoound self-descriptivenes' that depends on Link headers for it's mechanism [08:29:03] Hakon|mbp (~hakon1@130.82-134-26.bkkb.no) left irc: Quit: Leaving... [08:29:07] so if your browser has some mechanism in it which catches PUT requests that don't make it and re-issues them automatically [08:29:35] that's an intermediary mecahnism that leverages the self-descriptive property of PUT requests that tells it it is idempotent [08:30:31] going full circle I can't figure out what intermediary mecahnisms can leverage the fact that PUT requests are apparently full representations (and are definitely not partial_ [08:30:41] quest88 (~quest88@c-98-207-205-137.hsd1.ca.comcast.net) joined #rest. [08:30:50] quest88 (~quest88@c-98-207-205-137.hsd1.ca.comcast.net) left irc: Client Quit [08:31:02] the only example I can think of is a cache which primes itself with the content of a PUT request [08:31:20] i'm pretty sure those don't exist, though. [08:32:02] you'd think in 12 years someone would've done something with it if it was worth it :) [08:32:16] Action: mamund was away [08:34:01] mikekkkk: this thing about "head" and "world" is something i'm noodling on this year [08:34:15] it comes from Norman's usability stuff [08:34:22] oh right [08:34:36] it's affecting how i design media types. [08:34:49] it's been affecting the way UI/UX has been done for about a decade or so [08:35:04] as little constraint as necessary [08:35:15] that's pretty much my design philosophy [08:35:32] notice I used necessary not possible -_- [08:35:49] LOL [08:37:26] right [08:37:35] Dave: [08:37:35] so knowledge in the head is basically another way of saying context ? [08:37:39] :) [08:37:44] yes [08:37:51] what you carry around w/ you [08:37:57] what you "apply" to the world [08:38:03] and in REST the oracles of this are entry points.. [08:38:44] i.e. your entry point should be where you present your documentation and the entry to the application [08:38:46] http://server.com/folder/documents?search=unrestful [08:39:05] ? [08:39:05] any "meaning" you find in that string is knowledge in the head, not the world [08:39:30] indeed, we (people) have a tonne of experience in symbolism [08:39:38] natural language, imagery, etc. [08:39:42] so we can 'boot' context [08:39:47] zackly [08:39:55] machines do not do that. [08:40:01] so, i've been fiddling with finding examples, boundaries, ec. [08:40:13] which is where the mapping from HTML happy lala land fail to translate into m2m [08:40:19] *cough* forms *cough* [08:40:28] ... [08:40:38] now some knodwlege is added to the world here [08:40:51] we still need lots in our head, of course [08:41:22] the second example is "more self-descriptive" than the first [08:41:23] well that is added to the DOM renderer's head [08:41:26] not your head [08:41:33] yes, some "head" [08:41:40] the bit going into your head is the bit in between the [08:41:44] many, actually [08:41:58] yes [08:42:09] as a user you do't care whether or not it was an empty html doc that was generated with javascript [08:42:12] adding a rel="..." adds more to the world [08:42:24] yes [08:42:28] rel is the machine equivalent of what is between [08:42:39] it can be, yes [08:42:47] no, it is! [08:42:48] :P [08:43:18] that's how people understand the interface presents them [08:43:29] at one level, yes [08:43:43] the itself also adds udnerstanding [08:43:53] for people ? [08:43:57] yes [08:44:05] nah I don't think so [08:44:08] LOL [08:44:13] why would you say that [08:44:14] ? [08:44:18] they don't interface with that, [08:44:23] you think is meaningless right now to you and me? [08:44:29] well [08:44:30] we're dorks [08:44:33] to normal peopl eyes [08:44:34] ha! [08:44:44] normal people don't have a clue what that means [08:45:09] but they know exactly what a blue-underlined text taht shoes a pointy finger when they roll over it means [08:45:10] they have other cluse [08:45:15] yes, yes [08:45:35] (geek) === blue-underline(real-person) [08:45:39] but the self-descriptiveness is aimed at the DOM renderer [08:45:41] :) [08:45:56] the conventions of HTML are designed so that there's a standard way of presenting that interface [08:45:57] SD is used by all [08:46:16] .. (to the DOM renderer) [08:46:40] people don't interface with html, they interface with rendered pages [08:46:55] NORMAL PEOPLLE [08:46:59] NOT YOU [08:47:05] :) [08:47:13] LOL [08:47:34] e.g. green next buttons with arrows on them [08:47:37] i interface w/ blue-underline [08:47:42] yes, yes [08:47:52] User-agent [08:48:54] bt I think what i'm saying is that SD is a means to the ends of expressing an application [08:49:09] and actors interface with the application [08:49:16] they don't interface with the SD components [08:50:02] SD for you (geek) is not the same as SD for normal ppl. [08:50:12] SD for humans is not the same as SD for machines [08:50:18] well, I'm definitely more concious of what's going on [08:50:19] for networks, etc. [08:50:21] yes [08:50:31] but in practical terms I'm the same as everyone else [08:50:38] apart from sometimes looking under the hood if I'm nosey [08:50:49] so, i am operating on the idea that i need to come up w/ the "right" SD for the target "user/agent" [08:50:54] I still use google and gmail the same as everyone else [08:50:58] :) [08:51:21] mamund: that should be the primary goal of a media type [08:51:33] that and ubiquity [08:51:43] ubiquity feeds SDness [08:52:35] yes, that's right [08:52:53] the MT should be "tuned" to the user/agent [08:52:59] but that is basically the reason I think there shoul dbe separation between the app and the media type [08:53:01] that's why HAL is "different" right? [08:53:14] right [08:53:14] You guys are on a roll. Almost an hour, non-stop. [08:53:19] LOL [08:53:22] sorry [08:53:24] :D [08:53:27] what for? [08:53:28] hogging the channel [08:53:55] Oh right, there's just a line-up of people wanting to use this place. [08:54:01] haha [08:54:04] not on my watch. [08:54:12] My number is 273...what number are we on? [08:54:13] (stfu everyone, thanks) [08:54:20] heeeee [08:54:40] yeah the MT should be tuned to the agent type [08:54:52] Action: darrelmiller is enjoying his roll today in the peanut gallery. [08:54:52] there are two primary agent types [08:55:01] people + machines [08:55:10] hmmm. s/roll/role [08:55:21] and possibly a third [08:55:28] Canadians. [08:55:35] !~ [08:56:14] Action: darrelmiller mutters something about there are no machines, only humans. [08:56:15] mikekkkk: was it you who told me that there is always a "human" involved, even if "at some distance" (i.e. bots)? [08:56:37] I've said that, darrelmiller said it too [08:56:55] ..incessantly. :-) [08:57:06] wow -- out of my wide scale culling, I've only had 2 people question why I detag Q's in SO. [08:57:09] I think in practice there is a distinction though right.. [08:58:09] whartung: heh,heh. [08:58:12] Humans are machines. [08:58:20] oh no [08:58:22] don't. [08:58:24] just don't. [08:58:32] Ray Kurzweil is a robot. [08:58:40] he also happens to be a fucking weirdo. [08:59:12] (who wants to bring his dad back from the dead using computer simulations) [08:59:39] mikekkkk: If I record a macro in excel and replay it, is there a difference between that and a human entering it manually. [08:59:49] no [08:59:52] in theory [09:00:18] in practice there is a distinction in terms of "APIs" that are consumed at runtime primarily by automated machines [09:00:25] that interface should be optimised for that case [09:00:29] not for humans [09:00:32] So, no. I don't see a distinction other than how the human communicates their choices to the user agent. [09:02:49] whartung: are you removing the #rest tag from all those questions about how to use WCF and Spring and Jersey? <:) [09:02:59] In the link Make Win The human reads the text between the angle brackets and chooses to click the link and the human writes code to look for rel="makewin" and then follow the link. [09:03:21] fu-manchu: Yeah, we can leave the cherry-py related ones for small fee ;-) [09:03:33] haha [09:04:31] anway, i need to get back to acting like' im working.... [09:04:41] whartung: You may have just invented a new career, "knowledge farming". [09:05:09] yea, I remove them from all of those stupid q's. "Can't POST my form using WCF" [rest][restful][restystuff][restish-thing][wcf] [09:05:22] the interesting part of this discussion for me is the idea of "in the head" and "in the world" and how that affects what we (as devs/archs/designers) do when it comes to creating stuff for WWW [09:08:40] does a machine have a 'head' ? [09:09:04] source code [09:09:22] it's tightly coupled then. [09:09:25] for browsers the "head" is the executable code _and_ the downloadable code [09:09:45] and my head as the user right ? [09:09:45] coupling is a function of the code itself. [09:09:56] right [09:10:04] an important fact, none the less. [09:10:11] and typically done at night, in cars... [09:10:19] could be coupled to the protocol (as in http browser) [09:10:19] lol. [09:10:31] could be cpouled to the problem domain (as in downloadable code usually is) [09:11:01] Action: mamund tried to ignore low humor [09:11:05] :) [09:12:02] direct human interaction reduces the requirements for "putting" more knowledge into the machine [09:17:16] the more "self-desriptive" the _message_, the less "knowledge in the head" is needed (code). [09:32:32] KevBurnsJr (~KevBurnsJ@50.0.103.39) joined #rest. [09:36:02] bradley-holt (~bradley-h@65-183-135-35-dhcp.burlingtontelecom.net) joined #rest. [09:41:59] KevBurnsJr: you in town over New Years? [09:42:15] KevBurnsJr: I'm flying in late on the 28th and leaving on the 3rd in the morning [09:53:27] pc1oad1etter (~ubuntu@ec2-174-129-99-58.compute-1.amazonaws.com) left irc: Quit: leaving [09:57:19] pc1oad1etter (~ubuntu@ec2-174-129-99-58.compute-1.amazonaws.com) joined #rest. [10:07:38] pc1oad1e1ter (~pc1oad1et@ec2-174-129-99-58.compute-1.amazonaws.com) joined #rest. [10:09:06] pc1oad1e1ter (~pc1oad1et@ec2-174-129-99-58.compute-1.amazonaws.com) left irc: Client Quit [10:16:12] gchristensen (~gchristen@unaffiliated/grahamc) left #rest ("Linkinus - http://linkinus.com"). [10:46:19] My work now includes a server that keeps a session state, and web pages that generate the UI in JS without using meaningful HTML tags. Feeling restless. [10:49:08] pc1oad1etter: We can commiserate together. I'm working on a project that remotes objects over http using a single URI and application/x-gzip as the media type. [10:53:13] I've had a fight over hashbang URLs yesterday [10:53:17] open source stuff [10:53:20] offered to fix it [10:53:22] but no [10:53:32] not gonna happen, the project lead says [10:53:38] who needs to curl a web page, he says [10:53:39] ... [10:55:08] nuclearsandwich (~nuclearsa@173.247.193.198) joined #rest. [11:01:44] I think I don't have the experience or expertise to maek a good enough case to make it all different. :D I've been assured that it's more secure and that it will still scale well though, if we need it to. [11:05:09] here is a decent question on SO for a change. http://stackoverflow.com/questions/8538752/rest-what-is-a-good-hypermedia-and-resource-caching-strategy/8538912#8538912 I'm curious as to other peoples answers. [11:09:28] yeah, that question's too generic [11:10:16] "one resource links to another. should I use dates or Etags?" -- needs more information [11:20:20] Wombert: I'm being evil. I'm rendering only client-side (but our app is an app, not google indexable etc..) [11:21:32] using pushState to offer linkable "state" [11:21:37] but no curl support [11:40:37] DracoBlue (~Adium@dslb-088-075-066-254.pools.arcor-ip.net) joined #rest. [11:40:51] DracoBlue (~Adium@dslb-088-075-066-254.pools.arcor-ip.net) left #rest. [11:46:11] darrelmiller: [11:50:15] That's my name. [11:50:26] :) [11:50:38] Action: mamund was distracted [11:50:42] heh [11:50:44] http://tech.groups.yahoo.com/group/rest-discuss/message/17432 [11:50:55] your answer on SO is pretty close to what i usually say. [11:50:58] I really wish he'd responded to that [11:51:27] 1) for asserts that *could* be delivered stale w/o breaking things, use cache-control. [11:51:46] 2) for assets that *can* *not* be delivered stale, use ETag. [11:52:13] hmm [11:52:17] or both ? [11:52:21] start with just a few minutes of cache-control (you get big bnenfits, esp. for large requests pools) [11:52:28] push the cahce-control out and experiement over time [11:52:37] in my experience it's hardly ever a binary descision [11:52:41] both is definitely an option [11:52:44] yes [11:52:49] Jarda: for apps it's totally fine [11:52:53] but that is how i start folks working on it [11:52:54] but that was for travis-ci.org [11:53:41] other angle i present is bandwidth vs traffic [11:55:10] hey this partial PUT [11:55:13] mamund: but you agree that it is decision that the people paying the bills have to make. There is no technical right or wrong. [11:55:30] I have done it like "if key is not present, the current saved value is not modified" [11:56:11] darrelmiller: there are correct ways to setup/maintain caching. [11:56:31] there are no "rules" about which is the "right" resource to cache, etc. [11:56:48] jarda: What about embedded child resources? If the child resource is missing does that mean it didn't change or was deleted? [11:56:49] like if I have {name:"David",description:"Hashbang hater"} in /people/dzuelke and I PUT to /people/dzuelke {name:"David Zuelke"} the description isn't touched [11:56:56] what i *do* find is that, once folks start to think about what they want to cache and _why_... [11:57:22] they my realize that the way the servers are delivering content (i.e. the URIs used, session state, etc.)... [11:57:37] darrelmiller: yeah, that is problematic [11:57:40] is actually _hurting_ their cacheabiltiy and, therefor, lowering their percieved performance [11:58:19] darrelmiller: you mean like /invoices/123 {sum:123.12,rows:[{...},{...}]} [11:58:25] what to do with rows in PUT? [11:58:34] jarda: yes. [11:59:06] well I've done it so, that I POST to /invoices/123 if I just want to add rows [11:59:14] In XML I used to resort to deleted=true attributes. But it becomes a big mess eventually. [11:59:29] but for PUT I have just assumed the rows come untouched [11:59:54] but that's true [12:00:13] I have in some places DELETE /invoices/123/rows/4 [12:00:22] jarda: The problem comes when you want a UI that allows editing those invoice rows and there is a save cancel button pair on the invoice screen. [12:00:25] but I hve actually no idea how it affects caching of /invoices/123 [12:00:43] So, editing the entire invoice and its items is a single unit of work. [12:01:20] well HTTP actually is hard :) [12:01:29] and the more "right" you do it, the harder it gets, IMO :) [12:02:11] lol [12:02:47] Jarda: to me, it's all about mapping problem domain to a transfer protocol [12:02:57] darrelmiller: on my resources there is "edit, save and cancel" buttons in the UI [12:03:08] yes, it's tough, but it's like translating between any langs. [12:03:12] unless pressed "save", nothing is persisted [12:03:31] but do you save an invoice item independently? [12:03:33] so if you remove 5 invoice rows and push cancel, you get the rows back [12:03:42] darrelmiller: rows are inlined [12:03:46] I find it so confusing that nobody in here sees the can of worms [12:03:58] and just decides to screw it and use POST or address parts of the resource separately :( [12:04:05] :( [12:04:06] Jarda: So how can you use 01DELETE /invoices/123/rows/401 [12:04:32] Wombert: I use POST. [12:04:34] Wombert: i've a vegetarian, no worms for me, please [12:04:49] mamund: can of Sauerkraut then? [12:04:49] :) [12:05:00] possibly. [12:05:09] Wombert: I don't use PUT due to this whole fiasco. [12:05:17] darrelmiller: it's actually kinda confusing as I allow dropping key-value -pairs but not array items :) [12:05:29] darrelmiller: if "rows" is completely missing, I don't process it [12:05:33] Ahh. gotcha. [12:05:45] but if I get empty "rows" then I remove all the rows [12:05:59] I don't find this at at all confusing [12:06:06] if I need to make something deletable it's a resource [12:06:16] deleting is much less common in my world than updating [12:06:26] and updating individual properties (partials) is important [12:06:48] so I have partial updates.. if something needs to be made deletable it's turned into a resource [12:07:09] For me "weak entities" like invoice items, order items, etc are never resources. I only expose "aggregate roots" as resources. [12:07:44] btw I might only expose the resource for DELETE [12:07:50] sometimes I dont even implement GET [12:07:58] (on purpose) [12:08:51] mikekkkk: You're quite the rebel. [12:09:00] the logic beign that it's hard to pre-optimise for udpates as different clients may need different granularities and combinations that make up the partial [12:09:10] but deletes are largely a 'resource modelling' server side thing [12:09:54] so I just don't run into that problem [12:11:36] mikekkkk: i work in some systems where the "Delete" is actually exewcuted against a 'proxy' resource.... [12:12:12] it's a URI, but behind that a _bunch_ of things might be removed, renamed, archived, etc. and this could affect a wide range of resources (many of which are cached). [12:13:05] many "updates" work that way, too - many items affected by a single PUT/POST. [12:13:53] yeah I'm not saying my way is The Way - just that it is completely possible to deal with removal if you allow partial PUT [12:14:45] errrr [12:15:00] someone please explain this to me [12:15:01] http://tech.dir.groups.yahoo.com/group/rest-discuss/message/18049 [12:16:24] what am I reversing? [12:19:13] mephju (~mephju@dslb-188-102-096-123.pools.arcor-ip.net) left irc: Read error: Connection reset by peer [12:19:58] mikekkkk: LOL!, you're on you own for this one. [12:25:47] what the hell?! [12:25:51] he's now accusing me of RPC [12:25:59] what the fuck am I supposed to say to this bullshit?! [12:26:38] I'm stumped for what to say just because his thought process is so completely random :| [12:27:50] it's not random, it's just from a different point of view. calm down and try to understand it before you reply again and escalate [12:28:23] and @jreschke tries for a kill shot [12:28:34] well I know what out of band means [12:28:45] and it's not at all relevant to this discussion [12:29:06] if I mint a partial media type for PUTs [12:29:13] then it is all back in band again [12:29:15] so actually [12:29:20] it is completely random [12:30:06] talking about 'out of band' is just one of these generic REST 'put downs' that people pull out when they want to make you sound wrong [12:31:19] never ascribe to malice what can be adequately explained by stupidity. and never ascribe to stupidity what can be adequately explained by a different set of presuppositions, terminology, and experiences [12:33:12] fu-manchu: +1 [12:40:48] very zen [13:04:03] fu-manchu (~fumanchu@99.30.180.185) left irc: Ping timeout: 252 seconds [13:05:10] *sigh* [13:05:40] This is the right thing to do because HTTPbis says so [13:05:44] is not a logical argument. [13:05:53] eh wut? [13:06:08] I've tried logic before -- it doesn't seem to work well [13:15:12] bradley-holt (~bradley-h@65-183-135-35-dhcp.burlingtontelecom.net) left irc: Quit: bradley-holt [13:27:08] bigbluehat (~bigblueha@adsl-98-71-133-72.gsp.bellsouth.net) joined #rest. [13:58:20] bigbluehat (~bigblueha@adsl-98-71-133-72.gsp.bellsouth.net) left irc: Quit: Leaving. [14:09:10] Action: mamund is done, laters [14:09:16] beer o'clock! [15:45:22] KevBurnsJr (~KevBurnsJ@50.0.103.39) left irc: [15:46:07] grove (~grove@193.201.9.46.customer.cdi.no) left irc: Quit: grove [16:06:00] fu-manchu (~fumanchu@adsl-99-30-180-185.dsl.sfldmi.sbcglobal.net) joined #rest. [17:57:15] fu-manchu (~fumanchu@adsl-99-30-180-185.dsl.sfldmi.sbcglobal.net) left irc: Ping timeout: 252 seconds [18:04:11] fu-manchu (~fumanchu@75-57-4-116.lightspeed.sndgca.sbcglobal.net) joined #rest. [18:36:39] quest88 (~quest88@c-98-207-205-137.hsd1.ca.comcast.net) joined #rest. [18:49:22] nuclearsandwich (~nuclearsa@173.247.193.198) left irc: Remote host closed the connection [19:26:18] pc1oad1etter (~ubuntu@ec2-174-129-99-58.compute-1.amazonaws.com) left irc: Quit: leaving [19:27:33] pc1oad1etter (~pc1oad1et@ec2-174-129-99-58.compute-1.amazonaws.com) joined #rest. [20:28:41] scudco (~scudco@cpe-75-85-13-152.socal.res.rr.com) left irc: Ping timeout: 252 seconds [20:40:07] Wombert (~Wombert@dslb-092-074-120-056.pools.arcor-ip.net) left irc: Quit: Wombert [20:50:16] scudco (~scudco@cpe-75-85-13-152.socal.res.rr.com) joined #rest. [21:26:28] fu-manchu (~fumanchu@75-57-4-116.lightspeed.sndgca.sbcglobal.net) left irc: Ping timeout: 276 seconds [22:37:23] nuclearsandwich (~nuclearsa@74-93-3-241-SFBA.hfc.comcastbusiness.net) joined #rest. [23:23:37] Wombert (~Wombert@dslb-092-074-120-056.pools.arcor-ip.net) joined #rest. [23:30:09] quest88 (~quest88@c-98-207-205-137.hsd1.ca.comcast.net) left irc: Quit: quest88 [00:00:00] --- Sat Dec 17 2011