3월 1일, 이 날은 기미독립운동날(1919년 3월 1일)이지만 티스토리, 설치형 텍스트큐브 블로그를 운영하는 사람들에게도 기념을 할만한 날입니다.


이유는... 태터툴즈 프로젝트가 시작된 날이기도 하지요!

2004년 3월 1일, JH님께서 태터툴즈 프로젝트를 시작하였습니다.

이후 태터툴즈 프로젝트는 점점 커져서 다음이 운영하는 Tistory도 태터툴즈 기반으로 사용되였으며, TNC가 운영하였던 테터툴즈 기반의 텍스트튜브닷컴(Google이 인수후에 아쉽게도 사라졌음)도 태터툴즈 기반으로 운영되었습니다.

태터툴즈는 오픈소스 프로젝트로 운영되었으며, 점점 소스가 커지면서 이름을 텍스트큐브로 바뀌었으며, 텍스트큐브란 이름으로 현재 블로그 소스를 오픈소스로 제공하고 있습니다. (텍스트큐브와 예전에 구글이 인수하여 운영하던 텍스트큐브닷컴은 다른 존재입니다.)

태터툴즈와 텍스트큐브에 대한 역사는 위키페디아의 "태터툴즈"내용을 참조하시면 됩니다. (길게 블로그에 쓰기엔 복잡해지기 때문 ㅎㅎ)


아무튼, 늦었지만 태터툴즈의 7주년을 기념합니다.


아래는 태터툴즈를 주제로 쓴 제 블로그 포스트들입니다.

2004/12/28 - [컴퓨터/블로그] - 내가 설치형 블로그를 쓰는 이유

2004/12/28 - [컴퓨터/블로그] - 테터 툴즈 소개

2006/03/19 - [컴퓨터/블로그] - 태테를 깔았습니다.

2007/01/16 - [컴퓨터/블로그] - 태터툴즈 설치과정[미완성]

2008/02/12 - [참가 및 후기] - 제4회 태터캠프에 참가합니다.

2008/07/05 - [참가 및 후기] - 제 5회 테터캠프에 참가합니다.

2008/12/07 - [참가 및 후기] - [후기]제 6회 테터캠프에 참가하였습니다.

2009/07/13 - [컴퓨터/블로그] - 제 7회 태터캠프에 참가 + Connectivity에 대한 생각

2009/07/19 - [컴퓨터/블로그] - 제 7회 태터캠프 후기입니다.


Buy me a coffeeBuy me a coffee

관련글
KLDP돌아가시기전에 patch를 반영하신 아버지 이야기

원문
https://bugzilla.gnome.org/show_bug.cgi?id=78514#c19


아들이 아버지가 돌아간 다음날 적은 글

Ian Hands 2011-02-04 01:47:30 UTC
I would like to extend my thanks to the gnome team/community for a great last
moment with my dad.

Adrian Hands (my father) wrote the patch above to improve the usability of
gnome for himself and others. You see my dad was suffering from ALS and his
hands were so crippled he could no longer use a keyboard. Thus we used a Darci
usb morse code keyboard emulator to help him type. Even the morse code device
was a struggle as the sensitivity adjustment and positioning of the nice two
paddled key would fall out of whack. I rigged up a pvc cage that wrapped around
his knee and fixed remote switches to the cage so that he could use the
remaining strength in his legs to operate the Darci morse code device. He used
this last bit of body movement to write this patch.

Here is a photo of him using it:
https://picasaweb.google.com/HandsAdrian/ShotwellConnect#5549467460761802914

My father passed away yesterday. I went back through my email to find our last
correspondence (he was in India for treatment, and I live in Raleigh). I would
like to share the email with you.
<email>
On Sun, Jan 30, 2011 at 12:16 PM, Adrian Hands <handsadrian@gmail.com> wrote:
> ACCEPTed
> COMMITed
> RESOLVEd
> BOO-YAH!
>
> commit 0b209b1ff16e863e60a1d86413aa57c5fbde76b0
> Author: Adrian Hands <handsadrian@gmail.com>
> Date:   Fri Dec 31 14:34:58 2010 +0100
>
>    Add Copy Image and Copy Path to clipboard functionality
>
>    Fixes bug 78514.
>
>  data/eog-ui.xml  |    9 +++++++
>  src/eog-window.c |   63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 72 insertions(+), 0 deletions(-)

