ruote tmp/log_2011-09-16.html

2011-09-16 00:23:03 utc Dirklectisch have you heard of Douglas Rushkoff?
2011-09-16 00:23:13 utc Dirklectisch He has lot's of interesting stuff to say about this kind of thing
2011-09-16 00:23:38 utc jmettraux sorry, I didn't
2011-09-16 00:24:14 utc Dirklectisch there is no need to apologize :p
2011-09-16 00:24:27 utc Dirklectisch here another vid for your 'to watch' list
2011-09-16 00:24:31 utc Dirklectisch after Hickey ;-)
2011-09-16 00:24:33 utc Dirklectisch
2011-09-16 00:24:36 utc jmettraux doing some light viewing
2011-09-16 00:24:45 utc jmettraux thanks !
2011-09-16 00:25:43 utc Dirklectisch yeah I have seen that ted talk, it's amazing when you think of it.
2011-09-16 00:27:10 utc jmettraux I see Nancy Duarte referred in "presentation zen"
2011-09-16 00:27:49 utc Dirklectisch that's right, the book i just read is about storytelling
2011-09-16 00:28:00 utc Dirklectisch it analyzes famous speeches etc
2011-09-16 00:28:15 utc Dirklectisch it was ok, but I liked presentation Zen way better
2011-09-16 00:33:03 utc jmettraux I have "the naked presenter" next, did you read it ?
2011-09-16 00:34:16 utc Dirklectisch nope, i don't think i heard about that one.
2011-09-16 00:34:46 utc jmettraux same author as "presentation zen"
2011-09-16 00:34:58 utc Dirklectisch ah is that a new book by garr?
2011-09-16 00:35:25 utc Dirklectisch i think my problem with nancy's book is that it's not practical enough
2011-09-16 00:35:39 utc Dirklectisch while PZ was highly practical
2011-09-16 00:35:50 utc jmettraux naked presenter: 2011
2011-09-16 00:36:26 utc Dirklectisch cool, might pick it up if you think it's good after finishing it.
2011-09-16 00:38:25 utc jmettraux ok
2011-09-16 00:41:35 utc Dirklectisch I'm gonna get some sleep
2011-09-16 00:41:49 utc Dirklectisch nice talking to you again
2011-09-16 00:42:11 utc Dirklectisch until next time
2011-09-16 00:42:13 utc Dirklectisch :-)
2011-09-16 00:44:01 utc jmettraux nice talking to you
2011-09-16 00:44:04 utc jmettraux have a good night sleep
2011-09-16 00:44:16 utc jmettraux always a pleasure
2011-09-16 00:44:52 utc Dirklectisch bye
2011-09-16 07:51:49 utc jmettraux pbh_: hello and welcome to #ruote
2011-09-16 07:52:32 utc pbh_ why hello
2011-09-16 07:53:00 utc jmettraux pbh_: is that a question ?
2011-09-16 07:53:19 utc pbh_ no, i actually have some embarrassingly simple questions
2011-09-16 07:53:39 utc pbh_ i'm actually just starting out learning about ruote, and i'm a bit confused as to where to start
2011-09-16 07:53:56 utc pbh_ i just watched the ruote in 20 mins talk, which helped a bit
2011-09-16 07:54:27 utc pbh_ and i'm most likely to be using some combination of heroku, redis, rails, and postgresql
2011-09-16 07:54:51 utc jmettraux what are you trying to build ?
2011-09-16 07:55:45 utc pbh_ i'm building a workflow with various human and computer participants
2011-09-16 07:55:58 utc pbh_ though i suppose that's not very specific
2011-09-16 07:56:26 utc pbh_ i'm actually playing around with brainstorming domain names
2011-09-16 07:56:43 utc jmettraux is the workflow always the same ?
2011-09-16 07:56:57 utc pbh_ so humans brainstorm some domain names, they get checked for availability, there may be some iteration based on quality, etc.
2011-09-16 07:57:20 utc pbh_ it depends on what you mean by the same
2011-09-16 07:57:34 utc jmettraux ah, ok, now I understood, please go on
2011-09-16 07:57:49 utc pbh_ ah, excellent
2011-09-16 07:58:23 utc pbh_ so a naive implementation would be to just have some records in postgresql
2011-09-16 07:58:42 utc pbh_ and have resque jobs just look at the tables, moving records between them
2011-09-16 07:58:49 utc pbh_ though ruote seems to handle iteration and such much more naturally
2011-09-16 07:59:15 utc pbh_ but i'm confused at a very high level as to how the engine works, when work gets done, etc.
2011-09-16 07:59:38 utc pbh_ (and how that relates to, e.g., ruote-kit and ruote-rest)
2011-09-16 07:59:49 utc jmettraux ruote-rest is dead
2011-09-16 07:59:54 utc jmettraux ruote-kit is the successor
2011-09-16 08:00:10 utc pbh_ ah, you have already saved me from one dead end then ;-)
2011-09-16 08:00:14 utc jmettraux it's a rack middleware encapsulating a ruote engine
2011-09-16 08:00:32 utc pbh_ so does the workflow only progress when requests come in, then?
2011-09-16 08:00:56 utc pbh_ or is it intended to be polled by some external source at regular intervals?
2011-09-16 08:01:06 utc jmettraux it depends on the participant
2011-09-16 08:01:25 utc jmettraux for computer participants, you generally push workitems to them
2011-09-16 08:01:37 utc jmettraux for humans, they tend to poll a pile of their workitems
2011-09-16 08:02:15 utc pbh_ ah
2011-09-16 08:02:38 utc pbh_ i suppose i was imagining the engine as something like rake jobs:work in delayedjob, or rake resque:work in resque
2011-09-16 08:02:41 utc pbh_ but that seems inaccurate
2011-09-16 08:02:56 utc jmettraux it's the worker that is like that
2011-09-16 08:05:02 utc pbh_ hmmm, i clearly need to read more
2011-09-16 08:06:08 utc pbh_ is there a good place to get a really high level overview?
2011-09-16 08:06:24 utc pbh_ i'm looking at your 2.1 announcement blog post, but i'm not sure if it is up to date
2011-09-16 08:06:31 utc jmettraux
2011-09-16 08:06:43 utc jmettraux
2011-09-16 08:06:54 utc pbh_ and the quickstarts don't seem to assume a weird rack-like context, unless i'm missing something
2011-09-16 08:07:08 utc pbh_ (not that i'm complaining ;-))
2011-09-16 08:07:32 utc jmettraux just checked the quickstart, I see nothing about rack
2011-09-16 08:08:09 utc pbh_ yeah, i guess i'm just assuming that if i'm running on heroku that i'll need to either be in a heroku worker context, a separate app, or a rack middleware context
2011-09-16 08:08:24 utc pbh_ and it seemed like the quickstart was meant to run standalone
2011-09-16 08:08:36 utc jmettraux yes, it's just a ruby program
2011-09-16 08:08:37 utc pbh_ so i was confused as to how things would differ in my likely deployment case
2011-09-16 08:09:26 utc jmettraux can you run resque on heroku (sorry I don't know)
2011-09-16 08:09:28 utc jmettraux ?
2011-09-16 08:09:52 utc pbh_ yeah, with some specifics
2011-09-16 08:10:00 utc jmettraux ok, it's been a while since I've looked at heroku
2011-09-16 08:10:13 utc jmettraux I guess you can run ruote (the worker) in a heroku worker context
2011-09-16 08:10:27 utc jmettraux and then simply access the engine from your webapp
2011-09-16 08:10:35 utc jmettraux if we look at
2011-09-16 08:10:54 utc jmettraux it's a vanilla ruby program, it contains the worker (line 7)
2011-09-16 08:11:32 utc jmettraux an "engine" is a bunch of workers sharing the same storge
2011-09-16 08:12:36 utc jmettraux actually, this is better :
2011-09-16 08:12:46 utc jmettraux "dashboard" is a better denomination
2011-09-16 08:13:13 utc pbh_ yeah, i noticed the terminology seemed to have changed
2011-09-16 08:16:35 utc pbh_ so in that example
2011-09-16 08:17:04 utc pbh_ you're defining a worker that is going to use a hash-based memory backend to access the state of the workflow
2011-09-16 08:17:15 utc pbh_ (6--8)
2011-09-16 08:18:02 utc pbh_ and registering a computer process that's just going to change the hello field to world
2011-09-16 08:18:20 utc pbh_ (10--12)
2011-09-16 08:18:29 utc pbh_ though i'm not clear on where any workitems are going to enter the system
2011-09-16 08:20:15 utc pbh_ and presumably storageparticipant is just leaving things on the file system for a human to see
2011-09-16 08:21:53 utc pbh_ (and i'm confused as engine.launch whether processes are being enqueued in some sense and/or whether something asynchronous is being kicked off)
2011-09-16 08:25:42 utc pbh_ ah, actually i guess the computer participant is adding the workitem with the hello world part
2011-09-16 08:26:03 utc jmettraux I'm not registering a computer process, it's more like code that is executed when a workitem is passed to it
2011-09-16 08:26:44 utc jmettraux a way to pass initial values for the workitem:
2011-09-16 08:27:19 utc jmettraux StorageParticipant places the workitem in the storage itself, so in our case, in our instance of HashStorage (in-memory)
2011-09-16 08:27:56 utc pbh_ ah, so my first interpretation of the computer participant was correct, and not the second
2011-09-16 08:28:05 utc jmettraux engine.launch creates a process instance and queues its first 'action' for execution by the worker
2011-09-16 08:29:05 utc jmettraux sorry, what was your first interpretation of a computer participant ? I interpreted "computer process" as "OS process"
2011-09-16 08:29:31 utc pbh_ oh, i suppose i meant both
2011-09-16 08:30:00 utc pbh_ but that's code in the workflow that isn't a human, and it's going to alter rather than create that workflow key/value pair, no?
2011-09-16 08:30:39 utc pbh_ err, i mean, workitem key/value pair
2011-09-16 08:31:32 utc pbh_ so the process definition is change key hello to world in the workitem, and then save to the specified storage
2011-09-16 08:32:25 utc pbh_ (by both i mean that the code is actually the computer participant, though i'm presuming it will eventually get run by some as yet unknown os process)
2011-09-16 08:32:38 utc jmettraux the "computer" participant, it receives a workitem, sets the field "hello" to the value "world" and then implicitely replies to the "engine", so that the flow goes on to "human"
2011-09-16 08:32:45 utc jmettraux ok
2011-09-16 08:33:35 utc pbh_ though i interrupted you at the point of your engine.launch explanation
2011-09-16 08:33:51 utc jmettraux ok
2011-09-16 08:34:10 utc jmettraux is a version where engine.noisy = true
2011-09-16 08:34:20 utc jmettraux it shows every "message" processed by the worker
2011-09-16 08:35:04 utc jmettraux it produces something like:
2011-09-16 08:35:46 utc jmettraux there are messages like launch, apply, dispatch, receive, cancel...
2011-09-16 08:36:07 utc jmettraux the sum of those messages in the "enactment" of a workflow instance
2011-09-16 08:37:20 utc pbh_ ok, that makes sense
2011-09-16 08:38:19 utc pbh_ so i understand how the definition states what is supposed to happen
2011-09-16 08:38:32 utc pbh_ but what is actually enacting that definition
2011-09-16 08:38:44 utc jmettraux the worker[s]
2011-09-16 08:39:24 utc pbh_ so is launch adding a new workitem, spawning workers, or something else
2011-09-16 08:39:58 utc pbh_ (and is there a separate thread of execution, or is there another reason for the sleep 5)
2011-09-16 08:40:39 utc jmettraux it's asynchronous, so yes there is a separate thread of execution (inside of the Worker instance)
2011-09-16 08:41:03 utc jmettraux the spawning of workers has to be done by yourself
2011-09-16 08:41:42 utc jmettraux launching is taking a workflow definition and an initial workitem (empty by default) and creating a workflow instance
2011-09-16 08:42:01 utc jmettraux that is, placing a launch order in the worker's queue
2011-09-16 08:42:15 utc jmettraux sorry, have to go, dinner is ready
2011-09-16 08:42:42 utc pbh_ ah, no worries
2011-09-16 08:42:49 utc jmettraux I'll be back later, feel free to send questions to the mailing list as well
2011-09-16 08:42:49 utc pbh_ thanks a lot, hopefully i'll have better questions at a later point
2011-09-16 08:42:57 utc jmettraux ok, ttyl !