글

12월, 2008의 게시물 표시

맥 OS X 터미널에서 간단한 색상 설정하기

가끔 터미널에서 작업을 할 때 가독성을 높였으면 할 때가 있습니다. 터미널 사용량이 많아지면 좀 더 다양하고 자기 입맛에 맞는 색상 설정을 할 수 있겠지만, 간단한 작업만 하는 경우 다음 두 가지 설정만 해 줘도 꽤 편합니다. 1. ls 명령어 입력 시 색상 나오게 하기 ls -G 를 사용하면 디렉토리는 파란색으로, 실행 가능한 파일은 빨간색 등으로 나오기 때문에 한결 가독성이 좋습니다. 매번 ls -G 를 입력하기는 귀찮으니, 터미널 실행시마다 alias ls='ls -G' 를 해 주기 위해서 다음과 같이 합니다. $ cd ~ // $HOME 으로 이동 $ vim .bash_profile // .bash_profile 파일을 열어서 다음을 추가해 줍니다. source ~/.bashrc 저장하고 닫습니다. $ vim .bashrc // .bashrc 파일을 열어서 다음을 추가합니다. alias ls='ls -G' 2. vim 에서 구문 색상 보이기 역시 다양한 설정을 할 수 있지만 가장 간단한 방법은 syntax on 만 해 주는 것입니다. $ cd ~ // $HOME 에서 vim .vimrc // .vimrc 파일을 열어서 다음을 추가합니다. syntax on

맥 OS X / UNIX 에서 Boost 및 QuantLib 설치

Windows 환경에서 Visual Studio 를 사용하는 경우 어떻게 보면 더 간단하게 설치할 수 있을 수 있습니다. Boostpro computing 에서 제공하는 installer 를 사용하여 간단하게 Boost 라이브러리를 설치합니다. QuantLib 을 다운받은 후 압축을 풀면 소스코드와 함께 Visual Studio 프로젝트 파일도 보입니다. 자신의 Visual Studio 버전에 맞는 프로젝트를 가져옵니다. 환경 변수를 적당히 설정한 다음 빌드 하면 라이브러리와 testsuite 실행 파일이 하나 생깁니다. 한글로 설명해 놓은 자료가 곳곳에 있어서 간단히 웹에서 검색만 하면 쉽게 따라할 수 있습니다. Linux/Unix/Mac OS X/Cygwin 환경에서는 좀 다릅니다. 1. Boost 라이브러리 만들기 사실, 간단하게 컴파일 시간을 줄이면서 Boost만 사용하려는 경우에는 라이브러리를 빌드하지 않고, 헤더 파일만 포함해서 사용해도 됩니다. 하지만, QuantLib 의 경우에는 라이브러리가 빌드되어 있는 Boost 도 필요합니다. 그렇지 않으면, ./configure 실행 시 Boost 가 제대로 설치되지 않았다는 에러가 발생합니다. Windows 환경에서는 Boostpro computing 의 인스톨러로 간단히 설치하고, Visual Studio 에서 라이브러리 path 만 잘 설정해 주면 편하게 빌드할 수 있지요. Unix 환경에서는 다음과 같이 합니다. $ cd 소스 코드가 있는 폴더 $ ./configure --prefix=라이브러리 설치할 폴더 $ make install 위에서 설정한 에 lib 란 서브폴더를 만들면서 거기에 라이브러리를 잔뜩 남겨 줍니다. 2. QunatLib 라이브러리 만들기 비슷합니다. configure 실행시 아까 컴파일해 준 Boost 라이브러리와 소스 헤더파일이 위치한 곳만 잘 알려주면 됩니다. $ ./configure --with-boost-include=Boost 헤더 파일 위치한 폴더 --with-boo...

Python 날짜 조작을 쉽게, dateutil 사용하기

