python으로 만든 dhcp daemon

Posted at 2012/01/30 03:00// Posted in 잡생각
오늘 기분전환겸, bearcat을 재작성할 마음을 꺼내었다. 전부터 python으로 다시 만들어볼 생각이었으므로, 첫번째 구성품인 dhcp daemon부터 알아보았고, 간만에 bootp 프로토콜좀 보다가 대략 client의 packet을 분석할 수준으로 깨작거려봤다. experimental 디렉토리에 몇줄 커밋하고 정지.

이 다음은 언제 또 이어서 할지는 미지수... 뭐 머리가 좀 아프고, 신경을 돌려야할 일이 생기면 이어서 하든가 하겠지요.

작업은 Mac mini에서 하고, client는 Windows PC에서 virtual pc를 돌려서 PXE boot를 시도하면서 테스트하면 간단한 테스트 환경이 됩니다.

크리에이티브 커먼즈 라이센스
Creative Commons License
2012/01/30 03:00 2012/01/30 03:00
Tag , ,

뭐가 이리 급해

Posted at 2012/01/29 14:41// Posted in 사는 얘기
갑자기 너무 빨리 달리고 있다는 생각이 들었다.

운동장을 가로지르는 것이 목표였다면, 확실한 목표와 걸어갈 길까지 보이는 상황인데도 불구하고, 운동장 전체를 휘저어 가며 마치 다 밟고 지나가야할 것 같은 모양으로 매우 빠르게 움직이려는 나를 보았다.

나머지 땅들은 천천히 다음에 밟아도 될 것인데, 주어진 시간을 왜 그리 급한 마음으로 움직여야 하는 강박관념으로 살고 있는지.

무슨 병인가도 싶다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2012/01/29 14:41 2012/01/29 14:41

언젠가는 해야할 것에 대한 생각

Posted at 2012/01/28 14:30// Posted in 분류없음
인간의 평균 수명이 120살정도 되는 시대에도 아마 살아 있을것이라 생각된다. 난 사실 평균수명 내는 방법에 대해 아직도 의문이 있지만 --- 그 해 죽은 사람들의 평균 연령이 그 해의 평균 수명인가?, 아니면 그것을 바탕으로 하는 출생년이 동일 사람들에 대한 추정치의 평균인가? 추정은 어떻게 해야하는 것인가? --- 생각보다는 길게 사는 인생에서 해야할 것에 대한 리스트는 어릴적 못했던 것들 중 하나는 해보고 싶은 것이 있다.

방금 생각난 것이, 화학을 너무 싫어했지만, 약학은 공부해보고 싶었다는 것이라든지 --- 약이라는 소량의 물질이 고통을 제거하는 것에 대한 매력이라고나 할까? --- 프로그래밍 언어를 선택할 일이 있을 때, 항상 자바를 2위로 뒀던 이유라든지 --- 초창기 자바가 주는 계층구조, 특히나 가상 머신이라는 부담은 잘 내키지 않은 원인이 되었다. --- 여하한의 아쉬웠던 것들을 언젠가는 해야할 것이라 생각되지만 그것을 즐겁게 할 수 있을지는 미지수이다.

오늘 아침 갑자기 생각나서 끄적인다. 아무 이유없음.
크리에이티브 커먼즈 라이센스
Creative Commons License
2012/01/28 14:30 2012/01/28 14:30

모터소리 안나는 컴퓨터를 쓰고 싶군

Posted at 2012/01/27 09:59// Posted in 분류없음
하드디스크, 팬... 모든 소리가 다 싫다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2012/01/27 09:59 2012/01/27 09:59

다시 글을 써볼까?

Posted at 2012/01/07 00:49// Posted in 사는 얘기
이게 얼마만의 글쓰기 로그인이냐.
Facebook에 치어 로그인조차, 아니 그 흔한 대문조차 들어오지 않은 날이 몇날이던가.

그런데, 요즘 문득 문득 다시 블로그를 하고 싶은 마음이 들기 시작한다.

나는 이 분위기를 안다. 개발에서 손을 떼는 상황이 될 즈음에는 글을 쓰기 시작한다. 내 많은 글 쓰기가 그렇게 시작했다. 뭔가 해야하나보다. 뭔가 써야하나보다. 머리속의 것이 튀어 나와야하나 보다.

가능할지 모르겠다.