I have the coolest Dad in the world!
</email>

I am so glad that my last comment to my Dad was something like this.

Adrian Hands loved free software / open source. I do as well.

Thanks so much for the great software, and a new great memory.
-Ian Page Hands

번역

아래는 제가 위의 글을 간단하게 번역한 것입니다.

나는 그놈(GNOME)팀 커뮤니티분들 덕택에  아버지와 마지막 최고의 순간을 고맙게 여기고 연장하고 싶습니다.


Adrian Hands (나의 아버지)는 자기 자신과 다른 사람들을 위해 GNOME(그놈)의 사용향을 더욱 향상시킬수 있는 패치를 작성하였다.

당신을 내 아버지가 루게릭병(ALS)을 앓고 있었고 그의 손은 장애로 인해 그는 더이상 키보드를 사용할수 없다는걸 볼수 있다.

그래서 우리는 그의 키보드 작성을 도와줄수 있는 Darci usb morse code keyboard(특수 키보드, 다르시 USB 모르스 부호 키보드) 에뮬레이터를 사용하게 되었었다. 심지어 모르스 코드 장치와 감도 조정으로 몸부림을 쳤었고, 2개의 패들 키의 위치는 세게 쳤어야 했다.

나는 그의 무릎주위로 덮는 pvc 장비 을 갖추었었고,  아버지가 Darci morse code 장치를 작동하기 위해 다리에 남겨진 힘을 사용할수 있도록 원격 스위치를 고정시켰다. 

그는 신체 운동의 마지막 부분을 이 패치를 작성하는데에 사용하였습니다.

아래 아버지가 Darci morse code 장비로 사용하는 사진입니다.

https://picasaweb.google.com/HandsAdrian/ShotwellConnect#5549467460761802914

나의 아버지는 어제 돌아가셨습니다. 나는 그 패치의 마지막 응답을 찾아 내 메일로 통하여 되돌아갔었다. (그는 치료를 위해 인도에 있었고 나는 Raleigh에 산다). 나는 사람들에게 아래의 이메일을 공유할 것입니다.

<이메일>

>2011년 1월 30일 일요일 오후 12시 16분, Adrian Hands작성

>수락되었다

>커밋되었다

>해결되었다

>부-야!

(아래는 Adrian Hands가 작성한 패치가 수락되어 반영되었다는 메시지입니다. 굳이 번역할 필요가 없어서 원문으로 두었습니다.)

>

> commit 0b209b1ff16e863e60a1d86413aa57c5fbde76b0

> Author: Adrian Hands <handsadrian@gmail.com>

> Date:   Fri Dec 31 14:34:58 2010 +0100

>

>    Add Copy Image and Copy Path to clipboard functionality

>

>    Fixes bug 78514.

>

>  data/eog-ui.xml  |    9 +++++++

>  src/eog-window.c |   63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++

>  2 files changed, 72 insertions(+), 0 deletions(-)


나는 이 세상에서 최고로 멋진 아버지를 가졌다.

</이메일>


나는 아버지가 좋아하는 것에 대한 마지막 코멘트에 이런 것이 있다는것이 정말 기쁩니다.

Adrian Hands는 공개 소프트웨어와 오픈소스를 좋아하였고 나 또한 그렇습니다.

이 거대한 소프트웨어에 대해 너무 고맙습니다, 새로운 멋진 추억이 있습니다.
 -Ian Page Hands (Adrian Hands의 아들)

사진을 보니 Adrian Hans가 루게릭병(ALS)로 죽기 직전까지 사람들의 편의성을 위하여 GNOME에 기여하기 위해서 노력한 흔적이 보입니다.

위의 글을 볼때마다 자꾸 눈물이 나군요. 일단은 Adrian Hans님의 명복을 빕니다. (RIP Adrian Hands)


위의 글을 보고 나선 나는 죽기전까지 많은 사람들을 위해 프로그래밍하며 기여(Contribute)를 할수 있는가? 란 생각을 하였습니다.

