Show enters and exits. Hide enters and exits.
| 06:53:39 | dbussink | good morning :) |
| 06:53:45 | dbussink | to break the silence ;) |
| 14:05:47 | flujan | hi guys. I am looking for a alternative to create binaries from my ruby scripts. |
| 14:05:52 | flujan | rubinius can help me? |
| 14:11:10 | dbussink | flujan: not really, we had an archive format, but that has been neglected for a while |
| 14:11:25 | dbussink | flujan: and it's not native code that is generated anyway |
| 14:11:32 | dbussink | if that is specifically what you're interested in |
| 14:12:29 | flujan | dbussink: I am insterested in obsfuscate my ruby code. I wanna make it hard to other people read and copy my code. |
| 14:12:59 | flujan | I am installing my system on many customers... I fear that they will simple copy my app in other machines. |
| 14:13:40 | flujan | I created some "anti-piracy" policies... But one can easily read it inside a ruby code. Creating binaries will make it difficult. :) |
| 14:14:25 | cremes | flujan: the closest you can probably get is to use JRuby and use jrubyc to compile all of your ruby code to java bytecode |
| 14:14:36 | cremes | check out the wiki at jruby.org |
| 14:15:15 | flujan | cremes: hate java... lol |
| 14:15:41 | cremes | flujan: don't be silly; using JRuby doesn't mean you are using java; you are using the JVM which runs LOTS of languages |
| 14:15:55 | flujan | cremes: do you have a roadmap to add this feature to rubinius? I just find this project amazing . |
| 14:16:54 | cremes | i'm not aware of this feature being on the roadmap yet |
| 14:17:02 | cremes | i think there are a few higher priorities coming first |
| 14:17:21 | cremes | such as 1.9 syntax, remove GIL, better C extension compatibility, improved perf, etc |
| 14:18:14 | flujan | so rubinius is about bringing more performance, running on machine code the ruby code. Another interpreter right? |
| 14:19:08 | dbussink | rubinius is an interpreter, but it also has a jit |
| 14:20:02 | dbussink | flujan: but i'd suggest going the jruby way then too |
| 14:20:25 | flujan | dbussink: ok, thanks for the advice. I will check the jrubyc. :) |
| 14:21:39 | cremes | flujan: use the right tool for the job; right now what you want to do is easily handled by jruby |
| 14:21:54 | dbussink | but then you still need to obfuscate the compiled class files |
| 14:22:36 | flujan | dbussink: yeap... this is the problem... :( I would love to have a ruby tool that just create binaries... the power of ruby the performance and obfuscation of C. :D |
| 14:23:50 | dbussink | nah, the performance would be worse that what jruby / rubinius can obtain by using a jit |
| 14:24:08 | dbussink | because runtime knowledge allows for much more aggressive optimizations |
| 14:24:22 | dbussink | compiling to native code is not a holy performance grail |
| 14:25:42 | Zoxc | but it is! |
| 14:25:54 | cremes | dbussink: i don't think there is any way to turn the jruby class files back into ruby, only into java which wouldn't be very helpful |
| 14:26:59 | dbussink | cremes: well, it depends on what a person would want to do with it |
| 14:27:23 | dbussink | and obfuscation won't hold back people who really want to do something |
| 14:27:32 | cremes | of course not |
| 14:27:53 | cremes | i think flujan wanted to prevent easy copying between machines; obfuscation doesn't help with that at all |
| 14:28:06 | cremes | none of the ruby runtimes can prevent copying |
| 14:30:35 | flujan | cremes: but I created some policies that ensure that one script will run and only run on that machine... I am using the UUID of the machine. ;) |
| 14:31:07 | dbussink | well, you can copy that of course :P |
| 14:33:10 | flujan | dbussink: nothing is perfect lol. :) |
| 14:33:37 | dbussink | true, but it seems an easy circumvention that makes me wonder whether obfuscation is worth it |
| 14:33:49 | dbussink | since this is the easiest way to work around it, even without obfuscation |
| 14:34:28 | cremes | flujan: make your customer understand your licensing terms; give them the option of a "site license" for a bit more money |
| 14:34:37 | cremes | then you don't need to care about how much they copy the code around |
| 14:46:06 | flujan | cremes: yeap. I will think about it... thanks again guys. |
| 15:50:06 | brixen | hello everybody! |
| 15:50:24 | brixen | cremes: the obfuscation of java class files is no greater than .rbc files |
| 15:50:55 | brixen | and it would be trivial to write an encryption layer on top of the marshalling code |
| 15:51:15 | brixen | that uses a specific app key |
| 15:51:26 | brixen | you'd need to compile the app for the that key |
| 15:51:40 | brixen | but pragprog build you a custom pdf, so that's certainly doable |
| 15:51:56 | cremes | interesting thought |
| 15:52:16 | brixen | also, if someone wanted to use .rba files to distribute rbx apps, it'd be trivial to hook that back up |
| 15:52:25 | cremes | is there a decompiler that takes rbc and produces ruby from it? |
| 15:52:33 | brixen | it could be done all in ruby without even changing the vm |
| 15:52:43 | brixen | there is no decompiler now |
| 15:53:03 | brixen | but writing one isn't hard, just like it's not hard to get java back from a class file |
| 15:53:48 | cremes | right, but the java you get back from a ruby class file can't be turned back into ruby; i've looked and it is *ugly* code |
| 15:54:20 | cremes | regardless, the OP had (IMHO) an odd requirement |
| 15:54:41 | cremes | i wasn't aware that layering encryption on top of these things would be simple |
| 15:54:48 | brixen | ah yes, I see your point |
| 15:55:10 | brixen | the additional factor of converting ruby to java is a higher obfuscation index |
| 15:55:31 | cremes | on another topic, i saw you dropped some stats on the new #pack code; looks good so far! |
| 15:55:38 | brixen | yeah! |
| 15:55:48 | brixen | a couple hurdles but I'll start adding cases today |
| 15:55:53 | cremes | is that your main focus this week? |
| 15:56:03 | brixen | need to chat with evan about the need to call Ruby methods from the C++ code |
| 15:56:10 | brixen | which has GC implications |
| 15:56:18 | evan | allo. |
| 15:56:21 | brixen | yeah, pretty much pack/unpack this week |
| 15:56:23 | brixen | evan! |
| 15:56:40 | cremes | excellent... |
| 15:56:55 | brixen | evan: so, I need to call eg #to_int from the pack code |
| 15:57:04 | brixen | the only reference I should have is the array itself |
| 15:57:25 | brixen | since the actual objects would be processed and not stay on the C stack |
| 15:58:06 | evan | ok |
| 15:58:09 | evan | then it's easy |
| 15:58:13 | evan | just use OnStack<> |
| 15:58:17 | brixen | cool |
| 15:58:28 | brixen | I just wanted to make sure you were ok with the approach |
| 15:58:35 | evan | you can't pass this to OnStack though |
| 15:58:39 | brixen | I can't think of any other way to deal with coercion |
| 15:58:59 | evan | so you have to assign it to a local called self, then use self instead of this. |
| 15:59:00 | brixen | you mean 'this' right? |
| 15:59:03 | brixen | yeah |
| 15:59:07 | brixen | like the code we looked at |
| 15:59:10 | evan | yeah, 'this' |
| 15:59:12 | brixen | k |
| 15:59:14 | evan | yep |
| 15:59:33 | brixen | initial results look really good |
| 15:59:43 | brixen | all the C specs pass except the ones that need coercion |
| 16:00:19 | brixen | btw, I'm not implementing crazy ass shit like [1,2,3].pack("C*_*-*!-*_") |
| 16:00:40 | brixen | basically, I'm not implementing anything that does not have an effect on the output |
| 16:01:47 | brixen | evan: I saw shane yesterday |
| 16:02:05 | brixen | rode out to sauvie island where they were picking some berries |
| 16:02:07 | brixen | was fun |
| 16:03:42 | evan | oh nice! |
| 16:04:03 | evan | brixen: wtf does that crazy sequence do? |
| 16:04:38 | brixen | C* |
| 16:05:03 | evan | O_o |
| 16:05:06 | brixen | and C*** => C** => C* etc |
| 16:05:08 | evan | is _* a noop? |
| 16:05:17 | brixen | mri is just such ad hoc'ery |
| 16:05:44 | brixen | for some reason, the parsing after a * just consumes stuff up to a point |
| 16:06:01 | brixen | eg, the _ can follow a * when it should not |
| 16:06:09 | brixen | and a - seems to be a no-op |
| 16:08:14 | evan | ug. |
| 16:08:54 | brixen | yeah, this will just be the strict, operational subset of the language that MRI accepts |
| 16:12:44 | evan | sounds good. |
| 16:41:36 | cremes | brixen: is this pack code on a public branch yet or just in one of your private branches? i'm always interested in ragel grammars. |
| 16:42:09 | brixen | cremes: http://github.com/brixen/rapa |
| 16:42:30 | brixen | but that's just getting started |
| 18:47:46 | evan | dbussink: Go Holland! |
| 18:49:25 | slava | hi evan |
| 18:50:06 | evan | hi hi |
| 19:42:21 | Enl | back |
| 19:42:44 | Enl | back |
| 19:50:45 | pcapriotti | hi all, is this patch ok? http://pastie.org/1033210 |
| 20:08:56 | brixen | pcapriotti: that should be ok |
| 20:09:07 | brixen | pcapriotti: best thing to do with a patch is put it in a ticket |
| 20:09:18 | brixen | so it's not overlooked |
| 20:10:46 | pcapriotti | brixen: ok |
| 20:11:13 | pcapriotti | brixen: want me to do it for this one? |
| 20:13:01 | brixen | pcapriotti: sure, I'm buried in other stuff atm |
| 20:20:07 | evan | it's going to be crazy in amsterdam tonight. |
| 20:20:11 | evan | ie, now. |
| 20:24:57 | evan | dbussink: I hope you're out drinking! |
| 22:35:58 | brixen | |--|: why not |-*-| ? :) |
| 22:36:28 | evan | he's not yet a tie fighter I guess. |
| 22:36:31 | brixen | heh |
| 22:36:36 | brixen | that's what I was wondering |
| 22:36:44 | brixen | ahh |
| 22:36:47 | brixen | interesting |
| 22:42:24 | evan | I just put the sort of 3rd coat of pant on the wall we started yesterday |
| 22:43:28 | brixen | what color? |
| 22:43:35 | evan | silver skate |
| 22:43:40 | brixen | nice |
| 22:43:46 | evan | i'll show ya |
| 22:43:53 | brixen | you should have a black board wall :) |
| 22:44:02 | brixen | loves chalk and black board |
| 22:44:33 | evan | http://www.dunnedwards.com/retail/content.asp?Category=0&Content=156&colorid=DE+5801 |
| 22:44:40 | evan | we've got a white board wall instead :) |
| 22:44:56 | brixen | cool! |
| 22:46:13 | evan | we're going to get some stensil and paint #7590A1 somewher on it too |
| 22:46:42 | evan | :) |
| 22:46:55 | brixen | nice |
| 22:48:05 | evan | gotta my webinar |
| 22:48:10 | evan | need to work on it |
| 22:48:15 | brixen | oh yeah! |
| 22:48:21 | brixen | that's tomorrow huh |
| 22:49:06 | brixen | hm pdx.rb tonight |
| 22:49:11 | brixen | man, they really sneak up on me |
| 22:49:21 | brixen | being the first tues of every month and all |
| 22:49:43 | evan | hows pack coming? |
| 22:50:17 | brixen | all the C specs pass! |
| 22:50:27 | brixen | including the coercion ones |
| 22:50:39 | brixen | starting to generalize the grammar a bit now |
| 22:50:48 | brixen | like the 5 different interpretations of * |
| 22:50:51 | brixen | <roll eyes> |
| 22:52:39 | evan | hah |
| 22:52:40 | evan | yeah |
| 22:54:54 | brixen | hmm, someone wants to write specs for SCRIPT_LINES__ |
| 22:55:02 | brixen | show of hands who knows what that is |
| 22:58:26 | brixen | ok, I've registered for the webinar |
| 22:58:49 | brixen | and I'm envious that my glam shot is nowhere near as glamorous :) |
| 22:59:44 | evan | hah |
| 22:59:53 | evan | i know what SCRIPT_LINES__ is. |
| 23:00:01 | brixen | yeah |
| 23:00:05 | evan | it's so long on the list of things to support i'll never get to it. |
| 23:00:11 | evan | s/long/low |
| 23:00:12 | brixen | exactly |
| 23:00:18 | evan | man, i need my afternoon coffee |
| 23:19:28 | goyox86 | hi all! |
| 23:19:48 | goyox86 | evan: what time is your webinar? |
| 23:20:07 | evan | 10am |
| 23:20:09 | evan | pacific time. |
| 23:20:40 | goyox86 | evan: is there a link for registering :]? |
| 23:20:55 | evan | on engineyard.com |
| 23:22:16 | goyox86 | oh! sorry for that stupid question, registering stage: started. :] |
| 23:25:11 | goyox86 | registered! :] |
| 23:25:18 | evan | :D |
| 23:25:32 | evan | a lot of it is going to be just like my railsconf talk |
| 23:51:34 | jrw | Hey guys, I just downloaded the git repo and ran this command: bin/mspec tag --list incomplete spec/core |
| 23:51:34 | jrw | . I'm getting the error bin/rbx. Any ideas of whats wrong? |
| 23:52:18 | brixen | jrw: did you build? |
| 23:52:27 | brixen | and could you gist or pastie the error? |
| 23:52:48 | jrw | ah.. didn't build.. I'll do that now. Thanks! |
| 23:53:06 | evan | yeah, you have to build first :) |
| 23:53:09 | brixen | see README or doc/getting_started.txt |