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