Kompilacja kodu?

Witam,

czy jesteście w stanie polecić jakieś narzędzie, którym byłbym w stanie skompilować kod mojej aplikacji do pseudokodu? (problem ten sam co przy wszystkich innych interpretowanych językach: muszę zrobić deployment na obcej maszynie i chciałbym się zabezpieczyć, że nawet jeśli ktoś zrobi sobie kopię, to nie będzie mieć źródeł sensu stricte).

Z góry dzięki, wchodzą w grę komercyjne rozwiązania.

jeśli wchodzą w gre komercyjne to przyjrzyj się http://blog.zenspider.com/zenobfuscate/ kosztuje w przeliczeniu jedyne 7.5k :slight_smile:
a jeśli cie jednak nie stać spróbuj XRuby, problem z kompilowaniem do pseudokodu że ruby2ruby + netbeans i patrzcie kto ma znowu kod źródłowy, do javy też zresztą są bardzo ładne dekompilery.

Zawsze jeśli nie wierzysz umowom i sądom, możesz zrobić takie bajery z metaprogramingiem + refactoring na 3 literowe nazwy zmiennych i metod typu “aaa” że nikt nie będzie w stanie tego modyfikować.

Co do XRuby: [quote]Right now we are working hard to make more ruby libraries work under XRuby (Test::Unit is supported now, while Ruby On Rails is not).[/quote]
ZenObfuscate - no przy obecnym kursie dolara to całe szczęście mniej niż 7.5k :slight_smile: Obym za ten projekt dostał tyle, żeby zostało jeszcze na tego typu zabawki.

Dokopałem się do ruby2c - jak będę mieć jakieś testy to dam znać, czy to działa…

Dzięki tak czy inaczej.

Powiem tak, jeśli to projekt RubyOnRails, to zapominij z paru powodów:

  1. w rails jest tyle metaprogramingu że ruby2c nic ci nie da, ruby2c w dodatku jest od dawna nie utrzymywane i nie radzi sobie z dynamiczna naturą ruby
  2. każdy sensowny deployment wymaga źródeł
  3. licencja RoR

jeśli projekt jest wart mniej, to po cholere go tak maskować? serio dlaczego? chyba że twój kod jest tak badziewny że nie chcesz go nikomu pokazywać, ale wtedy i tak nikt inny nie bedzie wiedział jak go modyfikować

Między podejrzeniami o “badziewność kodu” a jego wartość w przeliczeniu na złotówki jest jeszcze coś takiego jak marketing. Być może będę musiał zrobić deployment w ramach transakcji wiązanej. Na samym kodzie nie zarobię, ale zwróci mi się w inny sposób.

Jeśli chodzi o licencję, to nie widzę w tekście licencji MIT niczego, co by mi zabroniło skompilować railsów? (tak długo jak moje skompilowane railsy będą również MIT, co nie ma nic wspólnego z licencją MOJEGO kodu?)

same rails są na licencji MIT ale komponenty/pluginy często nie, a wystarczy jeden kawałek kodu GPL żeby cała aplikacja musiała być GPL :slight_smile:

w takim razie jeśli kod jest darmowy to po co chcesz go ukrywać :wink:
rozumiem że istnieje coś takiego jak marketing, ale akurat nie widzę w tym przypadku żadnych podstaw by chować kod, jeśli sie już marketingujesz to chyba wiesz jak napisać “site license” ?

Kod NIE jest darmowy. To, że dla jednego kontrahenta jest darmowy, nie znaczy że jest w ogóle darmowy. Generalnie aplikacja miała stać na moich serwerach, taki był plan, a tu się trafiła fajna okazja ale warunkiem jest postawienie tego na innej maszynie. Efekt tego jest taki, że kombinowałem długi czas, jak tutaj zrobić aplikację, której się dobrze robi deployment na wielu (moich) serwerach (skalowanie ma polegać na dostawianiu maszyn i integracji ich w coś na kształt klastra) a się okazuje, że opłaca mi się zrobić wyjątek i postawić to gdzie indziej.

Nie chciałbym żeby ktoś kiedyś z tej organizacji zaczął sobie robić deployment kompletnego systemu tu i ówdzie a nie będę mieć kontroli nad tym, co tam robi dział IT. Akurat jak będą mieli ochotę skopiować sobie moją aplikację czy jej fragmenty to - bądźmy szczerzy - nie będą czytać licencji.

Generalnie bez sensu drążysz temat, i tak nie mogę teraz powiedzieć o co dokładnie chodzi, istotne jest tylko, że kompilacja kodu by rozwiązała ten problem, bez względu na to, czemu tak uważam. Dalsza dyskusja interesuje mnie tylko na ten temat.

Aha, nie mam ani bajta GPL w aplikacji.

techniki jakie możesz zastosować zostały ci podane, przypomne: jruby, oraz ruby2c dla części kodu.

Z drugiej strony jeśli to są rails to i tak nie ma jak ich zastosować bo rails wymagają symboli żeby korzystać z metaprogramingu w ruby, jednym słowem jesteś udupiony :slight_smile:
a na sam koniec, jeśli sie martwisz że ktoś ci będzie kopiować nie czytajac licencji, to skompilowany kod mogą kopiować tak samo :stuck_out_tongue: także twoje tłumaczenie jest idiotyczne

bądźmy szczerzy będą albo wystarczy jeden “przychylny” który zadzwoni gdzie trzeba, i firma ma inspekcje na karku, skonfiskowany sprzęt. Wiem bo w mojej poprzedniej firmie był taki przypadek, i o ile jest to jakakolwiek większa firma to dba o licencje kodu.

No to krótka piłka - wstaw im swoją maszynę. Niech przygotują odpowiednią infrastrukture do tego - to nie jest trudne a jeżeli im zależy to napewno się zgodzą.

Specyfika kodu jest taka, że podczas kompilacji mógłbym zhardcode’ować to i owo, co utrudniło by deployment systemu gdzie indziej, przy jego charakterystyce wręcz uniemożliwiło.

Sprzęt wstawię swój, obawiam się raczej o sytuację, gdzie ja np. przestaję się za parę lat opiekować tym projektem z dowolnego powodu.

Tak czy inaczej dzięki :slight_smile: