(웨이백 머신 제공 http://www.archive.org/)

간단한 요약

참석자: dm, duck, Frontier, jar, jrand0m, mihi, Ophite1

회의 로그

[22:07] <jrand0m> 안건: [22:07] <jrand0m> 0) 인사 (http://i2p.dnsalias.net/pipermail/i2p/2004-January/000101.html 읽기) [22:07] <jrand0m> 1) router 개발 상태 [22:07] <jrand0m> 2) twisted-i2p [22:07] <jrand0m> 3) 단위 테스트 [22:07] <jrand0m> 4) 네트워크 테스트 / 모니터링 [22:07] <jrand0m> 5) ??? [22:07] <jrand0m> 0) 인사 [22:07] <jrand0m> 안녕하세요 [22:07] * jrand0m 손을 흔든다 [22:07] <dm> 오오오 미팅! [22:07] * dm 손을 흔들어 인사한다. [22:07] <jrand0m> 매주 화요일 GMT 오후 9시 :) [22:08] <jrand0m> 안건 4번에서 피드백이 필요한 내용이 있으니 그 URL을 읽어 주세요 (http://i2p.dnsalias.net/pipermail/i2p/2004-January/000101.html) [22:08] <jrand0m> 1) router 개발 상태 [22:09] <jrand0m> 진전되고 있고, 현재 CVS에 있는 코드는 좋아 보입니다. 어제부터 여러 router를 스크립트로 테스트해 왔는데, 단 하나의 ERROR 메시지도 나오지 않았어요 [22:09] <duck> 읽는 중... [22:10] <jrand0m> 물론 그건 기초 테스트일 뿐이죠 (router들이 tunnel을 올바르게 구성하는지, i2ptunnel을 통해 하나에서 다른 하나로 데이터를 터널링하는지 등) [22:11] * jnk 님이 #i2p에 입장했습니다 [22:11] <jrand0m> 현장에서는 고칠 것들이 분명 더 있습니다. 그래서 기능을 확정하고 새 버그를 찾기 위해 하루 이틀 내에 0.2.3.5를 릴리스할 예정이에요 [22:11] <jrand0m> 좋아요, 넘어갈게요 [22:12] <jrand0m> 2) twisted+i2p [22:12] <duck> 에러가 있긴 해요 [22:12] <duck> 근데 아마 다른 사람들 때문에 그런 것 같아요 [22:12] <jrand0m> 메시지 드롭과 unknown tunnel, 맞죠? [22:12] <duck> 확인 중 [22:13] <jrand0m> (그 에러들은 제 '라이브' router 하나에서 보이는 거고, 테스트 네트워크에서는 안 보여요) [22:13] <duck> 22:13:15.371 ERROR [ Sender 1148] er.transport.phttp.PHTTPSender: Error sending the message [22:13] <jrand0m> 아 오케이, 네, phttp 릴레이도 두들겨 보고 있었어요 [22:13] <duck> 21:01:01.509 ERROR [JobQueue28 ] eDatabaseSearchReplyMessageJob: Invalid router info returned from [Rout [22:14] <jrand0m> 흠 그건 좀 이상하네요 - stacktrace를 저한테 보내줄 수 있나요? [22:14] <duck> 올려둘게요. [22:14] <duck> . [22:14] <jrand0m> 감사요 [22:15] <jrand0m> 사실 앞으로 릴리스에서도 일반 원칙으로 갈게요 - WARN, INFO, DEBUG 메시지는 괜찮고, ERROR나 CRIT 메시지는 보고해 주셨으면 합니다 [22:16] <jrand0m> 좋아요, 2)로 돌아가서 [22:16] <jrand0m> human이 Python과 Twisted 프레임워크를 통해 i2p를 사용하는 방법을 만들어 줬어요 (야호!) [22:17] <jrand0m> 자세한 내용은 그의 이메일을 보세요 (http://i2p.dnsalias.net/pipermail/i2p/2004-January/000100.html) [22:17] <jrand0m> human, 덧붙일 게 있나요? (여기 있다면) [22:17] <duck> 정말 너무 멋져요 [22:17] <jrand0m> 맞아요, 에코 서버와 클라이언트 샘플 코드는 끝내줘요 [22:18] <jrand0m> 좋아요, 3) 단위 테스트로 넘어갈게요 [22:19] <jrand0m> 네, 대부분의 데이터 구조에 대한 단위 테스트가 있긴 한데, '원클릭으로 테스트'할 수 있는 상태가 아니라 매 빌드마다 돌리진 않아요. [22:20] <jrand0m> 현재 생각으로는 그것들을 jUnit으로 이전하고, 또한 여러 컴포넌트(특히 암호 관련)의 main(..) 메서드에 구현된 다른 단위 테스트들도 가능한 한 많이 합치려 합니다 [22:21] <duck> 더 복잡한 것들을 테스트하긴 아마 어렵겠죠 [22:21] <jrand0m> 디버깅이 어디로 우리를 이끄느냐에 따라, 머지않아 핵심 경로에 오를 거예요 [22:21] <jrand0m> 맞아요, 현재 단위 테스트는 기본만 확인합니다 [22:21] <duck> 라우팅, TCP 관련 등 [22:21] <jrand0m> 맞아요 [22:21] * dm 단위 테스트의 가치에 대한 논쟁이 곧 벌어질 것을 예감한다. [22:21] <jrand0m> 하지만 AESInputStream 같은 것은 AESOutputStream과 함께 테스트할 수 있죠 [22:22] <duck> 단위 테스트 = 끝내줌 [22:22] <jrand0m> (그리고 로그를 유심히 보는 분들을 위해, 복호화 스트리밍 중에 'pushed back'이라는 좀 기묘한 동작이 있었습니다) [22:22] <jrand0m> 확실히요. [22:23] <jrand0m> 단위 테스트는 말 그대로, 음, 유닛을 위한 거예요. 더 큰 컴포넌트를 위한 건 아니죠(그게 바로 안건 4번의 주제 ;) [22:24] <jrand0m> 아무튼, 기존 데이터 구조 단위 테스트를 jUnit 프레임워크로 옮기는 데 도와줄 분이 있다면 알려 주세요 - 정말 고맙겠습니다(그리고 i2p 코드베이스를 탄탄히 익히는 데도 도움이 될 거예요) [22:24] * mihi_away 님이 이제 mihi 로 이름을 바꿨습니다 [22:25] <dm> 주말까지 끝나지 않으면 제가 한번 봐도 돼요. 단위 테스트는 아는 게 없어서, 하면서 배울 수 있겠네요. [22:25] <jrand0m> 쩐다! [22:25] <dm> 다만 약속은 못 드려요. [22:25] <jrand0m> 그렇죠 그렇죠 [22:25] <jrand0m> 좋아요, 4) 네트워크 테스트 / 모니터링으로 넘어갈게요 [22:26] <jrand0m> 모두 http://i2p.dnsalias.net/pipermail/i2p/2004-January/000101.html 읽어보셨나요? 그대로 복붙하고 싶진 않아요 [22:26] * Frontier 님이 #i2p에 입장했습니다 [22:27] * jrand0m 사람들이 소화할 시간을 준다 [22:27] * dm 말하길... [22:28] <Frontier> 뭘 소화하라고? [22:28] <dm> C)지만 자동 전송은 아니게요. [22:28] <dm> 즉, emaillogstojrandom.sh(.bat)을 사용자가 직접 실행하는 식으로요 [22:28] <dm> 이메일로 보내거나, 포스트하거나, 뭐든요. [22:29] <dm> 그리고 그렇게 하면 로그를 지우거나 어딘가로 옮겨서, 같은 데이터를 두 번 제출하지 않도록요. [22:29] <jrand0m> 그러니까 기본적으로는 B네요 [22:29] <jrand0m> (아니면 A) [22:29] <dm> 네, 사용자 친화적인 B) :) [22:29] <jrand0m> 그게 데이터 관련 꼼수 중 하나죠... 그 로그는 하룻밤 사이에 수십 MB로 커져요 [22:29] <jrand0m> 맞아요 [22:30] <dm> 미안, C에서 history=false는 못 봤네요. [22:30] <jrand0m> Frontier) http://i2p.dnsalias.net/pipermail/i2p/2004-January/000101.html 의 4번 섹션을 토론 중이에요? [22:30] <mihi> jrand0m: man bzip2 [22:30] <dm> 그러니까 history=false에다가, 명령으로 전송하는 스크립트를 같이 쓰는 거죠. [22:30] <dm> 미안, history=true :) [22:30] <dm> 이런, 내가 엉망으로 만들어버렸네. [22:31] <jrand0m> 맞아요 mihi, 하지만 Windows에는 bzip2가 없어요(우리가 필수로 요구하고 설치하지 않는 한). 아님 bzip2에 파일을 URL로 전송하는 플래그가 있다는 뜻인가요? [22:32] <dm> 크기 걱정은 안 해도 돼요, 여기 있는 소수 인원이라면 수십 MB도 괜찮아요. [22:32] <Ophite1> 저는 C에 한 표. [22:32] <dm> 제출 스크립트를 실행할 때 아카이브만 되면요. [22:32] <Ophite1> 이건 디버그 클라이언트니까요. [22:32] <Ophite1> 프로덕션 클라이언트에서는 당연히 A :) [22:32] <mihi> jrand0m: 그럼 GZipOutputStream을 쓰세요 [22:32] <jrand0m> 맞아요 맞아요 Ophite1 ;) [22:33] <jrand0m> mihi> 사람들은 이 파일들을 읽고 싶어할 수도 있죠 ;) [22:33] <duck> 맞아요, 디버깅 참여는 옵트인으로 하고, 한 번 참여하면 사용자에게 최대한 쉽게 해주자고요(그래서 C) [22:33] <mihi> man zcat ;) [22:33] <Ophite1> jrandom: gzcat | less ;-) [22:33] <mihi> Ophite1: zless ;) [22:33] <jrand0m> C:\Documents and Settings\dev>man [22:33] <jrand0m> 'man' is not recognized as an internal or external command, [22:33] <jrand0m> operable program or batch file. [22:33] <jrand0m> ;) [22:34] <mihi> cd \cygwin <Ctrl+T> call cygwin.bat [22:34] * dm 손가락만 만지작거린다. [22:34] <Ophite1> double-click -> winrar -> view [22:34] <jrand0m> 좋아요, 그럼 B 하나, C 두 개네요, mihi는 어떻게 생각해요? [22:34] <jrand0m> (다른 분들도요?) [22:34] <dm> 손가락 만지작, 코 후비적, 클릭 클릭. [22:34] <mihi> double-click - 7zop - view. 난 C라고 봐요. [22:35] <mihi> s/7zop/7zip/ [22:35] <jrand0m> C 셋, B 하나. 저도 C가 좀 더 좋아요. 물론 누가 이 데이터를 제출하기 /원하지 않으면/ 항상 그렇다고 말할 수 있고, 그러면 아무 것도 하지 않을 거예요 [22:36] <jrand0m> C와 B 둘 다 구현할 수 있는지 알아볼게요 [22:36] <dm> 그럼 C로 가는 걸로. [22:36] <dm> 시간 낭비 말아요, B를 고른 분은 다이얼업이라 어차피 데이터가 거의 없을 테니까요 ;) [22:36] <jrand0m> 헤헤 [22:36] <jrand0m> 음, C는 아마 B 위에 구현될 거라서, 일은 더 늘지 않을 거예요 [22:37] <jar> 저는요: Ophite1이 말한 그대로! 프로덕션 클라이언트는 A, 디버그는 C ... [22:37] <jrand0m> 좋아, jar [22:37] <jar> Ophite1이 말한 그대로! 프로덕션 클라이언트는 A, 디버그는 C ... [22:37] <Ophite1> 프로덕션 클라이언트는 당연히 A 말고 답이 없죠... [22:37] <jar> Ophite1이 말한 그대로! 프로덕션 클라이언트는 A, 디버그는 C ... [22:37] <Ophite1> 그건 생각할 것도 없죠 :) [22:37] <jar> 미안 ... :( [22:37] <jrand0m> 다 좋아, jar. 우리가 너를 킥밴하진 않을게 (... 이번만은 ;) [22:38] <jrand0m> 좋아요, 그럼 그 작업 바로 시작할게요. 그게 테스트만 되면 바로 새 0.2.3.5를 내겠습니다(아마 내일쯤) [22:39] <jrand0m> 좋아요, 5) ??? 로 넘어갈게요 [22:39] <jrand0m> 다른 거 더 있나요? 질문, 생각, 우려? [22:39] * duck 무료 호스팅을 제공한다 [22:39] * dm 무료 호스팅을 수락한다 [22:39] <jrand0m> 오 좋다. 네, host.duck.i2p에 사이트를 호스팅하세요. 접속 가능한 페이지가 있는 건 좋거든요 [22:39] <jrand0m> (물론 각자 직접 호스팅해도 좋고요 ;) [22:40] <duck> 그럼요, 24/7 온라인을 유지할 수 없는 분들을 위해서요 [22:40] <jrand0m> 맞아요 [22:40] <mihi> 스트리밍 API는 어떻게 됐나요(될 건가요)? [22:40] <jrand0m> mihi> 그건 작업 목록에 있어요. 하지만 지금은 네트워크를 안정적으로 동작시키는 게 우선순위가 더 높아요 :/ [22:41] <mihi> 근데 완전히 폐기된 건 아니죠? (그게 알고 싶은 거예요...) [22:41] <jrand0m> 스트리밍 API는 0.3.1 릴리스 때 다시 손댈게요(어쩌면 더 빨리, 하지만 확실하진 않아요) [22:41] <jrand0m> 완전히 폐기된 건 절대 아닙니다. [22:41] <jrand0m> 완료될 거예요. [22:41] <dm> 스트리밍 API가 뭐죠? 네트워크를 클라이언트에 노출하는 다른 방식인가요? [22:42] <jrand0m> dm> http://wiki.invisiblenet.net/iip-wiki?I2PSocketLibrary [22:43] <jrand0m> 처음부터 router에 mode=guaranteed를 넣고 별도 라이브러리에 두지 않은 건, 논란의 여지는 있지만 제 실수였어요(그래서 지금은 그걸 router 밖으로 빼내려고 하고 있죠 :) [22:43] <jrand0m> (그 실수의 엄청난 이득은 mihi가 나타나서 i2ptunnel을 작성했다는 거였죠 :) [22:44] * wn-user 님이 #i2p에 입장했습니다 [22:44] <jrand0m> 다른 분들 더 있을까요? [22:44] * dm 이해했다. [22:45] <jrand0m> w3rd [22:45] <dm> 흠, 회의를 끝내기엔 너무 이른 거 아닌가요? [22:45] <duck> hosts.txt는 어때요 [22:45] <duck> 계속 불어나고 있어요 [22:45] <jrand0m> 음, 45분이네요. 2주 전엔 20분이었죠 [22:45] <jrand0m> 아, 맞는 말이네요 [22:45] <duck> 근데 75%는 오프라인이에요 [22:45] <duck> 그리고 50%는 영구적으로 오프라인인 것 같고요 [22:45] <jrand0m> 아마도 [22:46] <jrand0m> 모르겠어요 [22:46] <duck> 그냥 계속 키우죠, DNS 해결책에 대한 동기를 높이기 위해서요 :) [22:46] <jrand0m> 헤헷 맞아요 [22:46] <Ophite1> 약간의 지연은 저는 괜찮아요, 각종 Windows 문제로 아주 '즐겁게' 보내고 있거든요... [22:46] <dm> Ophite1: Windows는 악마야! [22:46] <Ophite1> Windows가 얼마나 끔찍한지 진짜로 알게 되는 건, 그걸 대상으로 소프트웨어를 만들어 볼 때죠. [22:47] <jrand0m> Java를 써야 하는 이유 #941 [22:47] <dm> .NET을 쓰는 게 아니라면요. [22:47] <dm> 일명 java++라고도 하죠 [22:47] <Ophite1> dm/jrand0m: 그래도 Windows 위에서 돌아가니까, 계속 부딪히는 것들이 있어요. [22:47] <duck> jrand0m: 그 마지막 패치들, 끊김을 해결하나요? 아니면 연결 문제를 더 해결하나요 [22:47] <Ophite1> 예를 들어 경로 길이 같은 거요. 빌어먹을 유니코드. [22:48] <mihi> 아니면 파일 이름에 \n을 쓰지 않거나 ;) [22:48] <mihi> 어차피 cvs가 죽을 거예요(*nix에선 BTDT) [22:48] <jrand0m> duck> 오늘 패치는 필수적인 건 없어요 [22:48] <duck> 어제 걸 말하는 거예요 [22:49] <dm> 파일 이름에 \n을 쓰면 어떻게 되죠? :) [22:49] <mihi> dm: 해보세요 ;) *nix에선, 그 다음에 cvs update만 안 돌리면 아무 일도 안 생겨요. [22:49] <jrand0m> 아, 어제는 i2ptunnel의 'Peer unreachable' 메시지를 일부(대부분? 전부?) 해결할 좋은 패치들이 있었어요. 다만 i2cp 끊김은 아니고요 [22:50] <dm> 예외를 던질 것 같네요. [22:50] <jrand0m> (그것도 0.2.3.5가 나오는 이유 중 하나죠) [22:51] <mihi> dm: 로컬 저장소에선 동작하는데, pserver나 ssh에선 안 돼요. [22:51] <mihi> 'protocol error' 같은 거요. [22:51] <mihi> (그 프로토콜은 파일 이름을 \n으로 끝내거든요 ;) ) [22:51] <Ophite1> 파일 이름에 $와 |가 있으면 Direct Connect에서 일어나는 일과 비슷하죠. DC 싫어요. [22:51] <duck> . [22:52] <Ophite1> 제가 뭘 어떻게 코딩하든, 그 정도로 나쁘진 않을 거예요 :) [22:52] <jrand0m> 아뇨, C 개발자들은 $ 대신 \0을 특별하게 다루잖아요 ;) [22:52] <jrand0m> 좋아요, i2p 관련해서 더 없으면 마쳐도 될까요? [22:53] * madman2003 님이 IRC에서 나갔습니다 (12( www.nnscript.de 12:: NoNameScript 3.8 12:: www.XLhost.de 12)) [22:54] <jrand0m> 'k 여기까지 [22:54] * jrand0m 회의를 *baf* 하며 마무리한다