| 25 Dec 2009 |
How To Write Fast CodeHow To Write Fast Code: A ECE course at CMU consisting high-performance numerical computing. Awesome!!! +_+ update) I typed CME while intending CMU. Yes I work at a trading firm... |
| 24 Dec 2009 | |
| 23 Dec 2009 |
Autofocus System링크, 래쓰형 이 번역한 한글 버전. GTD 같은 시간 관리 기법이라고 할 수 있겠다. GTD 에 관심이 쪼금 있었을 뿐, 시간 관리 시스템이라는 것에 관심만 좀 있었는데 이건 너무나도 간단해서 쉽게 시작할 수 있다. 회사에서도 쓰고, 지난 주말부터 AOJ 작업하는 데 써서 사실 며칠 되진 않았는데.. 나쁘지 않은 것 같다. 우선 이 시스템의 가장 좋은 점은, 할 일을 다 못하더라도 줄을 치는 것이다. 비록 마지막에 새 항목으로 추가할지언정, 한번 손 댄 일은 무조건 줄을 친다. 별것 아닌 것 같지만, 이것이 가지는 의미는 꽤 크며, 일반적인 할 일 목록과 이 시스템을 구분짓는 가장 큰 요소다. 일반적인 '할 일 목록' 의 최대 문제점은, 한번에 슥 해치울 수 있는 단발성 외의 일들을 처리하기가 힘들다는 것이다. 오래 걸리는 일들은 할일 목록에 집어넣는다 한들 휙 처리할 수 있는 것이 아니기 때문에 목록에 쭉 남게 되는데, 이러면 일을 해도 하는 것 같지가 않고, 항상 목록에 있는 것이 있으니 긴장감도 떨어지고, 시스템이 운영되지가 않는 것 같다는 '느낌' 이 들게 된다. 이 느낌은 항상 지금까지 내가 시도해온 모든 '할일 목록' 을 정지 상태로 몰아넣은 주범이었다. 그런데 여기서는 큰 일을 사실상 여러 개의 조각으로 나누어서 할 수 있다. 각각의 조각을 할 때마다 목록에는 줄이 그어지고 새 항목이 추가되게 된다. 일반적인 할 일 목록에서는 일을 '끝내는 것' 만이 진행의 유일한 수단이었는데, 여기에서는 일을 '하는 것' 이 진행의 수단이 되는 것이다. 조각들을 클리어할 때마다도 줄을 그을 수 있기 때문에 >.< 나같은 피드백 중독자들에게는 이것이 시스템을 느슨하게 만들지 않는 좋은 요인이 된다. 이 시스템의 두 번째 특징은 페이지 단위로 할 일을 관리한다는 것이다. 한 페이지에 남은 할 일들을 전부 '건드리거나', 명시적으로 '방치하지' 않는 이상, 다음 페이지로 넘어갈 수 없다. 따라서 절대 하지 않고 목록에 '남아만 있는' 작업들이 생기는 것을 막을 수 있게 된다. 이런 시스템 모두가 생각해 보면 내가 이노티브 시절 trac 을 쓰던 것과 굉장히 닮았다. 당시는 내가 지금까지 일하던 도중 시간 대비 코드 생산량이 가장 많던 시기였는데.. 당시에는 ticket system 을 굉장히 유용하게 썼다. trac 은 ticket 과 svn commit log, wiki 가 서로 상호 링크가 된다. 커밋로그에 티켓 번호를 #번호 로 언급하면 링크가 걸리고, 티켓에 [리비전] 쓰면 커밋 로그로 링크가 자동으로 걸리는 식. 그래서 큰 티켓을 여러 개의 작은 티켓으로 분할하고, 일을 마치지 못하더라도 진행 상황을 티켓 로그로 남기는 식으로 '일을 진행한다는 느낌' 을 받을 수 있었다. 100시간을 넘게 쏟아부은 거대 티켓을 닫을 때의 그 기분이란.... ;) 그리고 마일스톤이 있어서, 절대 하지 않는 일 이 남아있는 것을 막을 수도 있었고. 덕분에 진짜 재미있게 열심히 일할 수 있었던 것 같다. 그 이후로 그와 같은 개인적인 형태의 티켓 시스템을 도입해 보려고 열심히 노력했지만 이것이 쉽지 않았는데.. 이 시스템을 잘만 습관화하면 비슷한 일을 할 수 있을 것 같기도 하다. 결론은 강추! 일요일 하루 동안 작업하고 찍은 노트. 오랫동안 미루고 있던 AOJ 작업을 꽤 마이 했다 'ㅅ' |
|
7시 전에 출근했더니, 9시 40분밖에 안됐는데 점심 먹고 싶다. |
|
| 21 Dec 2009 |
서울에서 부쳤던 책들이 다 도착해서 책장 정리를 했다. 대부분은 서울 집에 남겨두고 오긴 했지만, 내 취향이 너무 명확하게 드러나는 이런 구성이라니...
-_-; |
| 20 Dec 2009 |
토요일 저녁시카고 트레이딩 회사에서 일하는 20대 한국인 남자들 여섯 명 모임. 전골에 쏘주먹고 유진이형네 집에서 우리 말로 떠들면서 일곱시간 포커 치니 어 왜 한국같지... 하여간 재밌었다. 또 그 중 한 명이 수열이 초등학교 친구 베프란 것도 오늘 알음. 아 이 좁은 세상 !! -_ -;; 결론: 착하게 살아야 한다. |
|
버터구이 옥수수 해먹겠다고 냉장고에 있는 옥수수 꺼내서 무작정 버터를 바른 다음에 오븐에 쳐넣은 구종만, 하수열 부부 (27). 냄새는 좋은데 과연 이거 잘되는걸까... update: 맛있다. |
|
| 19 Dec 2009 |
iostream / cstdio 속도 비교minjang 님 블로그 에서 보고 들어갔는데: C++ cout faster than printf WTF? 내생각엔 그냥 저 테스트 한 사람이 printf 할땐 화면 출력해 놓고 cout 할땐 파일 리디렉션 해서 화면 출력에 들어가는 시간이 dominate 해버린 게 아닐까 한다. cout 이 더 빠르다니 이런 닭잡는 소리가 있나. 당연히 redirect 해서 파일 입출력하게 해야 하는 것 아닌가 -_-; 아 놔 이거. |
|
헐퀴 아이리스 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이런미친시발 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ |
|
| 16 Dec 2009 |
Making scipy.weave parallel by releasing the GILAs everybody knows, the current implementation of CPython is pretty much incapable of doing any serious multithreaded computation, because of the GIL. Python's most current solution to this problem is using separate processes instead of threads - in most of the cases, this actually suffices. A problem I'm trying to solve at work now is embarrassingly parallel. It was natural to try to make use of my quad-core Xeon desktop to decrease my 1-hr runtime down to 15 minutes; however, the programs use inputs from a vast (4+GB) numpy array which is common to all processes. Sending an array of this size through IPC is simply ridiculous. Yes, there are ways to 'share' a single copy of numpy array across processes - but it required me to make drastic changes to the program's structure. I tried numpy.memmap which is essentially an array using memory-mapped files. Single-thread performance was degraded 10x... dude, I was just trying to achieve 3+x speedup. Is this too much??? What I actually ended up doing is writing performance-critical piece of code in C++, using scipy.weave (it basically lets us to inline C++ code in Python, compiling the C++ code as a Python package). Yes, it's not pleasant, but when the C++ code snippet is small, it's doable. Yes, it's not a game-changer - it doesn't allow true multithreading. However: weave is compiled as a C Python module - and they can release the GIL if a macro is used: Py_BEGIN_ALLOW_THREADS. So, simply adding the two macros at the beginning and the end of the inlined code can make it (almost) truly multithreading. |
| 15 Dec 2009 | |
|
대학원 가면 회사에서 학비 reimburse 해주는 제도가 있어서.. 회사 애들이 전부 GRE 보고 파트타임 마스터 따는 게 대세인 것 같길래 나도 한번 통계 석사를 따볼까 심각하게 고민했는데, U of Chicago 통계는 탑스쿨이었구나. orz 미방도 안듣고 통계학 B 인 나 따위를 받아주진 않겠지? orz 매스 섭젝이라도 봐야 되나.. 아.... |
|
| 14 Dec 2009 |
Preparing EC2 Image for AOJAOJ with Amazon EC2 의 연장선에서, 셋업 시도. 다 잘 되고 있는데, 파이썬 인터페이스인 boto 의 최신 버전에서도 아직 stop/resume instance 기능이 지원되지 않는 듯. ec2-api-tools 에서는 이게 지원되는데, 이제 와서 이쪽으로 fall back 해야 하나.. 너무 삽질 같은데... ㅠ.ㅠ 아니면 패치 만들어서 제출해볼까? -_- (update) 소스코드 뒤져서 stop/resume 하는 법 알아냄. Useful linksTutorials linksBoto initial setup walkthrough |
| 12 Dec 2009 |
해리 포터
|
| 11 Dec 2009 |
어느새 테메레르 2권을 읽고 있다. |
앨범커버W&Whale 이 리메이크한 '슬픈 노래는 부르지 않을거야' 를 즐겁게 듣고 있다. 좀 음산하지만.. 그래서 벅스에서 mp3 을 사서 아이폰에 넣었는데 앨범 커버가 .... 앨범 디자인도 조덕배 활동 시기로 맞췄구나? 워드패드로 앨범커버 만들지 마 이놈들아 -_-;;; .... 결국 whale 사진 받아서 커버 대신 집어넣었다. |
|
| 10 Dec 2009 |
한글 제목 feedburner 테스트3아아 마이크 테스트 |
ICML Reading List지난 3년간 프로시딩 목록을 훑으면서, 제목이 무슨 뜻인지 알아들을 수 있는 것만 골랐다. -_-; 집에 있는 학부 교과서부터 다 읽는게 우선인거 같긴 함... ICML 2007
ICML 2008
ICML 2009
Deep Belief Networks (레이어 많은 신경망) 란게 요즘은 열라 핫한거 같은데 어디 가서 공부해야 하나? -_- |
|
Neural NetsReinforcement Learning Lecture on Videolectures 보고 있는데, 강의하는 아저씨가 이런 얘길 한다:
... ML 공부하는 사람들은 다들 신경망에 낚여 오나봐. 원석이형도 신경망 보고 컴퓨터 공부하고 싶단 생각을 했다던데. -_- |
|