Python script 파일을 만들어서 실행을 하다보면,
script 파일이 지금 현재 어느 경로에 위치하고 있는지 알고 싶은 경우가 있다.

이럴 때 사용할 수 있는 좋은 예약어가 하나 있다.

__file__


현재 실행 중인 스크립트 파일 이름을 의미한다.
단순한 파일 이름이 아니라 실행할 때 사용한 경로를 포함한 파일 이름이다.

테스트를 위해서 [ dir.py ]라는 이름의 Python script 파일을 다음 내용으로 생성해보자.

#!/usr/bin/python
# -*- coding: utf-8 -*-

import os

if __name__ == "__main__":

        print "__file__                                                       = " + __file__
        print "os.path.dirname(__file__)                              = " + os.path.dirname(__file__)
        print "os.path.realpath(__file__)                              = " + os.path.realpath(__file__)
        print "os.path.realpath( os.path.dirname(__file__) )   = " + os.path.realpath( os.path.dirname(__file__) )
        print
        print "os.getcwd()                                                 = " + os.getcwd()
        print
        print "os.path.basename( os.path.realpath(__file__) ) = " + os.path.basename(__file__)


실행을 해보면 다음과 같다.

$ pwd
/srv/workspace/barerepo

$ python ./dir.py
__file__                                                       = ./dir.py
os.path.dirname(__file__)                              = .
os.path.realpath(__file__)                              = /srv/workspace/barerepo/dir.py
os.path.realpath( os.path.dirname(__file__) )   = /srv/workspace/barerepo

os.getcwd()                                                 = /srv/workspace/barerepo

os.path.basename( os.path.realpath(__file__) ) = dir.py


dirname 은 상대경로를 알려주고 realpath 는 절대경로를 알려준다.
 
[ __file__ ] 예약어를 통해서 현재 경로를 확인하는 것에 대해서 살펴보고 있지만,
사실 지금 현재 경로를 알고 싶을 때에는 [ os.getcwd() ] 명령이 훨씬 더 많이 사용된다.

경로에서 파일이름만 뽑아내고 싶을 때에는 [ os.path.basename() ] 명령을 사용하면 된다.

반응형

만날 살펴보다가 꼭 신경안쓸 때 새로운 버전이 나온다.

• Defect #12650: Lost text after selection in issue list with IE
• Defect #12684: Hotkey for Issue-Edit doesn't work as expected
• Defect #13405: Commit link title is escaped twice when using "commit:" prefix
• Defect #13541: Can't access SCM when log/production.scm.stderr.log is not writable
• Defect #13579: Datepicker uses Simplified Chinese in Traditional Chinese locale
• Defect #13584: Missing Portuguese jQuery UI date picker
• Defect #13586: Circular loop testing prevents precedes/follows relation between subtasks
• Defect #13618: CSV export of spent time ignores filters and columns selection
• Defect #13630: PDF export generates the issue id twice
• Defect #13644: Diff - Internal Error
• Defect #13712: Fix email rake tasks to also support no_account_notice and default_group options
• Defect #13811: Broken javascript in IE7 ; recurrence of #12195
• Defect #13823: Trailing comma in javascript files
• Patch #13531: Traditional Chinese translation for 2.3-stable
• Patch #13552: Dutch translations for 2.3-stable
• Patch #13678: Lithuanian translation for 2.3-stable

마이너 업데이트는 새로운 기능이 추가없이 Defect 수정 위주이다.

개인적으로 그닥 피부에 와닿는 부분은 없지만... 업데이트는 해야지..... ^^



기존 2.3.0 버전 설치는 다음 포스팅을 참고해서 진행했다.

   - http://whatwant.tistory.com/553



1. PostgreSQL

   - 제일 중요한 데이터베이스를 혹시 모르니 백업을 해두자.

$ sudo su - postgres

$ pg_dump -Fc --file=redmine_20130503.sqlc redmine



2. Redmine 압축파일

   - 최신 버전의 Redmine을 다운로드 받고 압축을 풀자.

$ cd /srv/install/

$ wget http://rubyforge.org/frs/download.php/76933/redmine-2.3.1.tar.gz
$ tar zxvf redmine-2.3.1



3. Files 복사

   - 파일들과 플러그인들을 복사하자.

$ cd /srv/install/redmine-2.3.1/

