목록프로그래밍 (299)
Dharma
문혜군이 말했습니다. "참, 훌륭하도다. 기술이 어찌 이런 경지에 이를 수 있을까?" 요리사가 칼을 내려놓고 대답했습니다. "제가 귀히 여기는 것은 도입니다. 기술을 넘어선 것입니다. 제가 처음 소를 잡을 때는 눈에 보이는 것이 온통 소뿐이었습니다. 삼 년이 지나자 통째인 소가 보이지 않게 되었습니다. 지금은 신(神)으로 대할 뿐, 눈으로 보지 않습니다. 감각 기관은 쉬고, 신(神)이 원하는 대로 움직입니다. 하늘이 낸 결을 따라 큰 틈바귀에 칼을 밀어 넣고, 큰 구멍에 칼을 댑니다. 이렇게 정말 본래의 모습에 따를 뿐, 아직 인대나 건을 베어 본 일이 없습니다. 큰 뼈야 말할 나위도 없지 않겠습니까? 훌륭한 요리사는 해마다 칼을 바꿉니다. 살을 가르기 때문입니다. 보통의 요리사는 달마다 칼을 바꿉니다...
"How to Design Programs" 라는 책에서 언급된 DESIGN RECIPE 라고 불리우는 프로그램 디자인을 하는데 필요한 몇가지 단계 Contract 단계 area-of-ring : number number -> number area-of-ring 이라는 프로그램은 number 2개를 인자로 받아서 number 를 리턴하는 프로그램이다. 라고 구상하는 단계 Purpose 단계 outer 라는 바깥쪽의 원의 반지름과 inner 라는 안쪽 원의 반지름을 가진 두원의 사이에 끼어져 있는 고리의 영역을 계산하기 위한 것이 목적이다. Example 단계 (area-of-ring 5 3) 이거나 area-of-ring (5, 3); 은 50.24 의 값이 나와야 한다. Definition 단계 (de..
In programming, the best way to learn is often to begin experimenting as soon as possible. A full theoretical understanding can come later. - OnLisp 중에서 프로그래밍을 배우는데 있어서 가장 좋은 방법은 가능한한 빠르게 실험을 해보는 것이다. (빠르게 예제를 짜보는 것) 전반적인 이해는 흔히 그 다음에 온다는 것이 폴 그레이엄이 말하는 방법입니다. 종종 프로그래밍을 공부한다고 치면 매뉴얼 부터 세세히 읽어가기 시작하면 금새 꿈나라로 가는 경우가 다반사기 때문에 후다닥 목차정도만 훓고 빠르게 이거 저거 짜보는 게 확실히 빠른 이해가 됩니다. 나이키 광고가 가지는 뜻이 절실해 지는 군요 프로그..
클로져를 이용해서 웹 어플리케이션 간단한 것을 만들어 보고 싶은 욕망이 있을 것입니다. 만들어 보고 싶은 욕망은 의외로 간단하게 해결이 됩니다. 바로 컴포져(Compojure) 를 이용하면 쉽게 만들 수가 있습니다. 예전 포스트 를 보고 클로져 개발환경이 세팅되어 있다고 가정합니다. compojure 로 만들어진 예제를 다운 받습니다. $ cd ~/work (없으면 만들어 줍니다) $ git clone git://github.com/weavejester/compojure-example.git $ cd compojure-example $ lein deps $ lein ring server 이렇게 하고 좀 오랜 시간을 기다리면 Port 3000 번에 Jetty 를 이용한 어플리케이션 서버가 떠 있는 것을 확..
폴 그레이엄은 리습에 관한 책 두권을 썼습니다. 한권은 Common Lisp 을 바닥부터 쉽게 배울 수 있는 책입니다. 그리고 또 한권이 "OnLisp" 입니다. 마스터 하기만 하면 초 상급 리습 프로그래머가 될 수 있는 지름길로도 알려졌지만 그 난이도가 장난이 아닙니다. 요즘 마스터를 시도하고 있는데 역시나 무지 어렵습니다. 너무나 어려워서인지 잘 팔리지도 않아서 폴 그레이엄 사이트에 가면 무료로 배포하고 있습니다. ㅎㅎ 여기 에서 받아가세요. 그나저나 Chapter 7 의 제목이 'Macros' 더군요. 왠지 머릿속에서 '두둥' 하는 효과음이 들리는 것 같은 느낌이였습니다. (매크로는 진정한 리습을 쓰는 이유라고 까지 불리웁니다)
"리습은 그것을 마침내 손에 넣게 되었을 때 경험하게 되는 심오한 깨달음을 위해서라도 배울 가치가 있다. 리습을 이용할 일이 그렇게 많지 않다고 할지라도 그 경험은 그 자체만으로도 당신을 훨씬 훌륭한 프로그래머로 만들어 줄 것이다." - 에릭 레이먼드 (Eric Raymond) 제가 아는 선배가 송재경 (바람의 나라, 리지니 만드신 분) 씨와 인터뷰를 할 일이 있었는 데 그 분이 하신 말씀 중에 "프로그램은 어떠한 언어로 짜는 것이 중요한 것이 아니다. 가장 중요한 것은 전산적인 마인드를 소유하는 것이다" 라는 이야기를 들었다고 합니다. 상당히 많은 시간이 지났지만 이 이야기가 가지고 있는 의미는 아직까지도 도움이 됩니다. 저 또한 후학들을 만나면 이와 같은 이야기를 많이 합니다. 왜 리습을 공부해야 하..
제가 사용하고 있는 만화책 Viewer 는 JJComics 입니다. 일단 무료 이고요. 여러 코믹스 뷰어를 설치해 봤지만 이 어플만한 녀석이 없더군요. 그런데 TIF 파일을 못 읽는 안타까움이 있습니다. 하지만 Linux 사용자라면 편하게 이미지 파일 형식을 변환할 수 있는 툴이 들어 있습니다. convert 라는 툴인데요. Command Line 에서 편하게 파일을 변경할 수가 있습니다. TIF -> GIF 로 바꿔서 다시 압축을 해주면 JJComics 에서 볼 수가 있습니다. $ find . -type f -name '*.TIF' | while read filename; do echo "converting ${filename}"; convert "${filename}" "`echo "${filenam..
lein 을 이용한 프로젝트 생성시 요즘 clojure 버젼이 1.4.0 이 기본인 것처럼 만들어 집니다. 아무 생각 없이 slime 을 연결해서 코딩을 시작하면 무엇인지 이상한 기분이 들기 시작합니다. 바로 doc 함수 입니다. doc 함수가 동작을 안합니다. "1.2.1" 버젼에서는 제대로 동작했는데 갑자기 동작안하기 시작합니다. 정확히는 "1.3.x" 와 "1.4.0" 에서 동작을 안합니다. REPL 상에서 user> (use 'clojure.repl) 만 해주면 그 다음부터 사용이 됩니다.
하둡에서 파생된 로그를 수집하고 , 분석할 수 있는 오픈소스 솔루션입니다. 물론 로그를 분석하는 것은 하둡의 맵-리듀스를 이용합니다. 하둡 자체가 로그를 분석하기 위한 목적으로 태어났기 때문에, 로그를 수집하는 솔루션은 어찌보면 당연하게 하둡에서 파생될 수 밖에 없었을 거라 생각합니다. 설치법 자체는 간단합니다. 척와 소스를 내려 받습니다. http://ftp.daum.net/apache/hadoop/chukwa/chukwa-0.4.0/ 여기에 가면 있습니다. $ cd ~/work $ tar xvzf chukwa-0.4.0.tar.gz $ cd chukwa-0.4.0 $ ant 하면 컴파일 되면서 설치 완료 입니다. 척와를 제대로 동작시키기 위해서는 하둡이 설치되어 있어야 합니다. 하둡 설치는 예전 문서..
boost 1.46 버젼, 쓰리프트 0.8.0 버젼을 기반으로 하여 스크라이브를 설치하는 방법입니다. 스크라이브는 현재 4년간 소스에 변동이 없습니다. 따라서 최신 라이브러리 기반으로 컴파일 할려고 하면 알려준 방법대로 되지 않습니다. 1. 부스트 설치 $ sudo apt-get install libboost-all-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev 언제나 우분투 (Debian) 계열 (민트도 우분투 계열이라고 볼 수 있으니..) 이라고 가정하고 이야기 할 것입니다. 2. 쓰리프트 (Thrift) 설치 $HOME/work 밑에 설치한다고 가정하고 $ cd ~/work $ git clone git://git.apa..