저는 죽기전까지 부끄럼 없이 사람들을 편리하게 만들수 있는 프로그래머가 되고 싶습니다. 그리고 Free Software와 Open Source에 많은 기여를 하고 싶습니다. (실제로 몇몇 분과 합작하여 python으로 Gwibber의 미투데이 플러그인을 같이 제작하였고, 개인적으로는 python으로 Gwibber의 durl.me plugin을 제작하여 launchpad에 등록하였습니다.) 

저는 고3 말에 가진 오픈소스에 대한 기여등의 꿈같은 초심을 잃지 않았으면 합니다.


ps. 위의 글을 읽고 난 후 아래의 글을 읽고는... 이민 갈까란 생각을 하게 되었습니다.

일본에서 아이폰같은 혁신적인 소프트웨어제품이 나오지 못하는 이유

ps2. 한국에서 오픈소스 운동이 일어나기 어려운 이유가 일본에서 아이폰과 같은 혁신적인 소프트웨어가 나오지 못하는 이유와 똑같습니다... (이건 이후 포스팅에서 말하겠습니다.)

'컴퓨터 > Linux' 카테고리의 다른 글

overview of GI's architecture  (0) 2011.05.22
Ubuntu 10.10에 Kernel 2.6.38.1을 올림.  (0) 2011.03.27
#Ubuntu 10.10 CD 도착  (0) 2011.02.28
Redmine 설치 완료.  (0) 2011.02.27
Unity - Ubuntu 11.04의 기본 테마  (0) 2011.02.26
Buy me a coffeeBuy me a coffee

1984년 Steve Jobs는 Macintosh 를 발표를 하였습니다.

그가 Macintosh를 발표할때 Bob Dylan의 노래를 읽었지요.


young Steve reads "The Times They Are A-Changin'", by Dylan. That's Bob Dylan.


Steve Jobs는 이 동영상에서 Bob Dylan의 The times They Are A-Changin 가사 구절중 하나를 읽습니다.

Come writers and critics

Who prophesize with your pen
펜대만 굴리는 작가와 비평가들이여 오라

And keep your eyes wide
The chance won't come again
눈을 떠라 변화의 순간은 다시 다가와지 않으니

And don't speak too soon
For the wheel's still in spin
섣불리 논하지 말자 수레바퀴는 아직 돌고있다

And there's no tellin' who
That it's namin'
이제야 싹튼 변화들을  섣불리 규정하지 마라

For the loser now
Will be later to win
오늘의 패자가 내일의 승자가 될 것이니

For the times they are a-changin'.
시대는 변하고 있다


동영상에서 젊은 시절의 매우 잘나가던 스티브 잡스(Steve Jobs)의 의기양양한 모습을 볼수 있습니다. (지금은 췌장암에 걸려 초췌해진 상태이지만)

아래는 Bob Dylan의 The Times They Are A-Changin 입니다.


가사입니다.

The Times They Are A-Changin

  

Come gather 'round people
Wherever you roam

당신이 어디에 있든 모이자 사람들이여

And admit that the waters
Around you have grown
그리고 변화의 물결이 다가왔음을 보여주자

And accept it that soon
You'll be drenched to the bone
그 물결이 뼛속 시리게 젖어들 것임을

If your time to you
Is worth savin'
그대의 인생이 값지고 소중하다면

Then you better start swimmin'
Or you'll sink like a stone

흐름에 발 맞추자 아니면 돌처럼 가라앉을지니
For the times they are a-changin'.
시대는 변하고 있으므로

 

Come writers and critics
Who prophesize with your pen
펜대만 굴리는 작가와 비평가들이여 오라

And keep your eyes wide
The chance won't come again
눈을 떠라 변화의 순간은 다시 다가와지 않으니

And don't speak too soon
For the wheel's still in spin
섣불리 논하지 말자 수레바퀴는 아직 돌고있다

And there's no tellin' who
That it's namin'
이제야 싹튼 변화들을  섣불리 규정하지 마라

For the loser now
Will be later to win
오늘의 패자가 내일의 승자가 될 것이니

For the times they are a-changin'.
시대는 변하고 있다

 

Come senators, congressmen
Please heed the call
국회의원들, 정치인들이여 우리들의 부름을 경청하라

Don't stand in the doorway
Don't block up the hall
문을 가로막지 말고 집회를 막지마라

