| 2010-07-22 01:14:30 utc | jmettraux | test |
| 2010-07-22 07:30:09 utc | lbt | still here |
| 2010-07-22 07:33:02 utc | jmettraux | hello |
| 2010-07-22 07:35:19 utc | lbt | hi... sorry I've not been around much |
| 2010-07-22 07:35:43 utc | jmettraux | no worries |
| 2010-07-22 07:36:01 utc | lbt | I wanted to talk more interactively about the AMQP too :) |
| 2010-07-22 07:36:23 utc | lbt | I'm getting things pulled together for an internal deployment here |
| 2010-07-22 07:36:30 utc | jmettraux | cool |
| 2010-07-22 07:36:35 utc | lbt | so I need to get that finished first |
| 2010-07-22 07:36:54 utc | lbt | packaged all the ruoute dependencies for opensuse now |
| 2010-07-22 07:37:05 utc | lbt | so we can "zypper install ruote" |
| 2010-07-22 07:37:25 utc | lbt | I'll hand that off to the opensuse pkging team |
| 2010-07-22 07:37:39 utc | jmettraux | http://gembundler.com/ |
| 2010-07-22 07:37:42 utc | lbt | (discussed with them and should all be OK) |
| 2010-07-22 07:37:43 utc | lbt | yes |
| 2010-07-22 07:38:05 utc | lbt | some production environments have policies |
| 2010-07-22 07:38:12 utc | lbt | "thou shalt use packages" |
| 2010-07-22 07:38:14 utc | jmettraux | ah OK |
| 2010-07-22 08:09:53 utc | jmettraux | ah, replying now to your AMQP questions on the mailing list |
| 2010-07-22 08:34:49 utc | jmettraux | sorry for the late reply, was hidden by Asier's reply |
| 2010-07-22 08:43:55 utc | jmettraux | lbt: your http://github.com/lbt/amqp/commit/56da75f7c9cdc3362e60159fcaf3334ae26b837d commit is overkill |
| 2010-07-22 08:48:32 utc | lbt | it is? |
| 2010-07-22 08:48:44 utc | lbt | surely it should allow the standard headers to be addressed? |
| 2010-07-22 08:49:43 utc | lbt | and because the convention seems to be to share "opts" values between both headers and something else.. it's important to explicitly list the valid values in headers |
| 2010-07-22 08:50:27 utc | lbt | otherwise we could end up with an illegal value in headers which would close the connection - or we'd prohibit the sending of other values |
| 2010-07-22 08:50:51 utc | jmettraux | you're not preventing any illegal key nor illegal value from going there |
| 2010-07-22 08:50:55 utc | lbt | anyhow... that was my rationale at the time :) |
| 2010-07-22 08:51:20 utc | lbt | I thought merge(opts) would only overwrite? |
| 2010-07-22 08:51:27 utc | lbt | vs merge!(opts) |
| 2010-07-22 08:51:40 utc | lbt | bad ruby again? :) |
| 2010-07-22 08:51:52 utc | jmettraux | well |
| 2010-07-22 08:52:02 utc | jmettraux | delete if value is null is following |
| 2010-07-22 08:52:12 utc | lbt | yes... that cleans up |
| 2010-07-22 08:52:44 utc | jmettraux | { 'a' => nil }.merge('evil_key' => 'evil_value')... |
| 2010-07-22 08:52:56 utc | lbt | yes... that was my concern |
| 2010-07-22 08:53:13 utc | lbt | and http://github.com/lbt/amqp/blob/56da75f7c9cdc3362e60159fcaf3334ae26b837d/lib/mq/exchange.rb#L279-280 |
| 2010-07-22 08:53:41 utc | lbt | so if I did a merge! then "routing_key" could end up in headers... |
| 2010-07-22 08:55:47 utc | jmettraux | it's not a merge vs merge! issue |
| 2010-07-22 08:55:59 utc | lbt | OK... |
| 2010-07-22 08:56:08 utc | lbt | ACTION is willing to learn |
| 2010-07-22 08:56:44 utc | jmettraux | { 'a' => nil }.merge('evil_key' => 'evil_value').delete_if {|key, value| value == nil } |
| 2010-07-22 08:57:01 utc | jmettraux | # => { 'evil_key' => 'evil_value' } |
| 2010-07-22 08:57:44 utc | lbt | yes... at which point the amqp connection will, I think, raise an exception and close down |
| 2010-07-22 08:58:03 utc | lbt | "MUST" as they say in rfc language |
| 2010-07-22 08:58:08 utc | jmettraux | great |
| 2010-07-22 08:58:40 utc | jmettraux | so your commit is adding a hash generation and a delete_if iteration for nothing |
| 2010-07-22 08:58:40 utc | lbt | so by listing the permitted values I try to prevent that |
| 2010-07-22 08:58:48 utc | lbt | yes |
| 2010-07-22 08:58:54 utc | lbt | it's a QA thing |
| 2010-07-22 08:59:22 utc | lbt | is there a better way to code it? |
| 2010-07-22 08:59:43 utc | jmettraux | ACTION is puzzled |
| 2010-07-22 08:59:46 utc | lbt | the real problem is that the input is : def publish data, opts |
| 2010-07-22 08:59:58 utc | jmettraux | your commit will never make it |
| 2010-07-22 09:00:12 utc | lbt | not : def publish data, opts, header |
| 2010-07-22 09:01:07 utc | lbt | that's OK - I'm happy to see a more efficient solution... |
| 2010-07-22 09:01:42 utc | lbt | but simply doing a headers = {...} .merge(opts) *MUST* fail |
| 2010-07-22 09:01:51 utc | jmettraux | great |
| 2010-07-22 09:01:58 utc | lbt | if opts ever has :key in it |
| 2010-07-22 09:02:19 utc | jmettraux | do you realize your code does nothing ? |
| 2010-07-22 09:02:33 utc | lbt | heh... no. |
| 2010-07-22 09:03:21 utc | lbt | publish "My text", {:key => "there", :reply_to => "here" } |
| 2010-07-22 09:03:27 utc | lbt | works as I intended |
| 2010-07-22 09:04:12 utc | jmettraux | it worked before as well |
| 2010-07-22 09:06:51 utc | lbt | I have misunderstood merge then? |
| 2010-07-22 09:07:01 utc | lbt | OK ... sorry. |
| 2010-07-22 09:07:13 utc | lbt | I see what you meant above |
| 2010-07-22 09:08:16 utc | lbt | yep... when I read this: http://ruby-doc.org/core/classes/Hash.html#M002880 |
| 2010-07-22 09:08:44 utc | lbt | I read it as merge overwrites entries whereas merge! adds entries... |
| 2010-07-22 09:08:58 utc | lbt | in fact merge! modifies in-place doesn't it |
| 2010-07-22 09:09:06 utc | jmettraux | yes |
| 2010-07-22 09:09:32 utc | lbt | so, yes... my patch does nothing... not even restrict to legal entries |
| 2010-07-22 09:09:53 utc | lbt | although it does clarify the documentation :) |
| 2010-07-22 09:10:05 utc | jmettraux | well |
| 2010-07-22 09:10:31 utc | lbt | yeah... |
| 2010-07-22 09:10:57 utc | lbt | OK, I'll go apologise to tmm1 for the noise... |
| 2010-07-22 09:11:10 utc | jmettraux | did he reply anything ? |
| 2010-07-22 09:11:18 utc | lbt | nah |
| 2010-07-22 09:12:22 utc | jmettraux | I wish they had visible tests or specs |
| 2010-07-22 09:12:45 utc | lbt | well, I'm looking into spec/cucumber |
| 2010-07-22 09:13:20 utc | lbt | so maybe I'll get someone to work on them... |
| 2010-07-22 09:13:55 utc | jmettraux | you mean, the specs of tmm1/amqp ? |
| 2010-07-22 09:14:28 utc | lbt | we need to start with our own .. but I'd hope that we'd extend that to upstream |
| 2010-07-22 09:14:54 utc | jmettraux | specs for BOSS ? |
| 2010-07-22 09:15:30 utc | lbt | yes, and the rpc thing too |
| 2010-07-22 09:15:43 utc | jmettraux | which rpc thing ? |
| 2010-07-22 09:15:49 utc | lbt | http://meego.gitorious.org/meego-infrastructure-tools/air |
| 2010-07-22 09:15:58 utc | lbt | I'll push that to github too |
| 2010-07-22 09:16:35 utc | jmettraux | ah OK |
| 2010-07-22 09:16:45 utc | jmettraux | have to move, ciao ! |