JMK 트레이더 레벨 1. 스킬포인트 뭐찍지?

stream/

02 Feb 2010

<brag>DRW is sending me to PyCon 2010! I love my job >.< \</brag>

바탕화면을 이걸로 해놨더니 다시 산토리니 가고 싶어서 죽겠네그냥.

01 Feb 2010

memo: building 32bit apps in 64bit linux w/ g++ requires package g++-multilib

어제 보은이네 가서 떡볶이랑 순대 배터지게 먹고 맥주 다섯캔을 처마시고 집에 와서, 열두시간 자고 일어난 뒤, 삼겹살 구워먹으려고 해동시키는 중. 팔자 조오타. -_-

30 Jan 2010

PyCon 2010 Wishlist

I'm thinking of going to PyCon 2010 in Atlanta. I'm not sure about whether my company will reimburse for me to go to a software engineering conference (I'm supposed to be a trader, after all) but I wanna go anyway.

A brief look on the schedules timetable shows a lot of yummy talks. Sessions that I wish to attend:

Friday:

  • Optimizations And Micro-Optimizations In CPython (#38) : optimization is always an interesting subject.
  • Maximize your program's laziness (#58) : laziness could save both your memory and time
  • The Ring of Python (#189) : Eventually I would want to move on to Jython or IronPython
  • Python in quantitative finance (#158) : Trader, after all
  • Powerful Pythonic Patterns (#186) : This should be nice, but unfortunately it collides with the previous one

Saturday:

  • Demystifying Non-Blocking and Asynchronous I/O (#164) : yummy subject
  • Unladen Swallow: fewer coconuts, faster Python (#73)
  • Dude, Where's My Database? (#133) : Talks about NoSQL databases. Collides with Unladen Swallow.
  • Understanding the Python GIL (#82)
  • Mastering Team Play: Four powerful examples of composing Python tools (#184)
  • Actors: What, Why, and How (#161)
  • Threading is not a model (#187)
  • Python's Dusty Corners (#182)

Sunday:

  • Eventlet: Asynchronous I/O with a synchronous interface (#141) : coroutines.
  • Optimal Resource Allocation using Python (#36) : solving optimization problems with Python.

There are other topics I'm willing to look into.. but these are the main things. Pity there isn't any sprint session that looks interesting for me..

MarketsWiki 오옷 좀쩐당

많은 정보를 저장하는 로그 파일도 좋지만 파싱하기 쉬운 로그 파일이 매우 절실하다.

연섹대 된것도 억울한데 고자라니

29 Jan 2010
28 Jan 2010

일기

어젯밤에 일기를 써놓고 퍼블리시를 안하고 잤네. 가끔은 일기를 좀 쓰고 살아야겠단 생각에..

  1. PyCon 2010 이 점점 가고 싶어지고 있다.... 듯..... (아 젠장 링크가 한개 모자라다...) 한데.. 소프트웨어 엔지니어들은 회사에서 컨퍼런스 보내주는 비용이 따로 책정되어 있던데, 트레이더들은 어떤지 몰라서 고민중이다. 그냥 내돈내고 갈까. 쩝. -_- 올해 AAAI 도 애틀랜타구나.. KDD 는 워싱턴 DC. 가서 뭐 대단한걸 배우진 못하더라도 그냥 스스로를 자극하는 계기로라도 일년에 한두개쯤은 가보고 싶은데. 미국에 와서 사는 몇 안되는 장점중의 하나가 아닌가.. ㅠ.ㅠ
  2. 요즘 회사에서 마련해준 ESL 클래스를 듣고 있다. 1주일에 한 번 선생님이 와서 수업하는 형식인데, 한 번에 2시간인 것은 좋은데 꼴랑 다섯 번. 파일럿 형식처럼 해보고 앞으로 계속할지 말지 결정한다고 하는데 벌써 세번했으니 절반넘게 지났네여. 한거없는데...
  3. 요 며칠간은 남는 시간을 전부 AOJ 저지모듈 새 버전 코딩하는 데 보냄. 액터 모델 관련 고민만 열심히 했는데, 결국은 최소한의 기능을 제공하는 스레드 기반 액터를 짰다. 과거에 비하면, 성능은 버리고 코드의 구조만 개선한 듯.. --; 기존 AOJ 에 얼른 끼워보고 싶은데 과연. 행운을 빌어주세여.
  4. iPad 라이브블로깅 흥미진진하게 봤는데, 아이폰 있는 사람에게는 영 어필할 꺼리가 부족하지 않나 싶다. 아이폰 킨들 앱으로 책보는 것도 충분히 괜찮다능. $499 라는 말에 좀 혹하긴 했지만...
  5. 집의 데스크탑 윈도우 매니저도 xmonad 로 바꿨다.
  6. 시카고의 겨울: 지난 주는 진짜 따뜻해서 (최하기온이 영상인 날도 있었다) 반팔 위에 잠바만 입고 장보러 가는 등의 만용을 발휘했더니 시카고의 신이 분노하셨는지 이번 주는 조낸 춥다. 낼 영하 18도 고고싱 ^ㅁ^ 다시 내복개시! ㄸㄷ

회사의 모든 사람들이 iPad 프리젠테이션 라이브블로깅 페이지를 열어 놓고 있는듯 ㅋㅋㅋ

26 Jan 2010

google protobuf: 얘네들은 이렇게 자기네 인프라스트럭처 다 공개하면 뭘먹고 살지. 맵리듀스 있으니까 상관없다 이건가. -_-;;

소녀시대 - 힘내

아.. 블로그에 소시 동영상 링크하려니까 느껴지는 이유 모를 부끄러움을 무릅쓰고 올려본다. -_-; 소시 노래중 제일 좋아하는 노래. '하지만 힘을 내 여기까지 왔잖아' 라는 가사 때문이다. 참으로 조야한 가사지만 워낙 조야한 것에 잘 반응하는 단순무지한 성격이다 보니.. -.- 하하;; 어릴 때 보던 각종 용자만화 주제가의 대체물 쯤 되는 거 같다. (....)

git tutorials from github; nice wording and graphics..

  • PyGLPK: Python interface to GLPK
  • PyMathProg: Adaptation of GNU Mathprog in Python, uses PyGLPK as backend
25 Jan 2010
24 Jan 2010

새벽 다섯시까지 코딩.... 오랜만이다. 오랜만에 하니까 재밌네 ㅠㅠ 자야지 ㅠㅠㅠ

이 커멘트 를 위한 해설:

일단 스레드랑 크리티컬 섹션, 뮤텍스 등을 쓰는 전통적인 스레드 기반 프로그래밍 모델은 이해하고 있을 거라고 생각하고.. 요즘 많이들 하는 게 이벤트 기반으로 멀티스레드 어플리케이션을 작성하는 거야. 간단하게 말하자면 메시지 큐를 유지하고, 이것을 동기화하는 작업 등등을 직접 구현하는 게 아니라 프레임워크에서 이같은 작업을 하도록 하고, 우리는 메시지가 왔을 때 메시지를 처리하고, 결과 메시지를 다른 애들에게 보내고 종료하는 함수들만을 제공하는 거지. 이와 같은 작업들을 언어 차원에서 지원하는 가장 대표적인 예가 Erlang 이고. Scala 도 이것과 비슷한 모델을 쓸 수 있는 라이브러리를 표준 라이브러리에서 제공하고 있지.

Stackless Python 은 이와 같은 모델을 파이썬에서 사용할 수 있도록 만든 실험적인 구현인데 (하는 일이 액터 모델과 완전 같은 건 아니지만) 거기에서 가장 큰 문제는 얘가 스레드를 안 쓴다는 것... 파이썬은 Global Interpreter Lock (구글 요망) 때문에 여러 개의 스레드를 돌린다고 해서 속도가 올라가는게 아니거든. 그래서 얘는 싱글 스레드 위에서 여러 개의 가상 스레드 (tasklet) 를 사용해 컨텍스트 스위칭에 들어가는 부하를 줄이는 데 더 중점을 두고 있지. 문제는 근데 알고스팟 저지에서는 많은 작업들이 블러킹 I/O 로 처리되기 때문에 (외부 프로그램 실행/컴파일/네트워크 접근 등이 가장 많은 시간이 드는 작업) 만약 얘들이 블러킹되어버리면 다른 애들까지 실행할 길이 막혀버리지... 반쪽짜리 파이썬 스레드라고 해도, 블러킹 I/O 가 있을 경우에는 다른 스레드를 실행할 수 있게 해 주는데. 때문에 stackless 도 사용할 수 없단 얘기.

블러킹 I/O 와 넌블러킹 I/O 를 간단히 설명해 보면.. I/O 결과를 기다릴 때 해당 스레드가 멈춰 있느냐 계속 움직이느냐의 차이인데. scanf() 나 fread() 등등은 블러킹 I/O 의 가장 전형적인 예지. 데이터를 다 읽어온 후에야 함수가 반환되니까.. 반면 넌블러킹 I/O (Asynchronous I/O) 에서는 함수는 곧장 반환하고, 입출력이 끝나면 해당 스레드에 메시지나 시그널을 보내주는 형식으로 구현되지.. 이거는 결국 운영체제 차원에서 지원할 수밖에 없는데 윈도우의 IOCP, 리눅스의 epoll, BSD 의 kqueue 같은 게 있고.. 특히나 네트워크 같은 경우 CPU 보다 한없이 느리기 때문에, 넌블러킹 I/O 를 잘 이용해서 CPU 자원을 최대한 활용할 수 있도록 하는 게 중요하지.. 그래서 각종 네트워크 라이브러리 (루비의 이벤트머신, 파이썬의 트위스티드, C++ 의 ACE-_-; 와 부스트의 asio, 자바의 네티 등등..) 에서는 이런 것들을 거의 다 지원하고 있지.

다른분들 틀린거 있음 지적바랍니다. 'ㅅ' 맥주 먹었더니 알딸딸 아 자야지

AOJ 새 저지 모듈에 Erlang 액터 모델을 쓰고 싶어서 이것저것 뒤져봤는데, immature 한 라이브러리밖에 없다. stackless python 을 이번 기회에 써 보는 건가! 하고 좋아하고 있었는데, 네트워크 I/O 나 서브프로세스 실행 같은 블러킹 I/O 가 많으면 안되는구나. 아 캐난감. 네트워크는 asynchronous 로 바꿔주는 패치가 있다지만 서브프로세스 실행은 그야말로 캐안습.;

스칼라가 자꾸 나를 부르고 있는 듯한 착각이 드는데.... -_-;;;

아니면 node.js 라도 써볼까 냐하하!