For he that gets hurt
Will be he who has stalled
상처를 입는 것을 문을 잠그는 사람들이 될것이니

There's a battle outside
And it is ragin'
밖의 싸움은 점점 뜨거워지고 있다

It'll soon shake your windows
And rattle your walls

머지않아 그대들의 창문을 흔들고 벽을 두들길 것이다.
For the times they are a-changin'.
시대는 변화고 있다

 

 

Come mothers and fathers
Throughout the land
온누리의 어머니 아버지들이여 함께하자

And don't criticize
What you can't understand

자신들이 이해하지 못하는 것들을 비난하지 말라

Your sons and your daughters
Are beyond your command

당신의 아들 딸들은 당신의 통제를 넘어서있으니
Your old road is
Rapidly agin'

그대의 오래된 길은 빠르게 낡아간다
Please get out of the new one
If you can't lend your hand

도와주지 못할 거라면 가로막지는 말아주길
For the times they are a-changin'.

시대는 변하고 있다

The line it is drawn
The curse it is cast
선이 그어지고 저주가 퍼부어 지고 있다

The slow one now
Will later be fast

오늘은 느리지만 내일은 빨리질것이니
As the present now
Will later be past
지금은 현재는 훗날  과거가 된다

The order is
Rapidly fadin'

세상은 빠르게 변해간다
And the first one now
Will later be last

오늘의 정상은 내일의 끝에 설 것이다

For the times they are a-changin'.
시대는 변화고 있으므로 

Buy me a coffeeBuy me a coffee

2011년 2월 28일

집에 도착하니 외국에서 온 편지가 도착했더군요.

그 편지는 Canonical사에서 보낸 Ubuntu 10.10 Maverick Meerkat CD였더군요.

저는 편지를 뜯어보았습니다.


앞면은 개인정보상 털썩

짜잔, 내용물인 Ubuntu 10.10 Desktop Edition CD입니다.

Ubuntu. Try it. Love it. Share it!

Macbook Pro위에 올려진 Ubuntu 10.10 Desktop Edition CD.


물건너온 CD를 받고 나선 너무 좋아 기념 사진을 찍었답니다 ㅎㅎ

ps. 은근 맥북 자랑질도 *-_-*

Buy me a coffeeBuy me a coffee

제 개인 서버에 Redmine 설치를 하였습니다.


Redmine은 프로젝트 관리/이슈 트래킹 툴입니다. 

Ruby on Rails 어플로 작고, 가볍습니다.

소규모 팀에서 사용가능하며, 사용법다 간단하며, 기본적인 문서화(위키)를 지원하며 여러개의 프로젝트 지원, 프로젝트마다 저장소 따로 지원 + 다양한 저장소 지원(CVS, SVN, Darcs, Mercurial, Git, Bzr …)

을 합니다.


redmine 설치 방법은 아래링크를 통해 보면 됩니다.

http://www.redmine.org/projects/redmine/wiki/RedmineInstall


Redmine를 설치하였으면 Nginx와 결합하여 사용하는 방법에 대해서 적었습니다.

Nginx + Mongrel cluster

일단은 Nginx 웹서버를 설치를 해야 합니다.

저의 개인 서버구성은 NGINX(Web server)+Ruby on Rails +MySQL(DB) 로 구성하였습니다.

개인적으로 웹서버로는 Apache httpd를 주로 많이 사용했기 때문에 Apache보다 가볍고 경량화된 웹서버인 Nginx를 사용하기엔 약간 멈칫했습니다.

일단 Nginx를 사용해보고 나니 환경설정이 apache보다 매우 쉽기 때문에 nginx를 주로 사용하게 되었습니다.

참조: http://wiki.dgoon.net/doku.php?id=config:installredmine 

Nginx의 8000번 포트를 열고, mongrel-cluster 를 7990~7999 까지 열어서 Redmine과 결합하는 설정을 하였습니다

일단 nginx와 mongrel을 설치합니다.

sudo apt-get install nginx

sudo apt-get install mongrel mongrel-cluster


redmine이 설치된 디렉터리에서,

mongrel_rails cluster::configure -e production -p 7990 -N 10 --user redmine --group redmine --log log -P log



위와 같이 config/mongrel_cluster.yml 환경설정 파일을 만듭니다.


