목록it (189)
Dharma
클로져를 이용해서 웹 어플리케이션 간단한 것을 만들어 보고 싶은 욕망이 있을 것입니다. 만들어 보고 싶은 욕망은 의외로 간단하게 해결이 됩니다. 바로 컴포져(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) 만 해주면 그 다음부터 사용이 됩니다.
보통 이런것들 볼 때마다 과장이 좀 심하구나 라는 생각을 했는데, IT 관련 사업을 해 본바, 그리 과장이 아닌 것들도 눈에 띕니다. 유머라고도 볼 수 있고 또는 교훈이라고 생각할 수 있겠습니다. 1. \"오늘까지\"라는 말은 \"내일 아침까지\"라는 말이다. 2. 프로그램은 내가 원하는대로 움직이지 않는다. 타이핑대로 움직인다. 3. 요구 사양은 프로그램을 완성한 후에 추가된다. 기본 사양은 완성품을 고객이 보고 나서 결정된다. 상세 사양은 사용자가 프로그램을 사용해 본 이후에 결정된다. 4. 소프트웨어 설계에는 두 개의 방법이 있다. 하나는 결함이 있을 수 없을 정도로 단순하게 만드는 방법이다. 다른 하나는, 분명한 결함을 눈치채기 어려울 정도로 복잡하게 만드는 방법이다. 5. 코드는 개발 현장에서 ..
하둡에서 파생된 로그를 수집하고 , 분석할 수 있는 오픈소스 솔루션입니다. 물론 로그를 분석하는 것은 하둡의 맵-리듀스를 이용합니다. 하둡 자체가 로그를 분석하기 위한 목적으로 태어났기 때문에, 로그를 수집하는 솔루션은 어찌보면 당연하게 하둡에서 파생될 수 밖에 없었을 거라 생각합니다. 설치법 자체는 간단합니다. 척와 소스를 내려 받습니다. 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..
NodeJS 는 예전부터 C/C++ 이 차지하던 위치를 (최근에 Python 이 차지한 것 같은 이야기가 있습니다) 차지한 것 같은 언어 입니다. (C/C++ 에 비하여) 어렵지도 않고 아주 쉽고 편하게 서버 어플리케이션을 만들 수 있는 쉬운 언어 입니다. 그 쉬운 NodeJS 를 살펴볼 일이 있어서 잠깐 살펴보게 됐습니다. 설치법 여러가지 해줘야 하는 것이 있지만, 우리는 Ubuntu 를 쓰지 않겠습니까? 초 간단하게 설치가 가능합니다. (당연히 Mint 도 동일합니다) sudo apt-get install python-software-properties sudo apt-add-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get inst..
클라우드 서비스의 성능을 측정하기 위한 벤치마크 툴입니다. 여러개의 대안이 있을 때 어떤 것이 우리쪽에 더 적합한가 측정하기에 아주 훌륭한 도구 입니다. YCSB 메인 페이지 설치 방법 $ wget https://github.com/downloads/brianfrankcooper/YCSB/ycsb-0.1.4.tar.gz $ tar xfvz ycsb-0.1.4.tar.gz $ cd ycsb-0.1.4 컴파일 된 바이너리를 다운 받는 방법 (자바로 추정) $ git clone git://github.com/brianfrankcooper/YCSB.git $ cd YCSB $ mvn clean package 실제로 다운 받아서 컴파일 하는 방법. 그러나 컴파일이 안됩니다. asm 3.1.jar 의 압축이 풀리지..