그냥, 너무 오래되지 않으려고 끄적인다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2012/01/07 00:49 2012/01/07 00:49

IPSec over TCP

Posted at 2011/06/08 00:18// Posted in 잡생각
Cisco 의 VPN은 대개 IPSec으로 구성된다. 보통 VPN은 LAN to LAN이거나 PC to LAN 을 지원하는데, 아마 관리자가 아닌바에야 PC to LAN 환경을 접하리라고 본다.

이런 경우에 관리자들에게 가이드 하나 제시하려고 한다.

Default 구성의 경우 UDP를 사용하며 port 500을 이용하는데, 이왕이면, TCP를 이용하게 해달라.


왜냐면, UDP로 구성하는 경우에 PC의 환경이 공유기를 사용해야하는 상황에서 둘 이상이 접속해야하는 상황이 된다거나, 개인이 사용하더라도, Virtual Machine을 이용하여 들어가려한다거나 하는 상황이 되면, PC 한대에서밖에는 접속이 안되는 상황이 발생한다.

왠만하면, TCP로 접속하게 해주는 것이 다양한 환경을 지원할 수 있으니... 생각해주시면 고맙겠다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2011/06/08 00:18 2011/06/08 00:18

Linux/Mac TTS script

Posted at 2011/04/08 19:54// Posted in 장난하기
구글 번역기의 읽기 버튼을 조금 활용하여, 간단한 TTS를 해주는 스크립트 입니다. 구글 번역기는 번역된 글을 mp3로 만들어주는 훌륭한 기능을 제공하지요. 따라서, 리눅스에 mpg321 패키지가 제공하는 mpg123 유틸이나, Mac의 afplay를 이용하여 명령행으로 전달되는 문자열을 읽어주게 됩니다.
./play_tts.sh "안녕하세요? 쿨엔!"
만약 영어로 하려면,
TTSLANG=en ./play_tts.sh "How are you? Coolen?"
이런식으로 사용하면 되지요.
이 기능은 소스 커밋하면 목소리로 알려주기 기능의 연장선상에서 진행되었습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2011/04/08 19:54 2011/04/08 19:54

LDAP 과 씨름 중

Posted at 2010/11/21 00:35// Posted in 장난하기
LDAP이 Lightweight Directory Access Protocol 이라는게 한 10년은 맘에 안들어 왔다. X.500의 존재를 알기에 그것보다는 Lightweight 라는 것도 알지만, 정말 lightweight라면 속성과 계층구조를 지원하는 xml 수준으로도 설정이 가능하면 좋겠다는 생각이다.

맘에 안들지만, 상당히 많은 웹 어플리케이션이 LDAP을 지원하고 있어서, 그 어플리케이션에 통합 인증을 지원하려면, LDAP Server라도 돌려야할 처지에 놓여있다. subversion, redmine, reviewboard를 모두 ldap으로 묶으려는 시도를 하고 있는 판이다. subversion은 sasl을 지원하므로, sasl에 얹어서 ldap에 접근하면 될것 같고, redmine, reviewboard 모두 직접적으로 ldap을 지원하니 쉬울것 같다.

OpenLDAP이 실험적인 재밌는 요소들을 지원한다. LDAP 자료구조의 backend를 굉장히 다양하게 지원하고 있다는 것이다. shell, perl, odbc-sql 등을 지원하는 것이 눈에 들어오고 있다.

어쨋거나, 사용자들이 자신의 인증 메커니즘을 서로다른 어플리케이션에서 같은 비밀번호를 쓰도록하는 것이 목표인데, 관리적인 면에서도, redmine을 중심에 두고, redmine의 DB를 다른 어플리케이션에서 인증하도록 openldap을 잘 구성하면 되지 않을까 고민한다. 그러면, 비번 바꾸기 등도 관리자가 따로 개발하지 않아도 되는 것 아닌가.

이번 주말에 끝장을 보자스라.

크리에이티브 커먼즈 라이센스
Creative Commons License
2010/11/21 00:35 2010/11/21 00:35

AMF의 정수 시리얼라이즈

Posted at 2010/09/22 00:06// Posted in 잡생각

플래시 기반의 오브젝트들을 네트웍으로 전달하는 포맷에 대한 Action Message Format의 스펙을 보면, 앞 부분에 정수형에 대한 encoding이 나옵니다.

