2011-01-14 10:21:15 utc |
mauko |
hi |
2011-01-14 10:22:37 utc |
tosch_le |
mauko: hello and welcome to #ruote! |
2011-01-14 10:23:08 utc |
mauko |
hi tosch_le |
2011-01-14 10:23:27 utc |
mauko |
i enter here looking for some advice, could you provide me some? |
2011-01-14 10:23:37 utc |
tosch_le |
i can try |
2011-01-14 10:24:54 utc |
mauko |
i need to do some process, and after reading jmettraux post about workflow vs state machines, i don't know what suits for my needs |
2011-01-14 10:25:01 utc |
mauko |
look |
2011-01-14 10:26:42 utc |
tosch_le |
ok. what are your needs? |
2011-01-14 10:26:43 utc |
mauko |
http://pastie.org/1459436 |
2011-01-14 10:27:07 utc |
mauko |
i need to do a step-by-step acceptation process, with both user and admin intervention |
2011-01-14 10:28:04 utc |
mauko |
in the code example, submits are done by the user, and request_queues are done by the admin |
2011-01-14 10:28:16 utc |
tosch_le |
do you expect the process to change over time? |
2011-01-14 10:28:36 utc |
mauko |
sure, that's a vanilla idea of the process |
2011-01-14 10:28:51 utc |
mauko |
as the business does, the process should change too |
2011-01-14 10:31:40 utc |
tosch_le |
that would be a point for ruote, you don't need to change the code if the process changes, just the process definition |
2011-01-14 10:31:41 utc |
tosch_le |
i'll be back in a few minutes, have to talk to someone |
2011-01-14 10:31:41 utc |
mauko |
ok |
2011-01-14 10:31:49 utc |
tosch_le |
ok, i'm back. the process looks like a webflow to me. is that right? |
2011-01-14 10:34:55 utc |
tosch_le |
and it looks to me that you've already implemented a part of the code. does that work for you? |
2011-01-14 10:39:59 utc |
mauko |
i just mocket it up |
2011-01-14 10:40:03 utc |
mauko |
*mocked |
2011-01-14 10:40:20 utc |
tosch_le |
ok. |
2011-01-14 10:40:33 utc |
tosch_le |
do you have any special needs? |
2011-01-14 10:41:01 utc |
mauko |
its basicly like this: |
2011-01-14 10:42:41 utc |
mauko |
a user sends it's info through a form, and it qet queued to the admin to review, and then the admin send the user to other form |
2011-01-14 10:42:57 utc |
mauko |
then the user submit new info, |
2011-01-14 10:43:09 utc |
mauko |
and the process repeats that way |
2011-01-14 10:43:31 utc |
mauko |
and finally the admin "aproves" a user |
2011-01-14 10:43:57 utc |
tosch_le |
ok, that's what jmettraux calls a "webflow" |
2011-01-14 10:44:54 utc |
tosch_le |
ruote doesn't give you any user handling, you'd have to cover that in your app anyway. |
2011-01-14 10:45:29 utc |
mauko |
ah! the roles stuff, yeah that goes on my part. |
2011-01-14 10:46:00 utc |
tosch_le |
ruote would perfectly drive your process, but i don't see a point which would make me say "you really have to use ruote because it's better than a state engine" |
2011-01-14 10:46:19 utc |
tosch_le |
for your use case, i mean. |
2011-01-14 10:46:35 utc |
mauko |
good to know that |
2011-01-14 10:46:52 utc |
tosch_le |
only advantage is perhaps the point about changing the process definition |
2011-01-14 10:47:07 utc |
mauko |
are there route implementations examples ? |
2011-01-14 10:47:31 utc |
mauko |
i had found a lack of examples on the most of state machines gems |
2011-01-14 10:47:34 utc |
mauko |
:/ |
2011-01-14 10:49:10 utc |
tosch_le |
there's an examples dir: https://github.com/jmettraux/ruote/tree/ruote2.1/examples |
2011-01-14 10:50:18 utc |
tosch_le |
there's also https://github.com/threetee/ruote-rails-example , but that's adavanced, it uses amqp |
2011-01-14 10:51:03 utc |
tosch_le |
there's barley: http://jmettraux.wordpress.com/2010/01/29/barley/ |
2011-01-14 10:51:32 utc |
tosch_le |
and you'll find many examples in the docs section of the website: http://ruote.rubyforge.org/documentation.html |
2011-01-14 10:55:36 utc |
mauko |
nice |
2011-01-14 10:55:44 utc |
mauko |
i'll be reviewing those so |
2011-01-14 10:55:45 utc |
mauko |
:D |
2011-01-14 10:55:53 utc |
mauko |
thanks for your help |
2011-01-14 10:56:20 utc |
tosch_le |
you're welcome! |
2011-01-14 11:23:43 utc |
mauko |
btw |
2011-01-14 11:23:44 utc |
mauko |
https://github.com/tosch/ruote-on-rails |
2011-01-14 11:23:55 utc |
mauko |
that's a working example of yours? |
2011-01-14 11:25:38 utc |
tosch_le |
it's not really an example, it's just a starting point if you want to use ruote within a rails project |
2011-01-14 11:27:44 utc |
mauko |
i'm trying to figure out how goes the MVC in a rails 3 route implementation |
2011-01-14 11:28:11 utc |
mauko |
perhaps should review that code you wrote |
2011-01-14 11:28:43 utc |
tosch_le |
it goes it's usual way ;-) no need to change anything, there are just the process definitions in addition. |
2011-01-14 11:29:06 utc |
tosch_le |
jmettraux wrote a huge part of the example stuff which is in route-on-rails |
2011-01-14 11:30:26 utc |
tosch_le |
and yes, having a look at ruote-on-rails is a good idea. sorry that i forgot to mention it earlier. |
2011-01-14 13:49:31 utc |
jmettraux |
tosch_le: hello, many thanks for the help |
2011-01-14 13:55:40 utc |
belucid |
jmettraux, you here? |
2011-01-14 13:55:49 utc |
jmettraux |
hello, yes |
2011-01-14 13:55:57 utc |
belucid |
hey, how's it going |
2011-01-14 13:56:04 utc |
jmettraux |
going fine, and you ? |
2011-01-14 13:56:09 utc |
belucid |
going pretty well |
2011-01-14 13:56:23 utc |
belucid |
got a minute for some questions on ruote-couch? |
2011-01-14 13:56:45 utc |
jmettraux |
yes, but please let me tell you it's a slow thing |
2011-01-14 13:56:52 utc |
belucid |
:-) |
2011-01-14 13:56:56 utc |
belucid |
yup, I see that |
2011-01-14 13:57:01 utc |
belucid |
the slowness is not the question |
2011-01-14 13:57:09 utc |
jmettraux |
:-) |
2011-01-14 13:57:31 utc |
belucid |
so... ensure_msgs_thread_is_running and ensure_schedules_thread_is_running |
2011-01-14 13:57:37 utc |
belucid |
in storage.rb |
2011-01-14 13:57:47 utc |
belucid |
are setting up 2 long polls |
2011-01-14 13:58:03 utc |
belucid |
on ruote_schedules/_changes?feed=continuous&heartbeat=20000&include_docs=true 200 for example |
2011-01-14 13:58:07 utc |
belucid |
for schedules |
2011-01-14 13:58:14 utc |
belucid |
they are not behaving :-( |
2011-01-14 13:58:26 utc |
belucid |
works fine in my browser... I can long poll on those all day |
2011-01-14 13:58:36 utc |
jmettraux |
which version of ruote-couch are you using ? |
2011-01-14 13:59:01 utc |
belucid |
uhh... master in github |
2011-01-14 13:59:09 utc |
jmettraux |
ok |
2011-01-14 13:59:16 utc |
belucid |
I get a closed stream (IOError) |
2011-01-14 13:59:30 utc |
belucid |
from rufus jig |
2011-01-14 14:00:04 utc |
belucid |
couch.rb:340 |
2011-01-14 14:00:28 utc |
jmettraux |
? |
2011-01-14 14:00:59 utc |
jmettraux |
https://github.com/jmettraux/ruote-couch/blob/ccb5797ca2b48fd20ca3cf3456f3b53cc4684baa/lib/ruote/couch.rb |
2011-01-14 14:01:12 utc |
belucid |
sorry |
2011-01-14 14:01:24 utc |
belucid |
there is also a couch.rb in rufus-jig gem |
2011-01-14 14:01:35 utc |
belucid |
which is used by ruote-couch |
2011-01-14 14:01:50 utc |
jmettraux |
could you please gist the stack trace ? |
2011-01-14 14:01:57 utc |
jmettraux |
what operating system ? |
2011-01-14 14:02:01 utc |
jmettraux |
which version of ruby ? |
2011-01-14 14:02:08 utc |
belucid |
1.9.2 |
2011-01-14 14:02:10 utc |
belucid |
OS X |
2011-01-14 14:02:19 utc |
jmettraux |
what's different from your browser ? Is the couch local ? |
2011-01-14 14:02:39 utc |
belucid |
yes, couch is local |
2011-01-14 14:02:40 utc |
belucid |
https://gist.github.com/cedb3513bd51007889e8 |
2011-01-14 14:02:53 utc |
belucid |
ignore the line # on storage.rb |
2011-01-14 14:02:55 utc |
jmettraux |
some kind of authentication ? |
2011-01-14 14:03:12 utc |
belucid |
my line #'s changed because of debug statements |
2011-01-14 14:03:29 utc |
belucid |
it's this line: @dbs['schedules'].couch.on_change do |_, deleted, doc| |
2011-01-14 14:03:50 utc |
jmettraux |
what does couch say ? |
2011-01-14 14:04:04 utc |
jmettraux |
wait |
2011-01-14 14:04:14 utc |
jmettraux |
what are the exact symptoms ? |
2011-01-14 14:04:26 utc |
jmettraux |
do you start it and it immediately crashes ? |
2011-01-14 14:04:40 utc |
belucid |
yes... the participant immediately crashes |
2011-01-14 14:04:55 utc |
belucid |
let me bounce couch so I can get you a clean gist of what it says is going on |
2011-01-14 14:04:57 utc |
belucid |
1 sec. |
2011-01-14 14:04:58 utc |
jmettraux |
not possible |
2011-01-14 14:05:04 utc |
belucid |
lol |
2011-01-14 14:05:07 utc |
belucid |
not possible? |
2011-01-14 14:05:10 utc |
jmettraux |
the participant has nothing to do with that |
2011-01-14 14:05:14 utc |
belucid |
I'll show you |
2011-01-14 14:05:54 utc |
belucid |
here is my AMQP participant crashing on startup: |
2011-01-14 14:05:55 utc |
belucid |
https://gist.github.com/a295b676124a9b281d4f |
2011-01-14 14:06:26 utc |
jmettraux |
? |
2011-01-14 14:06:48 utc |
jmettraux |
the participant is not supposed to do long polls |
2011-01-14 14:07:27 utc |
jmettraux |
what you're showing me is participant registration followed by the worker attempting to watch for schedules |
2011-01-14 14:07:43 utc |
belucid |
hmmm |
2011-01-14 14:08:05 utc |
belucid |
I'm just running a regular ole daemon-kit ruote AMQP daemon |
2011-01-14 14:08:43 utc |
belucid |
what do I need to do to that to make it not watch for schedules? |
2011-01-14 14:08:50 utc |
belucid |
ohh |
2011-01-14 14:08:51 utc |
belucid |
hmm |
2011-01-14 14:08:53 utc |
belucid |
actually |
2011-01-14 14:08:53 utc |
belucid |
yes |
2011-01-14 14:08:55 utc |
belucid |
:-) |
2011-01-14 14:09:08 utc |
belucid |
that is my launcher I showed you |
2011-01-14 14:09:17 utc |
belucid |
it watches a raw rabbitmq queue |
2011-01-14 14:09:23 utc |
belucid |
and launches new workflows |
2011-01-14 14:09:36 utc |
belucid |
it also runs the worker |
2011-01-14 14:09:49 utc |
jmettraux |
the worker crashes |
2011-01-14 14:09:51 utc |
belucid |
my bad |
2011-01-14 14:09:52 utc |
belucid |
yes |
2011-01-14 14:11:36 utc |
belucid |
so |
2011-01-14 14:11:46 utc |
belucid |
from my couch output: |
2011-01-14 14:12:10 utc |
belucid |
https://gist.github.com/9ab035abe6a5f82fa6a6 |
2011-01-14 14:12:21 utc |
belucid |
it seems like the 2 long polls start up just fine |
2011-01-14 14:12:34 utc |
belucid |
but then the socket gets closed at some point |
2011-01-14 14:12:43 utc |
jmettraux |
what version of couch ? |
2011-01-14 14:12:55 utc |
belucid |
and that exception bubbles all the way up until it crashes the worker |
2011-01-14 14:12:58 utc |
belucid |
1.0.1 |
2011-01-14 14:13:02 utc |
jmettraux |
ok |
2011-01-14 14:13:51 utc |
jmettraux |
could you please turn the log output level to debug for couch and try again ? |
2011-01-14 14:15:17 utc |
belucid |
yup |
2011-01-14 14:16:39 utc |
jmettraux |
ruby 1.9.2 p136 ? |
2011-01-14 14:18:31 utc |
belucid |
p0 |
2011-01-14 14:19:37 utc |
jmettraux |
ok, launching the test suite with it |
2011-01-14 14:24:53 utc |
belucid |
here's couch debug output: https://gist.github.com/a11c04d723137e57d16a |
2011-01-14 14:24:55 utc |
jmettraux |
all green, a hundred so far |
2011-01-14 14:26:42 utc |
belucid |
which tests are you running? ruote-couch's? |
2011-01-14 14:27:19 utc |
jmettraux |
ruote's functional tests with ruote-couch as the storage |
2011-01-14 14:27:40 utc |
belucid |
k... |
2011-01-14 14:28:32 utc |
jmettraux |
preparing something for you to run |
2011-01-14 14:28:37 utc |
belucid |
k |
2011-01-14 14:32:33 utc |
jmettraux |
belucid: could you please try that on your system https://gist.github.com/779672 ? |
2011-01-14 14:32:38 utc |
belucid |
yup |
2011-01-14 14:39:24 utc |
belucid |
while I'm trying that |
2011-01-14 14:39:28 utc |
belucid |
take a look at this: |
2011-01-14 14:39:30 utc |
belucid |
https://gist.github.com/187447b456c9ab5a5ec2 |
2011-01-14 14:39:34 utc |
belucid |
seems to address the problem |
2011-01-14 14:39:41 utc |
belucid |
but curious about your thoughts on it |
2011-01-14 14:40:59 utc |
jmettraux |
looks nice |
2011-01-14 14:41:13 utc |
belucid |
k |
2011-01-14 14:41:17 utc |
jmettraux |
how does it behave when couch is down ? |
2011-01-14 14:41:23 utc |
belucid |
good ? |
2011-01-14 14:41:26 utc |
belucid |
I'll try it |
2011-01-14 14:41:35 utc |
jmettraux |
does it become a machinegun ? |
2011-01-14 14:41:54 utc |
belucid |
probably... |
2011-01-14 14:42:06 utc |
belucid |
need to limit the retry attempts I think |
2011-01-14 14:42:16 utc |
jmettraux |
ok |
2011-01-14 14:42:21 utc |
belucid |
so... the test you gave me seemed to run fine |
2011-01-14 14:42:28 utc |
jmettraux |
great |
2011-01-14 14:42:43 utc |
jmettraux |
it's weird that your thing is failing |
2011-01-14 14:42:45 utc |
belucid |
https://gist.github.com/a63ef52f509d02f08bad |
2011-01-14 14:42:54 utc |
jmettraux |
running fine |
2011-01-14 14:43:51 utc |
jmettraux |
I don't understand the part where you're running a remote participant together with a worker |
2011-01-14 14:44:06 utc |
jmettraux |
ruote-amqp remote participant are eventmachine based |
2011-01-14 14:44:18 utc |
jmettraux |
maybe some conflict |
2011-01-14 14:44:32 utc |
belucid |
well, I'm not... my bad |
2011-01-14 14:44:36 utc |
belucid |
I described it wrong |
2011-01-14 14:44:36 utc |
jmettraux |
still a remote participant is not meant to run side by side with a worker |
2011-01-14 14:44:39 utc |
jmettraux |
ok |
2011-01-14 14:45:22 utc |
belucid |
it's a worker and a launcher |
2011-01-14 14:45:27 utc |
belucid |
not a remote participant |
2011-01-14 14:46:18 utc |
belucid |
I'll show you what it is: |
2011-01-14 14:46:42 utc |
belucid |
https://gist.github.com/789e7de48d072ad8f9b3 |
2011-01-14 14:47:26 utc |
jmettraux |
ok |
2011-01-14 14:47:33 utc |
belucid |
it's watching a Rabbit queue for incoming messages to create new work items for |
2011-01-14 14:47:40 utc |
belucid |
and it's running the receiver |
2011-01-14 14:48:17 utc |
jmettraux |
looks alright |
2011-01-14 14:48:51 utc |
belucid |
yeah... so, not sure why that long poll socket ends up closing |
2011-01-14 14:49:00 utc |
belucid |
but with a safer retry, I think I'll be in good shape |
2011-01-14 14:49:12 utc |
jmettraux |
yes, this retry is good |
2011-01-14 14:49:25 utc |
jmettraux |
especially if it seems to work :-) |
2011-01-14 14:49:28 utc |
belucid |
while I have you, any chance you can publish the ruote-amqp 2.1.11 gem to rubygems? |
2011-01-14 14:49:44 utc |
belucid |
only 2.1.5 is out there |
2011-01-14 14:49:50 utc |
jmettraux |
ah true |
2011-01-14 14:50:08 utc |
belucid |
causing me no end of pain with bundle install on my different development and staging and QA and production and blah blah |
2011-01-14 14:50:09 utc |
jmettraux |
I'm working on 2.1.12 for the whole menagerie |
2011-01-14 14:50:32 utc |
belucid |
I was going to have to fork it and publish it just to make my pain go away |
2011-01-14 14:50:40 utc |
jmettraux |
really ? with bundler you can point to any commit on github, even in production |
2011-01-14 14:50:53 utc |
belucid |
hmmmmm |
2011-01-14 14:50:57 utc |
belucid |
alright |
2011-01-14 14:51:04 utc |
belucid |
that's what I need to do I guess |
2011-01-14 14:51:06 utc |
belucid |
good to know |
2011-01-14 14:51:15 utc |
belucid |
this is my first Rails 3, bundler project |
2011-01-14 14:51:26 utc |
jmettraux |
https://gist.github.com/779672 |
2011-01-14 14:51:30 utc |
belucid |
didn't realize it was so cool like that |
2011-01-14 14:51:48 utc |
jmettraux |
yes, it's very clever |
2011-01-14 14:51:55 utc |
belucid |
were you meaning to gist me something different? |
2011-01-14 14:52:00 utc |
belucid |
that was the test code |
2011-01-14 14:52:09 utc |
jmettraux |
ah sorry |
2011-01-14 14:52:13 utc |
belucid |
no worries |
2011-01-14 14:52:15 utc |
jmettraux |
http://gembundler.com/git.html |
2011-01-14 14:52:31 utc |
belucid |
nice |
2011-01-14 14:52:33 utc |
belucid |
ok |
2011-01-14 14:52:38 utc |
belucid |
going with that then |
2011-01-14 14:52:48 utc |
belucid |
consider my publish 2.1.11 request satisfied! |
2011-01-14 14:52:50 utc |
belucid |
:-) |
2011-01-14 14:52:56 utc |
jmettraux |
it's deadly acurate |
2011-01-14 14:53:23 utc |
belucid |
thanks for all the help... if I robust up the retry, is that something you'd be willing to pull into ruote-couch? |
2011-01-14 14:55:42 utc |
jmettraux |
yes, I'll double-check it |
2011-01-14 14:55:47 utc |
jmettraux |
and merge it |
2011-01-14 14:56:05 utc |
jmettraux |
many thanks |
2011-01-14 14:56:15 utc |
belucid |
ok... I'll get it right when couch is down or goes down, then I'll issue a request to you |
2011-01-14 14:56:19 utc |
belucid |
no, many thanks to you |
2011-01-14 14:56:24 utc |
belucid |
this has been most helpful |
2011-01-14 14:56:54 utc |
jmettraux |
great |
2011-01-14 14:57:56 utc |
belucid |
you'll soon have bragging rights that ruote powers the hottest new startup on the East coast... the one that Google and Facebook are having a billion dollar bidding war over |
2011-01-14 14:58:02 utc |
belucid |
or... something like that :-) |
2011-01-14 14:58:02 utc |
belucid |
lol |
2011-01-14 14:58:23 utc |
jmettraux |
well, that's a lot of hard work for you before that ;-) |
2011-01-14 14:58:40 utc |
jmettraux |
and it's ruby, not erlang |
2011-01-14 15:00:31 utc |
belucid |
yeah... not really, but like I said last week, ruote really is the linchpin in our backend right now, so I'm much obliged to the great work you've done here |
2011-01-14 15:00:53 utc |
belucid |
If it weren't for ruote we'd be pulling in some Java monstrosity |
2011-01-14 15:00:54 utc |
jmettraux |
:-) please do your boest |
2011-01-14 15:00:56 utc |
jmettraux |
best |
2011-01-14 15:01:04 utc |
belucid |
and the peasants would be weeping |