| 2010-06-21 00:34:24 utc | jmettraux | then, since tree are graphs... |
| 2010-06-21 00:34:27 utc | jmettraux | trees |
| 2010-06-21 00:35:55 utc | jmettraux | "process instance as a closure of a process definition" |
| 2010-06-21 00:35:56 utc | jmettraux | well |
| 2010-06-21 00:36:35 utc | jmettraux | closure (according to Wikipedia) "programming language construct, an abstraction binding a function to its scope" |
| 2010-06-21 00:37:23 utc | jmettraux | "job" for process instance is very colloquial |
| 2010-06-21 00:37:41 utc | jmettraux | "closure" is at a 180 degree turn from "job" |
| 2010-06-21 00:38:28 utc | jmettraux | I wouldn't use the term "closure" at all |
| 2010-06-21 00:39:54 utc | jmettraux | ACTION thinks that such long winded questions are better on the mailing list, the IRC logging is not guaranteed 100% |
| 2010-06-21 04:24:14 utc | jmettraux | "A tree is a connected graph with no cycles." |
| 2010-06-21 07:16:25 utc | lbt | exactly :) |
| 2010-06-21 07:16:34 utc | lbt | I wasn't sure if there'd be cycles |
| 2010-06-21 07:17:24 utc | lbt | oh, and as for irc... I was half talking out loud :) |
| 2010-06-21 07:18:28 utc | lbt | the 'job' side is about initial big-pictre comprehension and real-world mapping ... the closure side was about the programming construct |
| 2010-06-21 07:19:09 utc | jmettraux | ;) |
| 2010-06-21 07:19:40 utc | jmettraux | OK. I like those discussions, I was only afraid they might get lost |
| 2010-06-21 07:23:26 utc | lbt | I did some more writing on the overview |
| 2010-06-21 07:23:51 utc | jmettraux | do you need some reviewing ? |
| 2010-06-21 07:23:56 utc | lbt | and tried to find a way to get clean pdef inclusion of the r-a |
| 2010-06-21 07:24:39 utc | lbt | please - bear in mind that *I* think the first 'section' should have almost no deep tech ... the 2-5 sections should |
| 2010-06-21 07:24:47 utc | jmettraux | OK |
| 2010-06-21 07:24:56 utc | jmettraux | you're right |
| 2010-06-21 07:25:04 utc | lbt | :) |
| 2010-06-21 07:29:22 utc | lbt | thoughts on this : http://meego.gitorious.org/meego-infrastructure-tools/boss/blobs/master/demo/run_engine.rb |
| 2010-06-21 07:29:23 utc | jmettraux | :) |
| 2010-06-21 07:30:16 utc | lbt | I was trying to get my head around the consume thing |
| 2010-06-21 07:30:59 utc | jmettraux | line 71, the keys should already be strings, there should be no need for the inject |
| 2010-06-21 07:31:00 utc | lbt | although after that I decided the subclasses of ParticipantWrapper should set an @route in an initialize |
| 2010-06-21 07:31:26 utc | jmettraux | ok |
| 2010-06-21 07:31:28 utc | lbt | yes, I allowed for people using the :command => 'path' elsewhere |
| 2010-06-21 07:32:43 utc | jmettraux | weird, the workitem given to consume should come out of JSON, it shouldn't have Symbol keys |
| 2010-06-21 07:34:01 utc | lbt | no, I meant in an external implementation at line 87/88 |
| 2010-06-21 07:34:47 utc | jmettraux | (we're probably speaking of two differents things) |
| 2010-06-21 07:34:55 utc | lbt | sec... phone call |
| 2010-06-21 07:43:08 utc | lbt | back now |
| 2010-06-21 07:43:57 utc | lbt | OK so my intention was to make pdef's clean when using r-a http://meego.gitorious.org/meego-infrastructure-tools/boss/blobs/master/demo/start_a_process.rb |
| 2010-06-21 07:45:18 utc | lbt | I figured that a common idiom (found all over the docs) would be : http://gist.github.com/446554 |
| 2010-06-21 07:48:18 utc | jmettraux | what about engine.register_participant 'img', RuoteAMQP::Participant, :command => 'x', :queue => 'y' ? |
| 2010-06-21 07:48:54 utc | jmettraux | it's the vanilla way |
| 2010-06-21 07:49:55 utc | lbt | looks ugly compared to sequence\n developer\n builder\n end |
| 2010-06-21 07:50:07 utc | lbt | the pdef is for business user consumption |
| 2010-06-21 07:50:45 utc | lbt | ah, hold on... |
| 2010-06-21 07:50:47 utc | lbt | I see |
| 2010-06-21 07:52:23 utc | jmettraux | I'm 100% for lean process definitions |
| 2010-06-21 07:52:24 utc | lbt | the problem I have as a newcomer is how to achieve these things.. |
| 2010-06-21 07:52:29 utc | lbt | yeah |
| 2010-06-21 07:52:49 utc | lbt | it's me ... I misunderstood how register_participant interacted with the pdef |
| 2010-06-21 07:52:58 utc | jmettraux | no problem |
| 2010-06-21 07:53:12 utc | lbt | so inside a pdef fred :this => "value" |
| 2010-06-21 07:53:46 utc | lbt | is handled by the engine and put in the ['params']['this'] |
| 2010-06-21 07:53:56 utc | jmettraux | yes |
| 2010-06-21 07:54:01 utc | lbt | if opts is set in register_participant |
| 2010-06-21 07:54:04 utc | lbt | that does the same thing |
| 2010-06-21 07:54:09 utc | jmettraux | no |
| 2010-06-21 07:54:18 utc | jmettraux | @opts['x'] |
| 2010-06-21 07:54:42 utc | lbt | but RuoteAMQP::Participant class |
| 2010-06-21 07:54:50 utc | lbt | does that with @opts ? |
| 2010-06-21 07:55:01 utc | jmettraux | you can then do things like stuff = workitem.fields['params']['stuff'] || @opts['stuff'] |
| 2010-06-21 07:55:06 utc | jmettraux | let me check |
| 2010-06-21 07:55:13 utc | lbt | ACTION is looking too |
| 2010-06-21 07:55:38 utc | jmettraux | sorry @options |
| 2010-06-21 07:55:48 utc | jmettraux | http://github.com/jmettraux/ruote-amqp/blob/ruote2.1/lib/ruote-amqp/participant.rb#L136 |
| 2010-06-21 07:56:02 utc | lbt | essentially the opts in register_participant are passed to the initialize of the class |
| 2010-06-21 07:56:14 utc | jmettraux | http://github.com/jmettraux/ruote-amqp/blob/ruote2.1/lib/ruote-amqp/participant.rb#L156 |
| 2010-06-21 07:56:17 utc | jmettraux | exactly |
| 2010-06-21 07:56:45 utc | jmettraux | so you can "merge" the two configurations |
| 2010-06-21 07:56:52 utc | lbt | line 97 |
| 2010-06-21 07:56:55 utc | jmettraux | the one at registration time and the one at runtime |
| 2010-06-21 07:57:01 utc | lbt | which is where I got my spooky-code |
| 2010-06-21 07:57:11 utc | jmettraux | :) |
| 2010-06-21 07:57:12 utc | lbt | explain registration |
| 2010-06-21 07:57:24 utc | lbt | does that instantiate an instance? |
| 2010-06-21 07:57:30 utc | jmettraux | no |
| 2010-06-21 07:57:45 utc | jmettraux | engine.register_participant 'x', class_y, opts |
| 2010-06-21 07:58:01 utc | jmettraux | registers a participant under name 'x' (that could be a regular expression) |
| 2010-06-21 07:58:11 utc | lbt | *nod* |
| 2010-06-21 07:58:26 utc | jmettraux | when there is such a call, it's "registration time" |
| 2010-06-21 07:58:53 utc | lbt | (note for later ... scoping) |
| 2010-06-21 08:00:45 utc | lbt | so runtime instantiates an instance |
| 2010-06-21 08:00:52 utc | lbt | in what context? |
| 2010-06-21 08:00:59 utc | lbt | inside a worker? |
| 2010-06-21 08:01:42 utc | jmettraux | http://github.com/jmettraux/ruote/blob/ruote2.1/lib/ruote/worker.rb#L196-218 last line |
| 2010-06-21 08:01:57 utc | lbt | (nb do tell me if you're too busy :) ) |
| 2010-06-21 08:01:58 utc | jmettraux | worker gives the ball to the dispatch_pool |
| 2010-06-21 08:02:31 utc | jmettraux | (when I'm too busy / away, I don't reply ;) ) |
| 2010-06-21 08:02:43 utc | lbt | heh... so the dispatch_pool needs to have the class definition |
| 2010-06-21 08:02:58 utc | lbt | wondering how to handle that as we scale out |
| 2010-06-21 08:03:08 utc | jmettraux | http://github.com/jmettraux/ruote/blob/ruote2.1/lib/ruote/part/dispatch_pool.rb#L74-83 |
| 2010-06-21 08:03:10 utc | lbt | not crucual now |
| 2010-06-21 08:03:30 utc | jmettraux | you have to make sure your workers have access to the same gems/codebase |
| 2010-06-21 08:03:37 utc | lbt | yes... makes sense |
| 2010-06-21 08:03:46 utc | lbt | nb... have you looked at that 'demo' |
| 2010-06-21 08:03:57 utc | lbt | am I doing the right thing ? |
| 2010-06-21 08:04:03 utc | lbt | in splitting out the engine |
| 2010-06-21 08:04:22 utc | jmettraux | I'm sorry, this week is busy for me |
| 2010-06-21 08:04:24 utc | lbt | It feels 'normal' |
| 2010-06-21 08:04:27 utc | lbt | yeah... np |
| 2010-06-21 08:04:41 utc | jmettraux | if you have an issue, please send an email to the mailing list |
| 2010-06-21 08:04:58 utc | lbt | OK, I mailed the link and such there |
| 2010-06-21 08:05:07 utc | jmettraux | or if you want a code review of a specific part, please link me to that part |
| 2010-06-21 08:05:40 utc | lbt | http://meego.gitorious.org/meego-infrastructure-tools/boss/blobs/master/demo/run_engine.rb lines 25-28 and line 114 |
| 2010-06-21 08:06:09 utc | lbt | together with http://meego.gitorious.org/meego-infrastructure-tools/boss/blobs/master/demo/start_a_process.rb line 40-42 |
| 2010-06-21 08:06:33 utc | lbt | that pattern of having a persistent engine and injecting jobs |
| 2010-06-21 08:06:54 utc | lbt | I need engine.wait(:forever) |
| 2010-06-21 08:07:16 utc | lbt | which I may try to implement ... so no 1-liners in 20 seconds please ;) |
| 2010-06-21 08:07:34 utc | jmettraux | sorry, it already exists somehow |
| 2010-06-21 08:07:43 utc | lbt | damn :) |
| 2010-06-21 08:07:50 utc | jmettraux | it should be called join |
| 2010-06-21 08:08:18 utc | lbt | actually engine.wait(:for_shutdown) |
| 2010-06-21 08:08:31 utc | lbt | sounds like my objective |
| 2010-06-21 08:08:49 utc | lbt | and yes, it's a simple join |
| 2010-06-21 08:09:22 utc | jmettraux | how would you go about it ? |
| 2010-06-21 08:10:00 utc | lbt | honestly I've not looked at that code enough yet. |
| 2010-06-21 08:10:18 utc | lbt | but if the approach sounds fine I'll look at a patch |
| 2010-06-21 08:10:53 utc | lbt | it's good to have something like this that means digging in the guts a little |
| 2010-06-21 08:11:16 utc | jmettraux | I feel guilty for not having added it yet |
| 2010-06-21 08:11:32 utc | lbt | I'm glad you haven't .... I may get a commit in ;) |
| 2010-06-21 08:11:40 utc | jmettraux | OK |
| 2010-06-21 08:12:12 utc | lbt | change of subject... |
| 2010-06-21 08:12:13 utc | jmettraux | waiting for the commit then |
| 2010-06-21 08:12:18 utc | lbt | the word "job" |
| 2010-06-21 08:12:45 utc | lbt | I like it as a synonym for "process instance" ... you? |
| 2010-06-21 08:13:16 utc | jmettraux | I like the "process definition" "process instance" combo |
| 2010-06-21 08:13:33 utc | lbt | I find process definition, process and process instance are very different concepts ... and all sound similar |
| 2010-06-21 08:14:00 utc | lbt | hard to contract, both in code and explanations |
| 2010-06-21 08:14:07 utc | jmettraux | but "job", for you, is only an alias for "process instance" |
| 2010-06-21 08:14:11 utc | lbt | yes |
| 2010-06-21 08:14:21 utc | lbt | just an alias in 'teaching' language |
| 2010-06-21 08:14:25 utc | jmettraux | I guess it's fine to use it |
| 2010-06-21 08:14:34 utc | lbt | but it may creep into the code :) |
| 2010-06-21 08:14:42 utc | jmettraux | I would hate that |
| 2010-06-21 08:14:46 utc | lbt | OK... |
| 2010-06-21 08:15:03 utc | jmettraux | in ruote core, I wouldn't like that |
| 2010-06-21 08:15:13 utc | lbt | it's why I asked... :) |
| 2010-06-21 08:15:20 utc | jmettraux | but I can imagine seeing it in projects using ruote |
| 2010-06-21 08:15:44 utc | lbt | I'm expecting to add some docs ... to help clarify my understanding as much as anything |
| 2010-06-21 08:16:13 utc | lbt | plus I have another project I'm demoing to next week... *the* UK gov education website |
| 2010-06-21 08:16:19 utc | jmettraux | cool |
| 2010-06-21 08:17:48 utc | jmettraux | (doesn't happen that often though) |
| 2010-06-21 08:17:57 utc | lbt | certainly worth talking |
| 2010-06-21 08:18:13 utc | lbt | probably would just help out as best I can rather than take on a job |
| 2010-06-21 08:18:23 utc | jmettraux | understood |
| 2010-06-21 08:18:40 utc | lbt | unless MeeGo goes splat ... and not in the ruby way ;) |
| 2010-06-21 08:18:57 utc | lbt | OK... last question... tree/graph |
| 2010-06-21 08:19:04 utc | lbt | it's a tree? |
| 2010-06-21 08:19:14 utc | jmettraux | yes |
| 2010-06-21 08:19:44 utc | lbt | I'm surprised ... I expected nodes to link back to earlier ones |
| 2010-06-21 08:19:47 utc | lbt | I'll correct that |
| 2010-06-21 08:20:11 utc | jmettraux | yes |
| 2010-06-21 08:20:14 utc | jmettraux | it does |
| 2010-06-21 08:20:21 utc | jmettraux | they link to "parents" |
| 2010-06-21 08:20:30 utc | lbt | but not grandparents |
| 2010-06-21 08:20:30 utc | jmettraux | 1 node has 1! parent |
| 2010-06-21 08:20:49 utc | jmettraux | no, no direct link to grandparents |
| 2010-06-21 08:21:04 utc | lbt | ah, so the tree represents the begin/end heirarchy ? |
| 2010-06-21 08:21:14 utc | lbt | ACTION should look at the tree sometime ... today |
| 2010-06-21 08:23:08 utc | jmettraux | https://gist.github.com/64737c9659443bfe4f27 |
| 2010-06-21 08:23:32 utc | jmettraux | define -> sequence -> alpha and bravo |
| 2010-06-21 08:23:39 utc | jmettraux | alpha.parent == sequence |
| 2010-06-21 08:23:49 utc | jmettraux | sequence.children == [ alpha, bravo ] |
| 2010-06-21 08:24:10 utc | lbt | is that ri? |
| 2010-06-21 08:24:16 utc | jmettraux | irb |
| 2010-06-21 08:24:23 utc | lbt | ACTION is real ruby noobie :) |
| 2010-06-21 08:25:49 utc | jmettraux | :) |
| 2010-06-21 08:26:36 utc | lbt | you would not believe the pain I had... did you know that 'require json' doesn't work here? |
| 2010-06-21 08:26:48 utc | lbt | require 'yajl/json_gem' does |
| 2010-06-21 08:27:04 utc | lbt | ruote doesn't do much when all the json strings are "" |
| 2010-06-21 08:27:08 utc | lbt | just FYI |
| 2010-06-21 08:27:15 utc | lbt | |
| 2010-06-21 08:28:08 utc | jmettraux | I know : http://github.com/jmettraux/ruote/issues/closed#issue/12 |
| 2010-06-21 08:28:26 utc | jmettraux | this is pain : http://github.com/flori/json/issues#issue/21 |
| 2010-06-21 08:29:02 utc | lbt | ah.... so I fixed that myself /me is chuffed :) |
| 2010-06-21 08:29:23 utc | lbt | well, avoided |
| 2010-06-21 08:29:36 utc | jmettraux | it's a bit hard to communicate about that one |
| 2010-06-21 08:29:48 utc | lbt | I think it's why I abandonded 1.9.1 |
| 2010-06-21 08:30:01 utc | jmettraux | I don't know exactly at which point in the doc I have to tell "please use yajl" |
| 2010-06-21 08:30:13 utc | lbt | INSTALL |
| 2010-06-21 08:30:41 utc | jmettraux | well |
| 2010-06-21 08:30:43 utc | lbt | http://meego.gitorious.org/meego-infrastructure-tools/boss/blobs/master/demo/README |
| 2010-06-21 08:30:47 utc | lbt | http://meego.gitorious.org/meego-infrastructure-tools/boss/blobs/master/README |
| 2010-06-21 08:30:48 utc | jmettraux | ruby people do "gem install ruote" |
| 2010-06-21 08:30:53 utc | lbt | http://meego.gitorious.org/meego-infrastructure-tools/boss/blobs/master/INSTALL |
| 2010-06-21 08:31:02 utc | jmettraux | I have 3-4 such "entry points" |
| 2010-06-21 08:31:32 utc | lbt | yeah.. I wondered if you wanted to take that code and create a "welcome to ruote" project |
| 2010-06-21 08:32:01 utc | lbt | a few less of these: http://jmettraux.wordpress.com/2010/01/29/barley/ |
| 2010-06-21 08:32:09 utc | jmettraux | ? |
| 2010-06-21 08:32:28 utc | lbt | which are cool... and totally off putting to non-ruby experts |
| 2010-06-21 08:32:59 utc | jmettraux | well, I don't want to ruin my health being to newbie friendly |
| 2010-06-21 08:33:09 utc | lbt | no, there are limits |
| 2010-06-21 08:33:22 utc | lbt | but if the docs are good... RTFM and STFU |
| 2010-06-21 08:33:43 utc | lbt | and they make reasonable test suites |
| 2010-06-21 08:33:54 utc | jmettraux | fortunately not everybody understand workflow engines, so I'm not too bothered |
| 2010-06-21 08:33:57 utc | lbt | my demo integrates the main ruote projects |
| 2010-06-21 08:34:16 utc | lbt | heh... I'm preparing to get a team or two onboard too |
| 2010-06-21 08:34:27 utc | jmettraux | cool |
| 2010-06-21 08:34:29 utc | lbt | so I want the groundwork to let them be productive |
| 2010-06-21 08:34:46 utc | lbt | MeeGo looks 99% certain now |
| 2010-06-21 08:39:26 utc | jmettraux | join() please |
| 2010-06-21 08:39:43 utc | jmettraux | wait_for is a testing/debug method ;) |
| 2010-06-21 08:40:14 utc | lbt | OK |
| 2010-06-21 08:40:27 utc | lbt | l |
| 2010-06-21 08:40:32 utc | lbt | l8r even |
| 2010-06-21 11:42:18 utc | lbt | ACTION doesn't much like : default_queue; reply_by_default; reply_anyway in r-a ... :) just 'queue' and 'dont_wait' .... |
| 2010-06-21 11:43:53 utc | lbt | I wonder if participant should take a :dont_wait => true/false ? default to false of course so on the rare occasion you need a fire+forget it's : participant do_something :dont_wait => true |
| 2010-06-21 11:47:44 utc | jmettraux | it's easy to change |
| 2010-06-21 11:47:52 utc | lbt | I'm in the code |
| 2010-06-21 11:48:21 utc | lbt | I'm just updating r-a and daemon-kit |
| 2010-06-21 11:48:40 utc | lbt | r-a still documents the reply_queue so fixing that |
| 2010-06-21 11:48:54 utc | lbt | and d-k of course, still uses it... so fixed that too |
| 2010-06-21 11:48:54 utc | jmettraux | you can do a "fire and forget" in ruote "natively" with participant 'x', :forget => true |
| 2010-06-21 11:49:03 utc | lbt | :forget :) |
| 2010-06-21 11:49:55 utc | lbt | http://ruote.rubyforge.org/common_attributes.html#forget |
| 2010-06-21 11:50:51 utc | lbt | I thought I'd read it... so r-a shouldn't really bother with :reply_anyway then... I think it does the same thing |
| 2010-06-21 11:58:10 utc | jmettraux | it's not that bad to have fire and forget in r-a as well, with a smart default it's fine |
| 2010-06-21 11:59:39 utc | lbt | why have 2? I was going to get the r-a to look at :forget and pass it to the remote ... so the remote doesn't create a growing queue on a possibly ignored ruote_workitems queue |
| 2010-06-21 12:01:53 utc | jmettraux | good idea |
| 2010-06-21 12:04:01 utc | jmettraux | lbt: while you're working on r-a, could I implement engine.join ? |
| 2010-06-21 12:04:13 utc | lbt | aw.... |
| 2010-06-21 12:04:16 utc | lbt | go on then ;) |
| 2010-06-21 12:12:52 utc | jmettraux | join http://github.com/jmettraux/ruote/commit/2d31cde2fce5f04bf4baee17e864dbacf80d677a |
| 2010-06-21 15:47:23 utc | lbt | http://github.com/lbt/ruote-amqp/commits/ruote2.1/ |
| 2010-06-21 15:48:17 utc | lbt | Document deprecation of :reply_queue and use of 'ruote_workitems' and Support :command => '' and :queue => '' in register_participant() options |
| 2010-06-21 16:03:41 utc | lbt | Also some fixes to daemon-kit : http://github.com/lbt/daemon-kit/commits/master/ |
| 2010-06-21 20:59:41 utc | lbt | hmmm .... ruote-amqp looks for fields['message'] as well as params... this seems very wrong |
| 2010-06-21 21:00:09 utc | lbt | at the very least it should be __message__ |