mongrel_rails cluster::start


위와같이 mongrel cluster 를 시작시킵니다.. 7990 ~ 7999 까지 실행되니 이중 하나를 확인해보자. http://blahblah.net:7999 mongrel 이 각 포트에 제대로 떳다면, nginx 환경설정에서 mongrel cluster 부분을 설정해줍니다.

/etc/nginx/sites-available/default

에서 아래 부분을 추가합니다.



upstream mongrel {

    server 127.0.0.1:7990;

    server 127.0.0.1:7991;

    server 127.0.0.1:7992;

    server 127.0.0.1:7993;

    server 127.0.0.1:7994;

    server 127.0.0.1:7995;

    server 127.0.0.1:7996;

    server 127.0.0.1:7997;

    server 127.0.0.1:7998;

    server 127.0.0.1:7999;

}

server {

        listen          8000;

        server_name     redmine.blahblah.net;

        root /home/redmine/public;

        location / {

                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header  Host $http_host;
                proxy_redirect off;
                proxy_read_timeout 300;
                if (-f $request_filename/index.html) {
                    rewrite (.*) $1/index.html break;
                }
                if (-f $request_filename.html) {
                    rewrite (.*) $1.html break;
                }

                if (-f $request_filename.txt) {
                    rewrite (.*) $1.txt break;
                }
                proxy_pass http://mongrel/;
        }

}



설정파일을 수정했으면 nginx 데몬을 재시작합니다.  


sudo /etc/init.d/nginx restart


재시작후엔 http://redmine.blahblah:8000 으로 redmine 초기 화면이 나와야 합니다. 

Mongrel cluster의 시작/중지/재시작은 순서대로 아래와 같은 명령을 사용합니다.


mongrel_rails cluster::start

mongrel_rails cluster::stop

mongrel_rails cluster::restart



Ruby on Rails로 간단한 프로그램 만들어본 사람이면 Rails 사용법은 알기 때문에, Ruby on Rails 기반의 Redmine 운영이 쉬울것입니다.


Buy me a coffeeBuy me a coffee

우분투 11.04의 기본 Desktop으로 채택될 예정인 Unity를 사용해보았습니다.

Ubuntu Unity - http://unity.ubuntu.com/

2010/11/21 - [컴퓨터/Linux] - Gnome을 대체할 Unity소개 #Ubuntu 11.04 Natty Narwhal uses Unity Desktop by Default!


아래는 Ubuntu 11.04 Natty Narwhal의 기본 데스크탑인 Unity의 화면입니다.

Unity Desktop



