ruote log_2010-06-21

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__