$ sudo cp /srv/install/redmine-2.3.0/config/database.yml ./config/
$ sudo cp /srv/install/redmine-2.3.0/config/configuration.yml ./config/  (없을 수도 있다)
$ sudo cp -r /srv/install/redmine-2.3.0/files/* ./files/
$ sudo cp -r /srv/install/redmine-2.3.0/plugins/*  ./plugins/



4. Upgrade

   - 이제 업그레이드 작업 진행하면 된다.

   - Ruby 권한 관련 이슈가 있어서.... 아래 진행은 애초 설치 진행 時 (sudo su -) 권한으로 진행을 한 상황이다.

$ sudo su -
$ cd /srv/install/redmine-2.3.1

$ bundle install
$ rake generate_secret_token
$ rake db:migrate RAILS_ENV=production
$ rake redmine:plugins:migrate RAILS_ENV=production
$ rake tmp:cache:clear

$ rake tmp:sessions:clear




5. 권한 설정

   - 중요한 권한 설정을 해주자.

$ sudo su -
$ cd /srv/install/redmine-2.3.1

$ chown -R www-data:www-data files log tmp public
$ chmod -R 755 files log tmp public/plugin_assets
$ chown -R www-data:www-data ./config/database.yml
$ chmod 600 ./config/database.yml



6. 웹 설정

   - 링크 잡아주고 재시작하자.

$ sudo su -
$ cd /var/www/

$ ln -s /srv/install/redmine-2.3.1/public ./redmine
$ service apache2 restart



접속 성공~!!!

반응형

Enlightenment 에 대해서 알아보던 중 특이한 터미널을 하나 발견했다.
생긴 것만으로도 아주 특이한데, 그 소개를 보면 더욱 더 특이하다 못해 별나다.

"Terminology is a new terminal emulator. It started life during a vacation in Thailand in June of 2012. So it is young and fresh, so it's not perfect, but it's getting there."

칼슨 하이츨러(Carsten Haitzler)라는 아저씨도 리누즈 토발즈나 뭐 그런 아저씨들 같은 긱(Geek)인가 보다. 왜 휴가까지 가서 이런걸 만드는건지...

Enlightenment를 시작했고 리딩을 한 개발자이고, Raster 또는 Rasterman으로 오픈 소스 커뮤니티에서 널리 알려진 칼슨 하이츨러는 원래 Red Hat에서 CORBA, Xlib, GTK+ 라이브러리 개발을 했었다고 한다.

최근 2010년부터는 Tizen과 관련해서 Samsung과 일을 하고 있다고 한다. (Tizen에서 EFL을 사용하고 있다)

뭐 여하튼... 이 특이한 터미널 '터미놀로지 (Terminology)'는 이런 배경으로 태어났다 !
근데, 뭐가 특이하냐고?!



칼슨 하이츨러가 직접 올린 동영상이다.


1. 참고 사이트

   - http://www.enlightenment.org/p.php?p=about/terminology&l=en
      ▷ 공식 홈페이지
   - http://seoz.egloos.com/3940530
      ▷ EFL 관련 자료를 찾다보면 계속 발견(?)되는 블로그다.



2. 다운로드

   - EFL 관련해서 좀 안타까운 점은 자료 찾기가 쉽지 않다는 것이다. 아직은 사용자 층이 넓지 않은 듯...
   - 그리고 또 하나 설치 및 사용 관련한 자료는 더 부족하다는 점이 아쉽다 !!!

   - Terminology도 설치 방법에 대한 가이드가 보이지를 않았다. 이런... 난 컴맹이란 말이다 !!!!

   - 일단 소스 코드를 다운로드 받아보기로 했다.
   - 설치 경로는 개인적인 취향으로 [ /srv/install/ ] 밑으로 했다.

$ cd /srv/install/
$ git clone git://git.enlightenment.org/apps/terminology.git



3. 빌드 & 설치

   - INSTALL 파일에 설치 방법이 잘 쓰여져 있지만, 잘 안된다는...
   - 하지만, 뭐 그냥 일반적인 방법으로 하면 된다는 것은 확인이 되었으니 !

$ cd /srv/install/terminology/

$ ./autogen.sh
$ make
$ sudo make install

   - 뭐 일반적이기에 굳이 가이드를 해줄 필요성을 못느꼈다보다.


   - [ 프로그램 - System Tools - Terminology ] 메뉴를 확인할 수 있다.



4. Terminology

   - 정말 멋져보인다.


   - 터미널 화면 위에서 마우스 오른쪽 버튼을 누르면 위 스크린샷과 같은 메뉴가 뜬다.


   - About 메뉴만 눌러봐도 Terminology의 매력을 듬뿍 느낄 수 있다. 정말 멋지다 !!!


   - Settings 메뉴를 누르면 위와 같은 화면이 나온다. 적당히 입맛에 맞게....^^

   - EFL에 대해서 눈꼽만큼도 아는 것이 없는 입장에서 할말은 아니지만,
     EFL의 매력은 사용자가 직접 손쉽게 멋진 화면을 꾸밀 수 있도록 해주는 것에 있는 것 같다.
     하지만, 더 매력적인 것은 그냥 기본적으로 화면이 왠지 매트릭스 같은 느낌을 주는 것이 그냥 멋지다 !!! ^^

   - Terminology에서 글자만 몇 개 타이핑 해보면... 커서의 모양이... 쿨~!!!

   - 그런데, 동영상에서 보이는 그런 기능들이 잘 안된다.
   - 능력이 없어서 이런걸 해결하기 위해선 시간이 좀 많이 투자 될 것 같아 지금은 여기까지만~ ^^
   - 소스 코드에 있는 README 파일을 좀 더 읽어봐야겠다.

반응형

회사에서 EFL 관련 이야기를 듣다가 갑자기 필자도 한 번 사용해보고 싶어졌다.
손쉽고 예쁘게 경험해볼 수 있는 EFL이 무엇이 있을까 하다가 생각난.... 윈도우 매니저~ Enlightenment !!!

당연하게도 Ubuntu에서도 사용해볼 수 있다.
그리고 친절하게도 패키지(apt-get)를 이용해서 설치할 수 있다.

하지만, 개인적인 취향으로 소스코드를 통해서 Enlightenment를 설치해보도록 하겠다.
능력도 없지만 괜히 잘난 개발자가 된 기분이 좋아서 유난히 소스코드 설치를 좋아하는 것 같다.

솔직히 단순히 Enlightenment만 사용하고자 하는데 아래처럼 설치를 진행하는 것은 분명 오버이긴 하다 ^^


( 가장 많이 참조한 블로그 포스팅 : http://seoz.egloos.com/3855400  )


1. Enlightenment

   - http://www.enlightenment.org/
   - 단순한 윈도우 매니저가 아니라 아름다운 사용자 인터페이스를 만드는데 도움을 주는 모든 것을 제공해준다고 한다.
   - EFL의 시작은 윈도우 매니저인 Enlightenment이지만,
     지금은 윈도우 매니저를 개발하기 위한 라이브러리인 EFL이 더욱 더 덩치가 커져버렸다고 한다.



2. E17

   - 2004년도부터 개발되기 시작한 E17은 2013.04.30 현재까지도 계속 개발되고 있다.
   - 지속 배포 방식인 Rolling Release 방식으로 개발 & 배포되고 있다.
   - 2013.05.01 01:12 현재 최신 버전은 0.17.2.1 이다.



3. 필요 패키지

   - 앞으로 진행할 빌드 時 필요한 패키지는 아래와 같다. (Ubuntu 12.04 환경)

$ sudo apt-get install build-essential automake libtool ccache zlib1g-dev libfreetype6-dev libdbus-1-dev liblua5.1-0-dev g++ libxext-dev libxrender-dev libpng12-dev libxrandr-dev libfontconfig1-dev libxcb-shape0-dev libfribidi-dev libcurl4-openssl-dev libxcb-keysyms1-dev libjpeg-dev gettext autopoint libgif-dev libtiff4-dev libxp-dev libxtst-dev libgl1-mesa-dev libxinerama-dev libxdamage-dev libxcursor-dev libglib2.0-dev libxcomposite-dev libxss-dev libpulse-dev libsndfile-dev libudev-dev libblkid-dev libmount-dev libgstreamer0.10-dev check libgstreamer-plugins-base0.10-dev libvlc-dev

   - Ubuntu 12.10 환경에서는 아래와 같다고 한다.

$ sudo apt-get install build-essential automake libtool ccache zlib1g-dev libfreetype6-dev libdbus-1-dev liblua5.1-0-dev g++ libxext-dev libxrender-dev libpng12-dev libxrandr-dev libfontconfig1-dev libxcb-shape0-dev libfribidi-dev libcurl4-openssl-dev libxcb-keysyms1-dev libjpeg-dev gettext autopoint libgif-dev libtiff5-dev libxp-dev libxtst-dev libgl1-mesa-dev libxinerama-dev libxdamage-dev libxcursor-dev libglib2.0-dev libxcomposite-dev libxss-dev libpulse-dev libsndfile-dev libudev-dev libblkid-dev libmount-dev libgstreamer0.10-dev check libgstreamer-plugins-base0.10-dev libbullet-dev libvlc-dev



4. EFL 소스 코드 다운로드

   - EFL 버전 관리 시스템은 본래 SVN이었지만 최근 GIT으로 변경을 하였다.
   - 따라서 당연히 소스 코드 다운로드를 위해서는 GIT이 설치되어 있어야 한다.
   - 설치 경로는 개인적인 취향으로 [ /srv/install/ ] 밑에 위치시켰다.

$ cd /srv/install/efl/

$ git clone git://git.enlightenment.org/core/efl.git
$ git clone git://git.enlightenment.org/core/enlightenment.git
$ git clone git://git.enlightenment.org/core/elementary.git
$ git clone git://git.enlightenment.org/core/evas_generic_loaders.git
$ git clone git://git.enlightenment.org/core/emotion_generic_players.git

   - 용량 꽤 크다.



5. make

   - 이제 설치해보자.

$ cd /srv/install/efl/

$ ./efl/
$ ./autogen.sh --disable-physics
$ make
$ sudo make install
$ sudo ldconfig

$ cd ../elementary/
$ ./autogen.sh
$ make
$ sudo make install
$ sudo ldconfig

$ cd ../evas_generic_loaders/
$ ./autogen.sh
$ make
$ sudo make install
$ sudo ldconfig

$ cd ../emotion_generic_players/
$ ./autogen.sh
$ make
$ sudo make install
$ sudo ldconfig

$ cd ../enlightenment/
$ ./autogen.sh
$ make
$ sudo make install
$ sudo ldconfig



6. xsession

   - 데스크탑 세션으로 사용하기 위해서는 파일을 등록해야 한다.

$ sudo cp /usr/local/share/xsessions/enlightenment.desktop /usr/share/xsessions/

   - 이제 Enlightenment를 사용할 수 있다.


   - 로그아웃을 하고나서 나오는 화면에서 오른쪽 위에 있는 동그란 부분을 클릭해보자.


   - Enlightenment를 선택할 수 있다 !!!
   - 이렇게 하면... 초기 실행이기 때문에 환경 설정 화면이 나온다.


   - 당연히(?) 한국어를 선택하면 된다.


   - 키보드 설정에서도 Korean을 고를 수 있다 !!!


   - 터치스크린도 지원한다 !!! 하지만 표준은 그냥이라는거...


   - 제목 표시 크기를 선택하면 된다.


   - 마우스 올리기를 통해서 창 활성화를 할 수도 있긴 한데....


   - 당연히 설치를 해야한다...


   - 하드웨어 가속 설정을 하고 싶은데, 필자의 경우엔 아무 것도 선택이 안되었다.


   - 업데이트 활성화가 싫은 경우라면 모르겠지만...


   - 작업 표시줄도...


   - 드디어 Enlightenment 윈도우 매니저가 떴다.
   - 왼쪽 마우스 버튼 클릭으로 위 스크린샷과 같이 메뉴가 뜬다.


좀 다른 테마라는 느낌은 있지만 아직은 설치만 해서는 정확히 뭐가 어떻게 다른지 잘 모르겠다.
설정도 좀 바꿔보고 뭔가 좀 사용을 해봐야 Enlightenment의 매력을 알 수 있을 것 같다.

일단 이번에는 여기까지만~

반응형

블로그의 포스트들을 살펴보다가 예전에 스크립만 해놓은 것 중 하나를 발견하게 되었다.
버전 관리 도구의 브랜치를 3D로 보여주는 도구에 대한 포스팅이 바로 그것인데...


   □ Mono Success Story: Plastic
      - http://tirania.org/blog/archive/2006/Sep-05-2.html



3D 예찬론자는 아니지만, 아... 정말 아름답다 !!!

해당 포스팅을 보면 알겠지만, 2006년도 당시에 저 도구는 시중에서 구할 수 있는 것이 아니었다.
그래서 그냥 저런 View를 제공하기 위해서 개발을 하는 곳이 있구나....라는 생각만 할 뿐이었다.

그러다가 또 하나의 아티클을 발견하게 되었다.

   □ LDRA and Codice Software launch Agile development framework
      - http://johndayautomotivelectronics.com/ldra-and-codice-software-launch-agile-development-framework/


어?! 예전에 비해서 상당히 더 세련되어진 모습으로 등장을 했다 !!!
그냥 시험삼아서 개발을 했던 것이 아니라 계속 이어지고 있었던 것이다.


그래서 계속 알아본 결과.... 예쁜 인터페이스로 유명한 plasticscm (http://www.plasticscm.com/) 에서
제공해주고 있는 기능 중 하나라는 것을 확인할 수 있었다.

게임패드를 이용한 3D Version Tree 인터페이스를 한 번 구경해보도록 하자.




"Plastic SCM"이라는 도구가 국내에서는 그다지 지명도가 없지만,
아는 분들은 다 알고 있는 조금은 매니악한 분산형 버전 관리 도구이다.

현재 버전도 4.1 까지 나와있는 나름 오랜 시간동안 예쁨 받고 있는 좋은 버전 관리 도구 이다.

조금 안타까운 점은 돈 많은 회사가 아니라서 그런지 아니면 라인이 좋지 않아서인지
홈페이지에 접속이 시원시원하게 되지를 않는다 !

지금 집에서 접속을 하는데.... 아예 접속이 되지를 않는다.....
너무 예전에 테스트해봐서 기억이 나질 않아, 홈페이지에서 도구 소개글을 찾아보려고 했는데...


뭐 여하튼 이런 것도 있다는 것을 소개 한 번 해봤다~!!

많은 개발자가 다양한 형태로 머지를 하며 개발을 해서 version tree가 복잡할 때
이런 3D로 보여주게 되면 시각적으로 상당히 편리할 수도 있을 것 같다.
반응형

시스템을 운영하다가 사고가 발생하면 가장 많은 도움을 받는 것이 바로 Log 파일이다.
Redmine의 경우에도 당연히 Log 파일을 만들어주고 있다.

그런데, 관심을 두지 않고 있어서 별 문제가 없어 보이지만 지금 현재 Log 파일을 살펴보면
엄청난 용량에 무의미한 데이터를 계속 저장하고 있을 수도 있다.


1. Redmine's Log File

   - 기본 경로는 redmine 설치 디렉토리 밑에 ./log/ 에 생성이 된다.
   - 필자의 경우 [ ./log/production.log ] 파일로 생성이 되고 있다.


2. Log contents

   - 아무런 설정 변경 없이 그냥 사용할 경우 어떤 내용이 채워지고 있을까?
   - [ cat ./log/production.log ]

Started GET "/redmine/" for 10.0.2.2 at 2013-04-28 18:31:27 +0900
Processing by WelcomeController#index as HTML
  Current user: anonymous
  Rendered news/_news.html.erb (1.3ms)
  Rendered welcome/index.html.erb within layouts/base (3.0ms)
  Rendered plugins/redmine_banner/app/views/banner/_project_body_bottom.html.erb (0.0ms)
Completed 200 OK in 26ms (Views: 9.5ms | ActiveRecord: 4.3ms)
Started GET "/redmine/login" for 10.0.2.2 at 2013-04-28 18:31:29 +0900
Processing by AccountController#login as HTML
  Current user: anonymous
  Rendered account/login.html.erb within layouts/base (3.6ms)
  Rendered plugins/redmine_banner/app/views/banner/_project_body_bottom.html.erb (0.1ms)
Completed 200 OK in 13ms (Views: 9.7ms | ActiveRecord: 1.5ms)
Started POST "/redmine/login" for 10.0.2.2 at 2013-04-28 18:31:35 +0900
Processing by AccountController#login as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"Pe5aTLPaPSNRv6MX244+6cDZBU1JgcOtjdGm9bE3xis=", "back_url"=>"ht$
  Current user: anonymous
Failed login for 'admin' from 10.0.2.2 at 2013-04-28 09:31:35 UTC
  Rendered account/login.html.erb within layouts/base (1.7ms)
  Rendered plugins/redmine_banner/app/views/banner/_project_body_bottom.html.erb (0.1ms)
Completed 200 OK in 8ms (Views: 6.6ms | ActiveRecord: 0.5ms)
Started POST "/redmine/login" for 10.0.2.2 at 2013-04-28 18:31:39 +0900
Processing by AccountController#login as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"Pe5aTLPaPSNRv6MX244+6cDZBU1JgcOtjdGm9bE3xis=", "back_url"=>"ht$
  Current user: anonymous
Successful authentication for 'admin' from 10.0.2.2 at 2013-04-28 09:31:39 UTC
Redirected to http://127.0.0.1/redmine/
Completed 302 Found in 6ms (ActiveRecord: 2.8ms)
Started GET "/redmine/" for 10.0.2.2 at 2013-04-28 18:31:39 +0900
Processing by WelcomeController#index as HTML
  Current user: admin (id=1)
  Rendered news/_news.html.erb (2.8ms)
  Rendered welcome/index.html.erb within layouts/base (5.1ms)
  Rendered plugins/redmine_banner/app/views/banner/_project_body_bottom.html.erb (0.0ms)
Completed 200 OK in 19ms (Views: 11.1ms | ActiveRecord: 3.6ms)

   - 에러만 기록되고 있는 것이 아니라 Redmine에서 이루어지는 모든 상황이 전부 기록되고 있는 것을 확인할 수 있다.
   - 그러다보니 Log의 크기를 감당하기가 쉽지가 않다.



3. Guide Document

   - Redmine에서 Log 관련 설정을 어떻게 해야하는지에 대한 내용은 다음에서 확인할 수 있다.
   - http://www.redmine.org/projects/redmine/wiki/RedmineInstall#Logging-configuration

   - Log 파일에 대한 설정을 어떻게 해야하는지 확인하기 위해서 현재 사용하고 있는 Ruby 버전을 확인해보자.

 Environment:
  Redmine version                        2.3.0.stable
  Ruby version                             1.9.3 (i686-linux)
  Rails version                             3.2.13
  Environment                              production
  Database adapter                       PostgreSQL
Redmine plugins:

 $ ruby --version
ruby 1.9.3p392 (2013-02-22 revision 39386) [i686-linux]


   - Ruby v1.9.3 에서 Logger에 대한 도움말은 아래의 주소에서 찾아볼 수 있다.
   - http://www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html

   - Redmine에서 검색 결과로 나온 document도 있다.
   - http://www.redmine.org/boards/2/topics/25236




4. ./config/addional_environment.rb

   - Redmine의 config 디렉토리에 있는 설정 파일들 중 하나에서 Log에 대한 설정을 할 수 있다.

   - 우선 설정 파일을 만들자.

$ cd ./config/

$ cp ./additional_environment.rb.example ./additional_environment.rb

$ ls
additional_environment.rb          boot.rb                    environment.rb  locales            settings.yml
additional_environment.rb.example  configuration.yml.example  environments    preinitializer.rb
application.rb                     database.yml               initializers    routes.rb

   - 파일 내용을 보면 아래와 같다.

 $ cat ./additional_environment.rb
# Copy this file to additional_environment.rb and add any statements
# that need to be passed to the Rails::Initializer.  `config` is
# available in this context.
#
# Example:
#
#   config.log_level = :debug
#   ...
#

   - 아직은 주석밖에 없다. 그렇다는 말은 지금 현재는 default 설정으로 되어있다는 것이다.

   - 특별한 설정 없는 default 설정은 다음과 같은 값으로 되어있는 것과 같다고 한다.

 config.logger.level = Logger::INFO

   - 로그 파일을 분할을 한다거나 하는 설정은 전혀 없는 것이다. 이 부분에 대한 설정을 해보자.

config.logger = Logger.new('./log/production.log', 5, 1024000)
config.logger.level = Logger::ERROR

   - Logger.new 첫 번째 파라미터는 로그 파일 저장 위치이고,
   - 그 다음은 한 개의 로그 파일의 크기가 약 10MB가 되면 최대 5개로 분할되어 저장을 하라는 의미이다.
   - 로그 파일이 모두 채워지면 처음 만들어진 것부터 차례대로 삭제된다.

   - config.logger.level 에서 사용할 수 있는 옵션은 FATAL, ERROR, WARN, INFO, DEBUG 이다.
   - 기본 설정인 INFO의 경우 너무 많은 정보를 저장하기 때문에, ERROR 정도로 설정을 변경하는 것을 추천한다.


   - 이렇게 파일을 저장하고 Apache2를 재시작하면, 변경된 설정으로 Log가 남겨지게 된다.




결론만 보면 그냥 설정 파일 하나 추가해서 두 줄 추가하는 것 뿐이지만,
이번 기회에 Redmine의 Log에 대해서 정리한다는 생각으로 한 번 살펴봤다는 의미로 생각하면 되겠다.

반응형

제목이 좀 특이해서 보기 시작한 요상한(?) 영화


포스터를 보곤 나는 왠지 스타워즈의 느낌이...


쫄딱까지는 아니어도 금전적으로 보면... 살짝 망삘~!!



조금 알아본 결과... 내가 무식한 놈이었다는 것을 알았다.

꼭 알아야 하는 것은 아니지만,
미국 아이들이라면 당연히 읽었을, 모두 알고 있는 그런 유명한 창작동화란다.


모리스 센닥(Maurice Sendak)이라는 작가가 1963년에 발표한 48페이지짜리 동화라고 한다.
위의 책 커버 이미지에 쓰여져 있는 것처럼 글과 그림 모두 모리스 센닥이 직접 쓰고 그렸다.


점묘화 같은 느낌이네 ?!



오바마 대통령이 백악관 부활절 행사 때 구연동화로 읽어줬던 동화가
바로 이 동화라고 한다.




이 동화의 작가
모리스 센닥(Maurice Bernard Sendak)은 1928년 뉴욕 브루클린에서 태어났고,
2012년에 83세의 나이로 뇌졸증 치료를 받다가 돌아가셨다고 한다.

그는 12살 때 월트 디즈니의 "판타지아(Fantasia)"를 보고 감동을 받아
일러스트레이터로서의 꿈을 갖게 되었다고 한다.

그래서 일러스트레이터로서의 테크트리를 타다가.... 결국은 동화책 작각가 되었다는.


그런데, 20세기 가장 유명한 작가 중 한 명으로 꼽히는 이 작가의 작품을 보면
우리가 보통 알고 있는 기존의 창작 동화와는 그 분위기가 많이 틀리다.

어른들의 시각에서 바라본 어린이의 세상이 아니라
어린이의 시각에서 바라본 어린이들의 세상이 그 이야기이기 때문이다.


1964년에 모리스 센닥은 이 책(Where The Wild Things Are)으로
칼데콧 메달(Caldecott Medal)을 수상하게 된다.

이 때 모리스 센닥이 이렇게 말했다고 한다.

"어린이의 갈등이나 고통을 전혀 드러내지 않는 허식의 세계를 그린 책은
자신의 어릴 때의 경험을 생각해 낼 수 없는 사람들이 꾸며 낸 이야기이다.
그렇게 꾸민 이야기는 아이들의 생활과는 아무 관련이 없다"



작가에 대해서 자꾸 이렇게 설명하는 이유는
이 영화가 상당히 특이했기 때문이다.

이 영화는 분명 어린이들을 위한 그림책을 영화화 한 것이다.

그런데, 영화의 등급은 PG 이다.
Parent Guidance Suggested
Some Material May Not Ne Suitable For Children
부모 동반 (아동 관람 부적합)

퀘벡 등 일부 지역에서는 General rating이 나왔지만,
대부분의 곳에서는 PG 등급이었다.

주된 이유는 약간의 폭력성이나 brief language 등이 언급되었지만
아이들에게 좀 무서운 부분이 있다는 것과 폭령성이 언급되기도 했다.


그러면, 과연 원작과는 달리 영화의 재미를 위해 폭력성과 공포감을 넣었을까?


개인적인 판단으로 절대 그렇지 않았을거라 판단된다.

오히려 원작자가 표현하고 싶었던 것을
너무나 잘 충실히 표현하다보니 그렇게 된 것 같다.




모리스 센닥은 아이들이 느끼는 감정들을 솔직히 표현하고 싶어했던 것 같다.
특히 부정적인 감정들...
외로움, 두려움, 공포, 분노, 지루함, 노여움

기존의 동화에서는 이러한 것을 끄집어내지 않는다.
그냥 어른들이 기대하는 판타지 속에 넣어버리는 것이다.
그냥 해맑고, 웃고, 즐겁고, 밝기만한...

하지만, 실제 아이들의 세상은 그렇지 않을 것이다.
심심하기도 하고 지루하기도 하고 때로는 화가 나기도 하고...


지금 아이를 키우고 있는 입장에서
많은 생각을 하게 한다....




뭐 그렇기는 한데,
이 영화는 좀 많이 어두운 그런 내용을 너무 많이 표현한 것 같다는 생각이....^^
우리 아가에게 보여주기엔 좀 그렇다는...


괴물들의 분장이 처음에는 대단히 어설프게 느껴졌는데,
절대 그렇지 않다는... 어찌보면 상당히 디테일하다.


특히 이 영화를 보면서 음향에 상당히 감동먹었다.
미세한 감정의 표현이나 상황의 표현을 기가막히게...
헤드폰을 끼고 보기를 강추한다.






킬링타임용 영화로는 정말 정말 비추천 !!!

아이들의 세상에 관심이 있으신 분들에게는 강추 !!!

마음에 어느 정도 여유가 있을 때 보시기를 추천 !!!

절대 어린아이들 대상의 영화는 아닌거 같음 !!!

뭔가 많은 생각을 하고픈 분들에게 추천 !!!



IMDb   평점 : 6.80
네이버 평점 : 7.20
나만의 평점 : 7.12


Naver
http://movie.naver.com/movie/bi/mi/basic.nhn?code=71066
Wikipedia
http://en.wikipedia.org/wiki/Where_the_Wild_Things_Are_(film)
http://en.wikipedia.org/wiki/Where_the_Wild_Things_Are
IMDb - Internet Movie Database
http://www.imdb.com/title/tt0386117/

[출처]
* 포스터 및 스크린샷은 위키피디아에서 퍼왔음을 밝힙니다.
(영화 관련 저작권 괴담은 무서워요~)
[ 주의 사항 ]
어디까지나 개인적인 영화평을 적는 공간이니만큼,
개인의 취향은 존중해주시면 감사하겠습니다.
건전한 비판이나 조언은 언제든 환영입니다!!!
반응형

개인적으로 무조건적인 사랑을 주고 싶은 리눅스
그 중에서도 가장 마음에 드는 Ubuntu

Ubuntu에서 Git을 설치해보고자 한다.



1. 패키지로 설치하기


Ubuntu가 11.10으로 업데이트가 되면서
아직 개인적으로도 낯설다.

애정을 가지고 적응을 해야겠지...


"우분투 소프트웨어 센터"에서 "git-core"로 검색을 해서
해당 패키지를 설치하면 바로 git을 사용할 수 있다.

가장 편한 방법이다.




2. 소스로 설치하기

 
Git을 소스로 설치하기 전에 필요한 패키지들을 미리 설치하자

$ sudo apt-get install make libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev asciidoc xmlto autoconf

 


엄청 빠른 버전업이 이루어지다가
1.8.x 버전대까지 와서야 조금은 천천히 업그레이드가 되고 있다.

[ Tarballs ] 부분을 클릭하면 다운로드 받을 수 있는 리스트를 확인할 수 있다.


여기에서 다운로드 받을 소스의 주소를 구하자.

$ pwd
/srv/install/git

$ wget http://git-core.googlecode.com/files/git-1.8.2.1.tar.gz

$ tar zxvf git-1.8.2.1.tar.gz

$ cd git-1.8.2.1/

 빌드가 어려울 것이라는 편견은 버리자.

$ make configure
$ ./configure --prefix=/usr/local
$ make all doc
$ sudo make install install-doc install-html

설치가 잘 되었는지 확인을 해보기 위해서 버전 확인을 해보자.

$ git --version


GIT 자동완성을 지원하기 위해서는...
http://whatwant.tistory.com/478


우리 모두 Git으로 행복한 형상관리를...
반응형

+ Recent posts