2004년 말부터 GNOME(http://www.gnome.org/) Desktop를 주로 쓰던 저에게 Unity는 신선한 충격을 가져다 줍니다. KDE Desktop처럼 온갖 기능 붙혀서 무겁게 느껴지거나 GNOME같이 평범한 Linux Desktop도 아닌 뭔가 새롭고 신선한느낌정도?

Unity Desktop의 UI가 겉으로 보면 예쁘지만, 실제로 사용하다 보면 약간 뭔가 어지럽습니다. 익숙하지 않아서 그럴지도?

Netbook을 위한 Desktop을 표방하고 있습니다만, 아직 GNOME환경에 비해서 느리고 빠릿빠릿하지 않다는 느낌이 듭니다.


Unity가 GNOME(GTK+기반)과 달리 QT기반으로 작성되었으며 X 윈도우 시스템을 대체할 OpenGL기반의 데스크탑 관리시스템인 웨이랜드(Wayland) 데스크탑 엔진, Compiz를 대체할 mutter를 사용합니다.

이전에는 X Windows위에 GTK기반의 GNOME Desktop을 사용했다만 Ubuntu를 관리하는 Canonical사는 독자적인 방향으로 새로운 UI를 제공하겠다는 목표로 Unity project를 진행하고 있습니다.

Unity가 데스크탑, 노트북말고도Tablet같은 Touch screen이 있는 노트북이나 넷북에도 적용할 예정입니다. 아래 화면에서 보듯 UI가 손가락으로 클릭하기 좋게 구성 되어 있습니다.


Unity UI를 보면 볼수록 뭔가 Mac OSX를 많이 흉내내려고 노력한 흔적이 많이 보입니다.


Canonical사는 Ubuntu OS에 Unity라는 새로운 사용자 경험을 보여주합니다. 기존의 GNOME기반의 경험을 가진 사람에겐 뭔가 느낌이 이상하게 느껴지는건 익숙하지 않아서일까요?


ps. 아직 Alpha release단계라 버그가 많습니다. 가끔씩 죽는 경우가 생겨 launchpad에 bug reporting을 자주 하는 편입니다.

Buy me a coffeeBuy me a coffee

SKT 트위터인 @SKtelecom 에서 폭탄선언이 올라왔더군요.


SKT 공식 블로그에서도 "SK텔레콤 아이폰 도입 결정"라는 제목으로 글이 올라왔더군요.


SKT가 드디어 아이폰 출시를 검토한다고 했다 이제 아이폰 도입/공급까지 하겠다고 공개를 하였군요.

그러나 SKT가 입으로만 아이폰 도입하겠다는 전적이 있는지라, 출시일정을 발표해야 믿을수 있을것입니다. (왜이리 믿음이 없는걸까? ㅠㅠ)


현재, KT망이 사람들이 많이 이용하여 통화품질이 안좋고 등등 사람 많은 곳에선 KT망이 불안정합니다. 통화품질이 우수한 SKT로 아이폰나오면 진짜 개통할까 고민이 되는 글이 나오니 고민 되군요^^

참고로, 아이폰4를 지금 도입한다고 해도 아이폰4가 나온지 꽤 시기가 지난지라 실익은 없을테니, 차기 아이폰5 시장을 KT고객으로 부터 빼놓으려는 SKT의 노림수도 보이군요.


KT와 SKT의 공정한 경쟁을 기대해봅니다^^

Buy me a coffeeBuy me a coffee



안드로이드 3.0 Honeycomb SDK가 최종으로 올라왔다고 합니다. 그리고 Level 11의 API가 최종적으로 확정되었으며, 이 SDK 를 기반으로 개발을 진행해서 안드로이드 마켓에 등록할 수 있습니다.

참고로 Android 3.0 Platform의 사용자용 설명과 개발자용 설명은 링크에 있습니다.

그리고 Android SDK Tools(r10)을 업데이트 하였고, Eclipse용 ADT Plugin을 업데이트를 하였습니다.


Together with the new platform, we are releasing updates to our SDK Tools (r10) and ADT Plugin for Eclipse (10.0.0). 


아래는 제 맥북에서 새로 업데이트된 Android SDK Tools r10과 Android 3.0 Honeycomb SDK API 11을 설치하는 모습입니다.


Packages Install in Android ADT

Installing Android SDK



설치 끝나고 나서 에뮬레이터를 실행하니 뭔가 바뀐 구석은 있군요. (에뮬레이터 속도를 더 빠르게 만들었으면 하는 바람이 ㅎㅎ)

Android SDK Tools(r10)과 Eclipse plugin ADT에서 예전과 다르게 바뀐 부분

  • UI Builder improvements in the ADT Plugin:
    • New Palette with categories and rendering previews. (details)
    • More accurate rendering of layouts to more faithfully reflect how the layout will look on devices, including rendering status and title bars to more accurately reflect screen space actually available to applications.
    • Selection-sensitive action bars to manipulate View properties.
    • Zoom improvements (fit to view, persistent scale, keyboard access) (details).
    • Improved support for <merge> layouts, as well as layouts with gesture overlays.
  • Traceview integration for easier profiling from ADT. (details)
  • Tools for using the Renderscript graphics engine: the SDK tools now compiles .rs files into Java Programming Language files and native bytecode.

Buy me a coffeeBuy me a coffee

리비아 사태가 점점 커지며 사람들이 죽어가고, 군인들은 항명을 하고 나라를 떠나고, 내무장관은 카다피 선생의 말을 듣지 않았습니다.

카다피는 권력을 지키기 위해 노력을 하고, 카다피의 아들들은 권력을 이용하여 군부를 이용하여 시위에 참여한 시민들을 죽이는 등 내전과 비슷한 상황까지 치달았지요.


트위터를 보다 아주 충격적인 영상을 보았습니다.

Soldiers Burned to Death for Not Shooting Protesters in Libya 

라는 동영상이였습니다.

리비아에서 시위자에게 총을 쏘지 않았다는 이유로 병사를 화형에 처했다군요.

동영상을 보니 검게 탄 시신이 보입니다. (참고로 비위가 약한 분들은 동영상을 안보는 것이 좋습니다. )

이를 볼때 1980년의 광주 민주화 운동이 떠올렸습니다. 


민주화는 피를 흘려서 쟁취한다는 것이란 생각과 권력이라는것은 가지면 가질수록 손에 놓기 싫은 존재라는 것도 카다피를 통해 느끼었구요.


 리비아의 현재 상황을 보니 Michel Polnareff의 "Qui a tué grand maman(누가 할머니를 죽였는가?)"란 샹숑이 생각났습니다.

가사

Il y avait, du temps de grandmaman

Des fleurs qui poussaient dans son jardin 

Le temps a passe Seules restent les pensees 

Et dans tes mains ne reste plus rien

 

할머니가 살았던 시절에

정원에는 꽃들이 피어 올랐지

세월은 흐르고 기억만 남았네

그리고 네 손엔 더이상 아무것도 남지 않았지


 Qui a tue grand maman?
Est-ce le temps ou les hommes?
Qui n'on-t plus le temps de passer le temps? 
La la la la....


 누가 할머니를 죽였나?

세월인가? 아니면

무심한 사람들인가?


 Il y avait du temps de grand-maman
Du silence a ecouter
Des branches sur des arbres, des feuilles sur des arbres

Des oiseaux sur les feuilles et qui chantaient


할머니가 살았던 시절에

가만히 귀를 기울이면

나무위에 가지들이, 가지위에 나뭇잎들이

나뭇잎 위에 새들이 노래했었지


 Qui a tue grand maman?
Est-ce le temps ou les hommes?
Qui n'on-t plus le temps de passer le temps?
La la la....


 누가 할머니를 죽였나?

세월인가? 아니면

무심한 사람들인가?


Le bulldozer a tue grand-maman
Et change ses fleurs en marteaux-piqueurs

Les oiseaux, pour chanter ne trouvent que des chantiers
Estce pour cela que I'on vous pleure


 불도저가 할머니를 죽이고

꽃밭을 짓밟았지

새가 노래할 곳은 이젠 없어

이게 당신 마음에 들기 위한건가?


Qui a tue grand maman?
Estce le temps ou les hommes 
Qui nont plus le temps de passer le temps? 
La la la....


 누가 할머니를 죽였나?

세월인가? 아니면

무심한 사람들인가? 

Buy me a coffeeBuy me a coffee

Android 프로그래밍을 하다 C코드를 Java코드와 연동해야하는 일이 생겼습니다.

Android NDK를 이용해 빌드하다보니 ant를 사용하여 안드로이드 프로그램을 빌드하였습니다.

Linux에서 빌드할때와 Mac OSX에서 빌드할때 미묘한 차이가 생기더군요.


Java로 된 안드로이드 소스코드는 UTF-8로 분명히 저장되어 있는데, Ant가 Linux에서 돌릴때엔 ascii로 인식해서 컴파일을 하더군요. 결국엔 안드로이드 어플에 한글이 깨져 나오는 문제가 있습니다.

Mac에서는 아무런 문제없이 빌드되고 안드로이더 어플에 한글이 깨져나오는 일이 없습니다. 참 미묘하기도 하지요?


참고로 CentOS5에 설치한 Ant 버전은 아래와 같습니다.

[studioego@localhost ~]$ ant -version

Apache Ant version 1.7.1 compiled on June 27 2008

[studioego@localhost ~]$ 



그리고 Mac  OSX 10.6에 설치된 Ant버전은 아래와 같다.

Dae-Hyun-Sung-ui-MacBook-Pro:~ studioego$ ant -version

Apache Ant version 1.8.1 compiled on September 21 2010

Dae-Hyun-Sung-ui-MacBook-Pro:~ studioego$


CentOS5 에서 Ant를 실행했을때


$ ant debug

Buildfile: build.xml

    [setup] Android SDK Tools Revision 8

    [setup] Project Target: Android 2.2

    [setup] API level: 8

    [setup] 

    [setup] ------------------

    [setup] Resolving library dependencies:

    [setup] No library dependencies.

    [setup] 

    [setup] ------------------

    [setup] 

    [setup] 

    [setup] Importing rules file: tools/ant/main_rules.xml


-debug-obfuscation-check:

-set-debug-mode:

-compile-tested-if-test:

-dirs:

     [echo] Creating output directories if needed...

    [mkdir] Created dir: /******/bin/classes

-pre-build:

-resource-src:

     [echo] Generating R.java / Manifest.java from the resources...

     [null] /home/studioego/android/platform-tools/aapt: /usr/lib/libz.so.1: no version information available (required by /home/studioego/android/platform-tools/aapt)

-aidl:

     [echo] Compiling aidl files into Java classes...

-pre-compile:

compile:

    [javac] Compiling 5 source files to /******/bin/classes

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]            ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]             ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]              ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]               ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                 ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                  ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                   ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                    ^

    [javac] /******/src/org/ccl/mobile/student/AnnoLine.java:4: warning: unmappable character for encoding ascii

    [javac] // 시작점 좌표

    [javac]                      ^