다른 블로그에 덧글 달았던 내용입니다. 금융 문제를 프로그래밍 할 때 날짜 조작이 까다롭습니다. 예를 들면, 매달 말일의 코스피200 지수를 구해서 평균을 내야하는 경우가 있습니다. 매달 말일을 다 손으로 입력할 수도 있지만, 12번 입력해야하는 경우 생각보다 꽤 귀찮습니다. 그래서 1월 31일 에서 한달 씩 더해서 12월 31일까지 매달 말일을 어떻게 구할 수 없을까 고민을 해 보게 됩니다. Python 에서 날짜를 더하는 방법으로 datetime.timedelta 를 사용할 수 있습니다. 문제는 일일 단위만 더할 수 있다는 것입니다. 1월 31일에서 30일을 더해 버리면 2월 28일을 구할 수가 없습니다. 어떻게 해야 할까요? Python 에 third-party package 로 dateutil 이 있습니다. http://labix.org/python -dateutil 에서 다운로드 받으면 됩니다. Python 의 datetime.timedelta 가 날짜만 넣을 수 있는데 이것의 확장 버전인 relativedelta 를 사용합니다. years, months, weeks, days, hours, ... 더하는 것이 다 가능합니다. 간단한 예제입니다. >>> import datetime >>> from dateutil import relativedelta >>> today = datetime.date.today() >>> today datetime.date(2008, 12, 19) >>> nextmonth = today + relativedelta.relativedelta(months=1) >>> nextmonth datetime.date(2009, 1, 19) 5월 31 에서 1개월 더하는 것도 마찬가지로 >>> today = datetime.date(2008, 5, 31) >>> nextmonth = today + relati...

맥에서 수학/공학 위한 Python 설치하고 설정하기

수학/공학 문제 해결을 위해 다양한 프로그래밍 언어를 이용할 수 있다. 그 중에서 Python 을 이용하면 조금 민첩하게 움직여 볼 수 있다. 성능이 만족스럽지는 않지만 특유의 민첩성은 매력적이다. 하지만, 기본적인 것만 깔아 놓은 상태인 경우 수학/공학 문제 풀이를 위해 활용하기에 좀 부족하다. NumPy, SciPy, Matplotlib, wxPython 을 결합시키면 Multidimensional array, Scientific Library, 2-D plotting 를 쉽게 사용할 수 있다. 한방에 깔 수 있는 패키지로는 EPD: ENTHOUGHT Python distribution 이 있다. http://www.enthought.com/products/epd.php 학술용은 무료지만, 그 외에는 99 달러 내야 한다. 당장 필요한 것만 그냥 스스로 깔련다. 문제: 맥 os X 용 NumPy, SciPy, Matplotlib, wxPython 을 다운받아서 설치 파일을 실행 시켰는데, python.org 에서 배포된 Python 이 있어야 설치할 수 있다고 한다. 맥 설치시 자동으로 제공되는 Python framework 위에는 설치가 불가능하다. 해결: http://www.python.org/ 2.5.4 버전 다운로드 받아서 설치하였다. 문제: 그래도 위 패키지들이 설치가 되지 않는다. Python framework 문제를 계속 이야기한다. 확인해 보니, 기존에 맥 system 에 깔려 있는 Python 이 전체 framework 을 차지하고 있기 때문이다. 그렇다고 해서 기존에 깔려있는 python 을 지워서는 안 된다. 맥이 아무리 UNIX 기반이라고 해도, 기본 설정을 마음대로 건드리면 좋지 않기 때문이다. 해결: 설치 안내를 자세히 읽어 보니 시스템의 Python.framework 의 symbolic 링크를 만들면 된다고 한다. 터미널을 실행시켜서 다음 두 명령어 입력해서 해결 하였다. $ cd /Library/Frameworks $ sudo ...

맥 OS X 에서 PATH Environment Variables (환경 변수) 수정 방법

$ sudo vi /etc/paths 상황: 유닉스 환경에서 c++ 소스코드를 작성. 터미널에서 컴파일해서 실행을 시켜보려고 한다. 테스트를 위해 test1.cc testfunc.h testfunc.cc 세 파일을 만들었다. 터미널에서 위 소스 코드를 $ gcc -c test1.cc testfunc.cc 로 컴파일 하고 링크는 하지 않아서 test1.o testfunc.o 만들었다. 링크를 위해, $ g++ -o test test1.o testfuc.o 를 실행 했다. -c Compile and assemble, but do not link -o place the output into 문제: 이제 test 를 실행시키려고 $ test 입력하니 실패! 해결: $ ./test 입력하면 된다. 문제: 매번 ./test 로 실행시키려니 귀찮다. 해결: PATH environment variables 에 ./ 를 추가하면 된다. 문제: 어떻게 추가하나? 해결: $ sudo vi /etc/paths 실행. paths 라는 파일을 열어서, ./ 를 끝에 추가 후 저장하면 된다. 앞으로는 컴파일 한 후 $ test 엔터만 쳐도 바로 실행해 볼 수 있다. 실제 덩치 큰 프로젝트는 MakeFile 을 이용해야 한다. 덩치 큰 프로젝트는 xcode 사용하는게 아무래도 많이 편하다.