0x00000000 - 0x0000007F: 0xxxxxxx
0x00000080 - 0x00003FFF: 1xxxxxxx 0xxxxxxx
0x00004000 - 0x001FFFFF: 1xxxxxxx 1xxxxxxx 0xxxxxxx
0x00200000 - 0x3FFFFFFF: 1xxxxxxx 1xxxxxxx 1xxxxxxx xxxxxxxx
0x40000000 - 0xFFFFFFFF: throw range exception



와 같은 표를 볼 수 있는데요. 흥미로운 것은 UTF8과 비슷한 방식으로 값에 따라 인코딩 결과가 1 바이트에서 4바이트를 취한다는 것이고요. 일정한 검증 규칙으로서 최상위 비트가 1로 진행하다 0으로 종료하는 형태를 띈다는 것입니다. 그렇게 함으로써,
  • tiny int 영역인 0x7f까지의 7 bit 사이즈는 1 byte로 전송이 되고,
  • 16K 이하의 값을 나타내는 0x4000 미만은 2 byte로 전송되며,
  • 2MB 정도를 나타내는 21bit 사이즈는 3 byte로 전송되고
  • 그 이상 29bit 정수까지는 4바이트로 전송된다는 것입니다.
  • 그리고, 30, 31, 32 bit 정수는 아예 취급을 안하겠다는 것인지 exception을 내는군요.
아이디어가 좋습니다. 그리고, 이 포맷이 1 byte를 아껴야하는 상황까지 고려한 설계라는 것이 훌륭합니다. AMF 를 이용한 Client/Server 프로그래밍에서 정말 Server/Client 들이 저런 수준의 설계를 받쳐 줄만한 상위 설계를 하는지는 모르겠지만, 이런 사실을 알고 졸라 메는 정신으로 Flash 및 Server Side Script들을 설계하면 좋겠다는 생각이 드네요.
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/09/22 00:06 2010/09/22 00:06

Four Square 짧은 생각

Posted at 2010/08/21 10:39// Posted in 잡생각
Four Square라는 아이폰용 어플리케이션이 있다. 물론 안드로이드용으로도 있고, 윈도우 모바일용으로도 있을 것이다. 간단히 소개하자면, 내가 현재 있는 장소의 이름을 위치 기반으로 검색하고, 내가 거기 있음을 "CHECK IN"하는 행동을 기반으로 하는 어플리케이션이다. (장소가 검색되지 않으면, 내가 추가할 수 있다.) 장소는 음식점 이름이나 학교 이름 심지어 벤치에다가도 이름을 줄 수 있고, 어떤 장소는 이름이 여럿인 경우도 있다.

정확한 기간은 모르겠지만, 대략 한달정도 총 CHECK IN 수 대비 한 사람의 CHECK IN 수가 일정 비율(20%?) 이상을 넘으면 "Mayor"라는 타이틀(Mayorship)을 준다.

현재 나는 19 곳의 "Mayor"다. 어제까지만해도 20곳이었는데, 아마도 한 곳을 잃은 것 같다. 그리고 며칠전에는 내가 다른 이의 Mayor 타이틀을 뺏기도 했다. 아직까지는 왠만한 곳은 대략 일주일만 꾸준히 CHECK IN 해주면 Mayor 를 얻어오는 것은 가능할 것 같다.

얼마전엔 강동구청역 Mayorship을 얻었는데, 이는 거의 두달이상을 매일 아침저녁으로 CHECKIN하여 얻은 것이었다. 원래 Mayorship을 가진 사람에겐 미안하지만, 나름 FourSquare에 대한 생각을 깊게하게 된, 하나의 사건이었다. 두 달 동안  목적을 가지고 꾸준히 뭔가를 하는게 쉬운것인가? FourSquare는 정확히 며칠을 더 CHECKIN하면 너한테 Mayorship이 돌아간다고 말하지 않는다. 그냥 최근 한달사이에 너가 몇번 체크인 했는지만 느낌표찍어주면서 말해줄 뿐이다.

강아지 오줌싸기. 땅따먹기. 위치기반 서비스 중에 이런 게임을 며칠을 걸쳐서 느리게 진행되는 서비스라니...

몇달동안 CHECKIN해서 Mayor를 얻어내는 작업... 한 번쯤 해보시라.
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/08/21 10:39 2010/08/21 10:39
1 2 3 4 5 ... 63