(생략)

    [javac] 100 warnings

(생략)



이후 소스코드는 UTF-8로 분명히 저장했는데도 안드로이드 어플에서 글씨가 깨져 나옵니다.


Mac OSX 10.6 Snow Leopard 에 탑재된 Ant를 실행했을때

$ ant debug

Buildfile: /******/build.xml

    [setup] Android SDK Tools Revision 10

    [setup] Project Target: Android 2.2

    [setup] API level: 8

    [setup] 

    [setup] ------------------

    [setup] Resolving library dependencies:

    [setup] No library dependencies.

    [setup] 

    [setup] ------------------

    [setup] 

    [setup] 

    [setup] Importing rules file: tools/ant/main_rules.xml

-debug-obfuscation-check:

-set-debug-mode:

-compile-tested-if-test:

-pre-build:

-dirs:

     [echo] Creating output directories if needed...

-aidl:

     [echo] Compiling aidl files into Java classes...

-renderscript:

     [echo] Compiling RenderScript files into Java classes and RenderScript bytecode...

-resource-src:

     [echo] Generating R.java / Manifest.java from the resources...

-pre-compile:

...

(생략)

BUILD SUCCESSFUL

Total time: 10 seconds


소스코드도 UTF-8로 저장되었고 안드로이드 어플에서 한글이 깨지는 일이 없이 문제 없이 돌아갑니다. 


