Strict Standards: Non-static method Soojung::addReferer() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/settings.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/lifthrasiir/sites/sapzil.info/soojung/settings.php:79) in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Counter.class.php on line 63

Strict Standards: Non-static method Entry::getEntry() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/entry.php on line 51

Strict Standards: Non-static method Soojung::entryIdToFilename() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Entry.class.php on line 182

Strict Standards: Non-static method Soojung::queryFilenameMatch() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Soojung.class.php on line 55
TokigunStudio3 | 블로그: 막간을 이용해서...

내용으로 바로 넘어 가기


TokigunStudio3

1 / 3283   


더 이상 이 블로그는 운영되지 않습니다. 새 블로그로 가 주세요.

막간을 이용해서...

2004/12/24 AM 12:53 | 개발/obfuscation | 10 comments | 1 trackbacks | AllBlog: vote, to pocket

한참 말들이 많은 TinyP2P의 9줄짜리 버전이다. 아직 보안 버그는 남아 있지만 이제 바이너리 파일 전송이 가능하다. 앗싸 -_-;;

import sys,os,SimpleXMLRPCServer as S,xmlrpclib as L,re,hmac;T=lambda x=[]:([(y
in s)or s.append(y)for y in x],s)[1];f=lambda p,n,a:p==P(M)and{0:T,1:lambda a:[U
(a)]}.get(n,lambda n:L.Binary(file(n,'rb').read()))(a);U=lambda p='':[n for n in
os.listdir(os.getcwd())if re.search(p,n)];O=lambda u:(u==M and T())or T(X(u).f(P
(u),0,T([M])));P=lambda u:hmac.new(V[1],u).hexdigest();V=sys.argv;M="http://"+V[
3]+":"+V[4];X=L.ServerProxy;s=V[5:];"server"!=V[2]and([[file(F,"wb").write(X(l).
f(P(l),2,F).data)for F in[i for i in X(l).f(P(l),1,V[4])[0]if not i in U()]]for
l in X(V[3]).f(P(V[3]),0,[])],sys.exit(0));i=S.SimpleXMLRPCServer((V[3],int(V[4]
)));T()and map(O,O(T()[0]));i.register_function(f,"f")or i.serve_forever();('_')


참고로 처음 예상은 12줄이었다. 좀 더 시간 내면 7~8줄 안팎으로 고칠 수도 있을 것 같은데 귀찮고 시간도 없어서 못 해 먹겠다. 누가 부추겨서-_-; /.에도 올려 놓았는데 과연 누가 볼까나. (트래픽이 무서워서 링크는 못 하겠다 -_-)

덧: 모르는 사이에 2만힛. 감사합니다! :D
덧2: 9시쯤에 수정 -- obfuscation collection에도 올라 왔습니다. 아이콘 뭘로 만들지? -_-;;;

TrackBack URL: http://sapzil.info/soojung/trackback.php?blogid=262

Trackback: LikeJAzz :: blog (2004/12/24 AM 05:23)

TinyP2P

P2P 애플리케이션을 제작하는데 관심있으신가요 ? 파이썬으로는 단 15줄의 코드로 제작가능합니다. (via forevergeek) TinyP2P is a functional peer-to-peer file sharing application, written in fifteen lines of code, in the Python programm ..

Comment: 디토 (2004/12/24 AM 08:11)

펄로는 6줄의 코드가 가능합니다. -_-;;

Comment: 토끼군 (2004/12/24 AM 08:27)

디토: 루비로도 6줄짜리 코드 나왔습니다. -_-;;;

Comment: 골빈해커 (2004/12/24 AM 09:42)

펄로 만들어볼까 했더니..이미 있군요 ㅋㅋ

Comment: 토끼군 (2004/12/24 AM 10:02)

골빈해커: Ruby 버전도 있습니다. :p 누가 저 보고 Funge 버전 짜라고 하는데 아직 제가 만드는 인터프리터에 소켓 기능이 없어서 때려 치고 있습니다. -_-;;;

Comment: 한날 (2004/12/24 PM 02:22)

하하핫. 이런 라인 전쟁(?)은 구경꾼으로 무척 즐겁습니다. :D

Comment: 토끼군 (2004/12/24 PM 04:56)

한날: 모르는 사람한테는 도대체 뭔 짓 하는 건지 알 수 없는 노릇이긴 하지만요. :p

Comment: yser (2004/12/25 AM 12:49)

처음 뵙겠습니다.
도메인 명이 아주 인상적입니다! 음! orz!

옛날부터 펄이 그런 식의 경쟁 구도-_- 에는 많이 인용되곤 했지요..
오죽하면 펄 문법으로 시를 썼겠습니까 -_-;
예전엔 그런 걸 보고 대단하다..생각했는데 최근에 와서는 생각이
바뀌었습니다.

저도 원래 웹 플그밍을 펄로 시작했었는데, 첨엔 비교적 이해하기 쉬운
문법에 알면 알수록 압축되는 성질을 가지고 있어서 무척 흥미로웠고
덕분에 고수의 코드를 보면 흥분이 되는 묘한 짜릿함마저 있었죠
(이해가 되지 않는 것에 대한 일종의 경외감이 아니었을까..)

그런데 지금으로선 NO 입니다. 고수가 만든 코드 자체는 경이롭지만
펄의 그 문법 애매모호함이.. 유지보수엔 최악이란 걸 깨달았기 때문이죠 -_-;
만든 사람만이 술술 읽어갈 수 있는(=만든사람도몇개월뒤엔해석에애먹는)
그런 코드는 복잡해져가는 세상을 소인수분해해서 세제곱하는 듯한 느낌이 들더군요. 파이썬도 펄의 장점을 일부 수용한 것으로 알고 있고,
그래서인지 애매한 문법과 압축이 가능한 것 같더군요. 대신 유지보수나
해석에는 정말..; ..그래서 guru 의 장난성 경쟁 놀이에만 쓸만한 이벤트
같은게 아닌가 생각을 해봅니다.

재미로 보기엔 그만입니다. ^^;

Comment: 토끼군 (2004/12/25 AM 01:08)

yser: 안녕하세요. :D

sapzil.info는 .info 도메인 이벤트 할 때 뭘 할까 고민하다가 그냥 장난 삼아 등록했던 게 나중에 서버 이전할 때 유일하게 쓸 수 있는 도메인이어서 사용하게 된 겁니다. 아마 이 블로그는 곧 blog.tokigun.net 비슷한 도메인으로 옮겨 갈 것 같습니다.

그리고... 펄은 예전에 조금 한 게 전부라서 저도 잘은 모르겠습니다만, 그런 것들은 언어 자체의 특성이라고 생각합니다. (장단점이 아니라) 사실 어떤 언어든 주석만 잘 달아 주고 이해 갈 수 있게 자세한 documentation만 준다면 어려운 코드가 어디 있을까요. :) 실제로 코드를 짤 때는 당연히 가독성과 문서화를 생각해 가면서 짜야 겠지요. 제 obfuscation collection은 순전히 취미 생활입니다 :p (그리고, 전 guru도 아닙니다. orz)

아무튼, 재밌게 봐 주셨다니 감사합니다. :)

Comment: Y.D.Honey (2004/12/25 AM 02:04)

사실 어떤 언어든 주석만 잘 달아 주고 이해 갈 수 있게 자세한 documentation만 준다면 어려운 코드가 어디 있을까요. :)
// funge..

Comment: 토끼군 (2004/12/25 PM 01:34)

Y.D.Honey: Funge도 주석 달 수 있어요......

Copyright (c) 1995-2005, Kang Seonghoon (Tokigun).