| 2010-04-08 01:40:17 utc | LogicallySound_ | Hi |
| 2010-04-08 01:40:39 utc | jmettraux | Hi Enrico, how are you doing ? |
| 2010-04-08 01:40:59 utc | LogicallySound | There we go. =) |
| 2010-04-08 01:42:48 utc | LogicallySound | So far so good on our launch. |
| 2010-04-08 01:43:11 utc | LogicallySound | Though I really want to put our app on Ruote 2.1 with RuoteKit. |
| 2010-04-08 01:43:25 utc | jmettraux | me too ;) |
| 2010-04-08 01:44:51 utc | jmettraux | congrats on the launch anyway ! |
| 2010-04-08 01:45:22 utc | LogicallySound | Thanks. |
| 2010-04-08 01:48:11 utc | LogicallySound | I got tosch's ruote_on_rails bit running on Ruby 1.9 and Rails 3, but haven't gone deeper yet. |
| 2010-04-08 01:50:19 utc | jmettraux | I have two applications in dev with the ruote-kit and rails3, one 1.8.7 and one 1.9.1, so far so good |
| 2010-04-08 01:57:16 utc | LogicallySound | Big thing I've been thinking of is how to work with workitems through the Rails application. |
| 2010-04-08 01:57:27 utc | LogicallySound | RuoteKit's interface isn't, as far as I can tell, ActiveResource-compatible. |
| 2010-04-08 01:58:27 utc | jmettraux | that's how I've been doing it : http://gist.github.com/359699 "activewise" |
| 2010-04-08 01:58:57 utc | jmettraux | I don't care too much about ActiveResource, it's far from RESTfulness, though it's handy |
| 2010-04-08 01:59:03 utc | LogicallySound | Yeah, for Rails 3 that would work rather well. |
| 2010-04-08 01:59:14 utc | LogicallySound | For Rails 2.3, not as much. |
| 2010-04-08 01:59:26 utc | jmettraux | :( |
| 2010-04-08 02:01:26 utc | LogicallySound | The combination of DRb ruote_plugin and Validatable kinda works for that, but is very brittle. |
| 2010-04-08 02:02:35 utc | jmettraux | with 2.1 you kind of can communicate with the "engine system" via the storage |
| 2010-04-08 02:03:11 utc | jmettraux | the Engine instane becomes some kind of dashboard, showing levels and offering a few levers |
| 2010-04-08 02:03:24 utc | jmettraux | instance |
| 2010-04-08 02:05:33 utc | LogicallySound | So the workers are threads, right? |
| 2010-04-08 02:06:01 utc | jmettraux | they can be in other processes |
| 2010-04-08 02:06:25 utc | jmettraux | the most simple is to give a thread to a unique worker |
| 2010-04-08 02:06:42 utc | LogicallySound | So multiple workers interacting with one engine which in turn interacts with one storage? |
| 2010-04-08 02:07:38 utc | jmettraux | yes |
| 2010-04-08 02:07:44 utc | jmettraux | 1 unique storage in the middle |
| 2010-04-08 02:08:09 utc | LogicallySound | Do the workers interact with the storage? |
| 2010-04-08 02:08:14 utc | jmettraux | work in progress : http://ruote.rubyforge.org/configuration.html |
| 2010-04-08 02:08:20 utc | jmettraux | yes, they have to |
| 2010-04-08 02:08:37 utc | jmettraux | it's the central "message board" |
| 2010-04-08 02:09:18 utc | LogicallySound | Hmmm... so really the engine does very little now. |
| 2010-04-08 02:12:18 utc | LogicallySound | Looking at the storages available... Ruote::Redis::RedisStorage sounds pretty awesome. |
| 2010-04-08 02:12:38 utc | jmettraux | :) |
| 2010-04-08 02:13:23 utc | LogicallySound | And... composite storage? |
| 2010-04-08 02:13:30 utc | LogicallySound | =) |
| 2010-04-08 02:13:56 utc | jmettraux | redis has lots of advantages, you just have to have memory |
| 2010-04-08 02:14:29 utc | jmettraux | with the upcoming redis virtual memory, the constraint will boil down to "have memory to hold the whole key set" |
| 2010-04-08 02:14:37 utc | jmettraux | "have enough" |
| 2010-04-08 02:16:10 utc | jmettraux | composite storage could fun for scenarii where you put workitems in CouchDB and msgs/schedules/... (things that have to be fast) in Redis |
| 2010-04-08 02:16:52 utc | jmettraux | well, as soon as you have human participants, speed is not so important |
| 2010-04-08 02:18:10 utc | LogicallySound | Yeah. |
| 2010-04-08 02:18:25 utc | LogicallySound | Except if you're running a lot of process instances, I guess? |
| 2010-04-08 02:19:13 utc | LogicallySound | (and much more complex processes where a lot of expressions are being stored) |
| 2010-04-08 02:19:21 utc | jmettraux | it's depends on their respective activity, but yes |
| 2010-04-08 02:20:23 utc | LogicallySound | But at that scale, everything becomes much more complex. |
| 2010-04-08 02:23:45 utc | LogicallySound | I'm still interested in seeing an ActiveRecord storage, but I haven't had time to look at the one that Kenneth was working on before. |
| 2010-04-08 02:24:29 utc | jmettraux | Kenneth hasn't had much time for open source these days |
| 2010-04-08 02:24:36 utc | LogicallySound | Also, I see some skeletal documentation for process testing. |
| 2010-04-08 02:27:11 utc | jmettraux | sorry, LimeChat crash |
| 2010-04-08 02:29:32 utc | LogicallySound | It's OK. |
| 2010-04-08 02:29:44 utc | LogicallySound | I saw some skeletal documentation for process testing as well. |
| 2010-04-08 02:30:30 utc | jmettraux | yes, it's coming along |
| 2010-04-08 02:32:48 utc | LogicallySound | That yields another interesting idea: implementing Cucumber step definitions (or some way to have Cucumber drive for acceptance testing) |
| 2010-04-08 02:34:24 utc | jmettraux | announced this a few weeks ago : http://github.com/jmettraux/ruote-cukes maybe that's of value to you |
| 2010-04-08 02:35:50 utc | LogicallySound | Slick. =) |
| 2010-04-08 02:41:29 utc | LogicallySound | So much neat stuff coming out of the ruote ecosystem. |
| 2010-04-08 02:42:24 utc | jmettraux | :) |
| 2010-04-08 02:51:44 utc | LogicallySound | I tend to use a lot of custom participants that interact with the Rails application and wonder if that's a sort of anti-pattern. =P |
| 2010-04-08 02:52:06 utc | jmettraux | you should blog that ;) |
| 2010-04-08 02:53:12 utc | jmettraux | I'm experimenting with ?workitem_id=xxx |
| 2010-04-08 02:53:28 utc | LogicallySound | ?? |
| 2010-04-08 02:53:30 utc | LogicallySound | Elaborate? |
| 2010-04-08 02:53:53 utc | jmettraux | workitems forms linking to resource edition with correlation |
| 2010-04-08 02:54:12 utc | jmettraux | I have a workitem for "adding motherboards to a new batch" |
| 2010-04-08 02:54:38 utc | jmettraux | the workitem form links to /boards/new?workitem_id=xxx |
| 2010-04-08 02:54:51 utc | LogicallySound | Oh, so giving the workitem along with the actual resource itself and letting the controllers submit that to the engine? |
| 2010-04-08 02:55:05 utc | jmettraux | when the edition of the new board is over, it gets back (redirect) to the workitem/edit |
| 2010-04-08 02:55:13 utc | jmettraux | yes, that is possible too |
| 2010-04-08 02:55:33 utc | jmettraux | "I'm doing this in that context" |
| 2010-04-08 02:55:42 utc | jmettraux | it's experimental but works well |
| 2010-04-08 02:56:19 utc | jmettraux | in the context of a process I'm changing the state of multiple objects |
| 2010-04-08 02:56:27 utc | jmettraux | of course, it works with 1 object as well |
| 2010-04-08 02:56:29 utc | LogicallySound | I've thought about that, because I've found that the "open-and-submit-task-items" model is not really doing it for our staff. |
| 2010-04-08 02:57:13 utc | jmettraux | ACTION listens carefully |
| 2010-04-08 02:57:39 utc | LogicallySound | Well, the task items idea is separated from the actual process itself. |
| 2010-04-08 02:57:56 utc | LogicallySound | Like, submitting a task item for accepting required documents for an application? |
| 2010-04-08 02:58:53 utc | LogicallySound | Why not submit the workitem in the background when the documents are being uploaded to the system? |
| 2010-04-08 02:59:30 utc | jmettraux | exactly |
| 2010-04-08 03:00:22 utc | LogicallySound | But that would require some much more clever integration. |
| 2010-04-08 03:00:47 utc | LogicallySound | You have the engine, you can look up the process that's running, you can query for the appropriate task item... |
| 2010-04-08 03:01:07 utc | LogicallySound | Errm.. workitem. |
| 2010-04-08 03:01:08 utc | jmettraux | yes |
| 2010-04-08 03:01:17 utc | LogicallySound | (Also, confusing vocabulary) |
| 2010-04-08 03:01:23 utc | jmettraux | no worries |
| 2010-04-08 03:01:54 utc | jmettraux | many possibilities |
| 2010-04-08 03:01:58 utc | LogicallySound | Yeah. |
| 2010-04-08 03:02:09 utc | LogicallySound | And exploring them could make some great blog and presentation topics. |
| 2010-04-08 03:02:27 utc | jmettraux | yes |
| 2010-04-08 03:02:38 utc | jmettraux | you're not limited to ruote, it's just a tool |
| 2010-04-08 03:02:54 utc | LogicallySound | but a very flexible one. |
| 2010-04-08 03:03:20 utc | jmettraux | thanks ! |
| 2010-04-08 03:05:01 utc | LogicallySound | And it seems like state machine and process are still interchangeable in Rails dev circles. |
| 2010-04-08 03:05:20 utc | jmettraux | aaah |
| 2010-04-08 03:05:29 utc | jmettraux | that's an epic subject |
| 2010-04-08 03:05:34 utc | jmettraux | what's your take on it ? |
| 2010-04-08 03:05:53 utc | LogicallySound | Point in case: http://github.com/ryan-allen/workflow |
| 2010-04-08 03:06:36 utc | LogicallySound | The registration processes I've implemented couldn't have been done with a state machine alone. |
| 2010-04-08 03:06:57 utc | LogicallySound | Mostly because of the scheduling stuff. |
| 2010-04-08 03:07:07 utc | LogicallySound | (Timeouts, waits, and so on) |
| 2010-04-08 03:07:32 utc | jmettraux | spot on : http://blog.codesherpas.com/on_the_path/2010/03/accounting-for-time-in-a-statebased-workflow.html |
| 2010-04-08 03:08:30 utc | jmettraux | ACTION thinks that maybe he will lose Enrico |
| 2010-04-08 03:08:50 utc | LogicallySound | That separation between process and underlying object state is something I learned in the process (ha ha) of implementing the registration processes in our app. |
| 2010-04-08 03:09:31 utc | LogicallySound | I was initially storing a lot of stuff in process-level variables. |
| 2010-04-08 03:11:22 utc | jmettraux | sorry you had to learn that the hard way, I'm learning it every day myself |
| 2010-04-08 03:11:35 utc | LogicallySound | The hard way is one of the best ways to learn something. =) |
| 2010-04-08 03:11:53 utc | jmettraux | :) |
| 2010-04-08 03:14:18 utc | LogicallySound | Even state_machine + cron/delayed_job/whenever doesn't quite match what a well-designed ruote process definition can capture. |
| 2010-04-08 03:19:39 utc | LogicallySound | But I haven't explored it enough to say with 100% confidence that there aren't better/equal alternatives out there. |
| 2010-04-08 03:20:06 utc | jmettraux | I like those discussions, I want to keep ruote lean, I also want to avoid people shooting themselves in the foot with ruote |
| 2010-04-08 03:21:29 utc | LogicallySound | Like many things, there are right and wrong ways to use it based on the situation/problem. |
| 2010-04-08 03:25:23 utc | jmettraux | I'd love to implement a "business days" module for ruote |
| 2010-04-08 03:25:40 utc | jmettraux | to make the timeouts and co more "business friendly" |
| 2010-04-08 03:26:09 utc | jmettraux | toto :task => 'maw the lawn', :within => '3 business days' |
| 2010-04-08 03:26:26 utc | LogicallySound | I was lucky not to have to deal with business days. |
| 2010-04-08 03:28:56 utc | LogicallySound | :within? |
| 2010-04-08 03:29:03 utc | jmettraux | :timeout |
| 2010-04-08 03:29:09 utc | LogicallySound | Interesting formulation. |
| 2010-04-08 03:29:10 utc | jmettraux | just spat it out like this |
| 2010-04-08 03:29:32 utc | LogicallySound | Like syntactic sugar for certain uses of the timeout expression... |
| 2010-04-08 03:30:04 utc | LogicallySound | sequence :within => '5 business days' do participant1; participant2; end |
| 2010-04-08 03:31:39 utc | LogicallySound | Well, it's about time I headed to bed. |
| 2010-04-08 03:31:55 utc | LogicallySound | Nice chatting with you though. I usually don't catch you on #ruote. =) |
| 2010-04-08 03:32:28 utc | jmettraux | was a pleasure ! |
| 2010-04-08 12:14:03 utc | irfn | Hi all |
| 2010-04-08 12:14:09 utc | jmettraux | Hi ! |
| 2010-04-08 12:14:35 utc | irfn | I was trying out ruote-dm support |
| 2010-04-08 12:15:40 utc | irfn | the Readme doesnt talk abt database setup |
| 2010-04-08 12:15:53 utc | irfn | via automigrate etc |
| 2010-04-08 12:16:21 utc | jmettraux | ACTION checking out ruote-dm |
| 2010-04-08 12:17:43 utc | jmettraux | Ruote::Dm::Document.auto_migrate! |
| 2010-04-08 12:17:49 utc | irfn | yeah |
| 2010-04-08 12:17:57 utc | jmettraux | I will add that to the readme right now |
| 2010-04-08 12:17:58 utc | irfn | i get this error Specified key was too long; max key length is 767 bytes |
| 2010-04-08 12:18:27 utc | irfn | i was assuming that i missed out some step. |
| 2010-04-08 12:18:58 utc | jmettraux | :( It should be OK after that step |
| 2010-04-08 12:19:06 utc | irfn | All i have is a vanilla Rails app(2.2.2) |
| 2010-04-08 12:19:16 utc | irfn | dont ask why i am using 2.2.2 :( |
| 2010-04-08 12:19:46 utc | jmettraux | What database is it ? |
| 2010-04-08 12:19:46 utc | irfn | i have Ruote and deps and datamapper deps etc |
| 2010-04-08 12:19:50 utc | irfn | mysql |
| 2010-04-08 12:20:40 utc | jmettraux | I guess I'll have to reduce the key size in lib/ruote/dm/storage.rb |
| 2010-04-08 12:21:14 utc | irfn | hold on |
| 2010-04-08 12:21:28 utc | irfn | i got the log trace |
| 2010-04-08 12:21:30 utc | jmettraux | it's at 2048 for now |
| 2010-04-08 12:21:43 utc | irfn | oh |
| 2010-04-08 12:21:57 utc | irfn | what "key" is too large |
| 2010-04-08 12:22:18 utc | jmettraux | the :ide key |
| 2010-04-08 12:22:23 utc | jmettraux | probably |
| 2010-04-08 12:22:59 utc | jmettraux | http://github.com/jmettraux/ruote-dm/blob/ruote2.1/lib/ruote/dm/storage.rb#L36 |
| 2010-04-08 12:23:35 utc | irfn | oh ok |
| 2010-04-08 12:23:43 utc | irfn | what would this map to my setup |
| 2010-04-08 12:24:00 utc | irfn | i can change my code to suit this key size |
| 2010-04-08 12:24:02 utc | jmettraux | MySQL is widespread I guess that shortening it to a length of 700 would be OK |
| 2010-04-08 12:24:25 utc | jmettraux | is the error a MySQL limitation ? |
| 2010-04-08 12:24:50 utc | irfn | yeah i need to use mysql |
| 2010-04-08 12:24:54 utc | irfn | if possible |
| 2010-04-08 12:25:29 utc | irfn | should locally change this for now |
| 2010-04-08 12:25:33 utc | irfn | the key size |
| 2010-04-08 12:26:26 utc | jmettraux | pushed on my side http://github.com/jmettraux/ruote-dm/commit/c73f1da6c0ac1974b458328c7951c2aef2c10f81 |
| 2010-04-08 12:27:48 utc | jmettraux | thanks for reporting ! |
| 2010-04-08 12:30:27 utc | irfn | thanks! ill test out the change. |
| 2010-04-08 12:31:57 utc | jmettraux | you're welcome |
| 2010-04-08 12:43:27 utc | irfn | jmettraux just tested this |
| 2010-04-08 12:43:51 utc | irfn | and somehow its still not working for 700 |
| 2010-04-08 12:44:04 utc | jmettraux | what are the symptoms ? |
| 2010-04-08 12:44:23 utc | irfn | i tweaked this and found that it works for max of :length => 255, |
| 2010-04-08 12:44:29 utc | irfn | for me |
| 2010-04-08 12:44:55 utc | irfn | any idea if this is related to any mysql setting etc |
| 2010-04-08 12:44:58 utc | jmettraux | ah ok, what kind of storage engine does your MySQL use ? InnoDB ? |
| 2010-04-08 12:45:18 utc | irfn | Yes i am using InnoDB |
| 2010-04-08 12:45:22 utc | jmettraux | 2048 works fine with PostgreSQL |
| 2010-04-08 12:45:28 utc | irfn | oh ok |
| 2010-04-08 12:45:49 utc | jmettraux | http://bugs.mysql.com/bug.php?id=32915 says "The InnodB maximum key length is 767 bytes. " |
| 2010-04-08 12:45:59 utc | irfn | true |
| 2010-04-08 12:46:04 utc | irfn | even i get that error |
| 2010-04-08 12:46:09 utc | jmettraux | what version of MySQL do you use ? |
| 2010-04-08 12:46:20 utc | irfn | but to get it working i had to change it to as low as 255 |
| 2010-04-08 12:46:36 utc | irfn | even 256 doesnt work |
| 2010-04-08 12:46:47 utc | jmettraux | 2^8-1 |
| 2010-04-08 12:46:50 utc | irfn | is there some bytes conversion? |
| 2010-04-08 12:46:57 utc | irfn | ah |
| 2010-04-08 12:47:08 utc | jmettraux | 0 to 255 |
| 2010-04-08 12:47:47 utc | irfn | i hope this doesnt change between mysql versions |
| 2010-04-08 12:48:16 utc | jmettraux | 255 sounds low enough |
| 2010-04-08 12:48:32 utc | irfn | yeah |
| 2010-04-08 12:49:14 utc | irfn | im going down mysql path and soon enough should find out all the possible errors :P |
| 2010-04-08 12:49:30 utc | jmettraux | great |
| 2010-04-08 12:49:44 utc | irfn | thanks again for the help |
| 2010-04-08 12:49:48 utc | jmettraux | :) |
| 2010-04-08 12:50:30 utc | irfn | what workflow storage would you recommend for a large distributed system |
| 2010-04-08 12:50:41 utc | jmettraux | it depends |
| 2010-04-08 12:50:50 utc | irfn | i am using mysql for now |
| 2010-04-08 12:51:15 utc | jmettraux | http://ruote.rubyforge.org/configuration.html#storage |
| 2010-04-08 12:51:37 utc | jmettraux | this week I have been working on allowing more than 1 ruote worker with ruote-dm |
| 2010-04-08 12:52:00 utc | jmettraux | hardening against conflicts between workers, it's getting better |
| 2010-04-08 12:52:19 utc | jmettraux | but ruote-dm 2.1.9 is thus limited to 1 worker |
| 2010-04-08 12:52:34 utc | jmettraux | it really depends on what kind of system you are building |
| 2010-04-08 12:52:59 utc | jmettraux | are there human participants ? Or is it pure "automatic" participants ? |
| 2010-04-08 12:53:19 utc | jmettraux | so, "it depends" |
| 2010-04-08 12:53:28 utc | irfn | 90 % of the time the particiants are services |
| 2010-04-08 12:54:04 utc | jmettraux | are there processes that have 0 human intervention / participants ? |
| 2010-04-08 12:54:16 utc | jmettraux | is speed a top priority ? |
| 2010-04-08 12:54:39 utc | jmettraux | these are some of the determining questions |
| 2010-04-08 12:54:52 utc | irfn | since this is a long running thing |
| 2010-04-08 12:55:01 utc | jmettraux | for now you should get used to the system with 1 worker and ruote-dm |
| 2010-04-08 12:55:03 utc | irfn | i guess speed is not that important |
| 2010-04-08 12:55:16 utc | irfn | ok |
| 2010-04-08 12:55:19 utc | jmettraux | after some time you'll have enough experience to decide on the right settings |
| 2010-04-08 12:55:42 utc | irfn | thats sounds right |
| 2010-04-08 12:56:10 utc | irfn | hey thanks |
| 2010-04-08 12:56:15 utc | irfn | for all the help |
| 2010-04-08 12:56:17 utc | jmettraux | :) you're welcome |
| 2010-04-08 12:56:27 utc | irfn | i gotta go into a really long meeting now :D |
| 2010-04-08 12:56:33 utc | irfn | bye |
| 2010-04-08 12:56:34 utc | jmettraux | ouch |
| 2010-04-08 12:56:39 utc | jmettraux | bye ! |
| 2010-04-08 17:17:35 utc | tomcopeland | Hello there. Does anyone know if there's a tokyo tyrant channel? I tried #tokyotyrant, but no luck. |
| 2010-04-08 17:30:34 utc | wayneeseguin | tomcopeland: alas not that I'm aware of... The author is a black hole for communications and such... This channel is closed to it really. |
| 2010-04-08 17:31:08 utc | tomcopeland | wayneeseguin: ah well, ok, thanks for the info |
| 2010-04-08 17:31:26 utc | tomcopeland | one does what one can |
| 2010-04-08 17:31:43 utc | tomcopeland | incidentally, rvm is very cool, nice work! |
| 2010-04-08 18:12:44 utc | wayneeseguin | tomcopeland: Very good to hear :) Thanks! |
| 2010-04-08 23:55:06 utc | jmettraux | wayneeseguin: many thanks for helping out tomcopeland yesterday/today |