ant의 버전 차이때문에 그런건가요?


이 문제 때문에 Linux용 최신 ant binary 버전을 다운 받아서 사용했어도 똑같은 일이 발생하더군요.

버전문제는 아는 것 같고.. Linux용 ant를 직접 빌드해서 사용해야 문제가 해결될까요?


한글이 깨지는 문제때문에 구글링 한 결과 android-sdk폴더안의 파일을 수정해야되더군요

android-sdk디렉토리 안에 있는 tools/ant/main_rules.xml 을 열고 나서 

<property name="java.encoding" value="ascii" /> 부분을 찾습니다. 

 120     <!-- compilation options -->

 121     <property name="java.encoding" value="ascii" />

 122     <property name="java.target" value="1.5" />

 123     <property name="java.source" value="1.5" />

이후 ascii를 UTF-8로 수정후 저장합니다.

 <property name="java.encoding" value="UTF-8" />

이후에 다시 ant로 안드로이드 어플 컴파일 하면 한글이 깨지는 문제가 사라집니다.

참조: android: getting rid of “warning: unmappable character for encoding ascii”

(역시 구글링하면 모든 문제가 대부분 해결 되더군요 ㅎㅎ)


참고로 Mac OSX에선 기본적으로 UTF-8로 설정되어서 위와 같이 한글이 깨지는 문제가 없더군요.

아래는 맥의 ant 설정파일의 내용입니다.

/Users/studioego/android-sdk-mac_86/tools/ant/main_rules.xml

124     <!-- compilation options -->

125     <property name="java.encoding" value="UTF-8" />

126     <property name="java.target" value="1.5" />

127     <property name="java.source" value="1.5" />


Buy me a coffeeBuy me a coffee

+ Recent posts