2013년 9월 30일 월요일

직장 생활의 딜레마의 ㅊ

우선 우린 다 같이 간다는 생각으로 임한다.

그런데 군대 안 다녀온 사람들이 득실득실 하다.

군대 안 다녀온 것 까지는 좋다.

그러나 전역한 사람들은 말년 병장으로 전역하면서

결국 사람이 중요하다는 것을 깨닫지만

직접 경험을 안 해 본 사람들은

결국 인생은 계급 뿐이라고 생각하는 것 같이 보인다.

좋다.

계급 인정하고 회사 밖에서 정으로 나누는 술잔 하나 없이

직장 생활하는 것 까지는 괜찮다고 치자.

그런데 실력이 딸려서 책임질 때 되면 우리는 하나를 외치는 것은

상도에 어긋나지 않나?

조그만 잘못 하나에도 꼬투리 잡으면서 다른 사람 밟고 올라가려는

수작 부리다가 결국 나중에는 하나를 외치는.

내부적은 통일을 위하여 전쟁을 일으킨 원숭이 대장과 같이

결국 전쟁이 나서 다함께를 외치며 

니가 살아야 나도 산다는 구호와 함께 사라지는 것은

매력적인 중생들 뿐이다.

남는건 퍽퍽하고 아무런 인생의 가치도 없이

사회적 시스템에서 어떡게든 발버둥 쳐 보려는 인간성을 잃은

인간(동물)들 뿐.

사실 그들은 기회는 만나지 못했을 뿐.

히틀러랑 그들과이 차이점을 찾을 수가 없다.

가족을 지키기 위해서 그렇다고?

음주가무, 사회적 통념이 허락하는 선에서 이미 바람을 피고 있는 

네게서 그런 증거는 찾아볼 수가 없는데?


사형 제도에 대한 내 생각.

나이가 30대 중반으로 달려가니 이제 무색에서 

색깔을 지녀야 할 것 같아서 찬반 논란이 있는 문제들에 대한 생각을 말해 보겠다.

우선, 선진국 기준에서 사형 제도는 없어져야 한다고 생각한다.

우선 아무리 법이지만 사람이 사람을 죽인다는 것 자체가 잘못되었다고 생각한다.

법으로 죽이던 흉기로 죽이던 죽이는 것은 죽이는 것이니까.

그리고 과학 기술의 발달로 수용소도 죄수들이 빠져나가지 못하게 할 수도 있고,

세금 낭비도 그들의 노동력을 이용하는 방법을 강구할 수도 있다.

그러나 돈이 하나도 없는 나라(혹은 그런 조직)에서 사회와 격리할 정도로

흉악한 인간이면 죽이는게 맞다.

 영화 토처드에서 엉뚱한 사람을 고문하고 죽이는 내용... 그리고 진실은 밝혀지지 않는다.

그런데 실재로 비슷한 억울한 사연이 있었던 것을 들었었다. 뉴스에서 봤었는데 내용이...

억울하게 누명을 쓰고 사형당한 후에 밝혀진 진실. 이 때문에 사형 제도 폐지 논란이 여러번

되었었다고... 였던 듯.

 내가 수용소를 만들 수 있다면 다음과 같은 아이디어가 있다.

 사형이 양형이 된다는 것은 사회성을 잃어 사회와 영원한 격리의 목적이니

독방에 재봉틀 하나 넣어주고 못사는 나라 사람들 옷 만들게 한 다음 댓가는 책으로 줄

것이다. 그리고 그런 삶을 싫어 할 수도 있으니 독방에는 옆에 자살할 수 있는 노끈을

항상 구비해 놓아야 할 것이다.

 혹은,

 사형수끼리 Pride FC 같은 싸움 경기를 개최하고 거기서 나오는 머니를 사형수들

숙식 해결하는데 쓰던지.(이기던 지던 아프니... 당한 사람들 고통도 알게 되고 그들의

폭력성도 배출할 수 있는 기회도 되고)




2013년 9월 29일 일요일

여행 많이 하는 사람들의 공통점.

주변에서 여행을 많이 다닌 사람들의 이야기를 들어보면(지도 밖으로 행군하라 한비야 세미나 포함) 많에서 살 생각은 없어 보인다. 직접적으로 이야기를 들은 것도 있고, 말 속에서 묻어 나오는 뉘앙스에서 느껴지는 생각들을 추리해 보아도 그렇다.

 그리고 나 역시도.

구관이 명관이라고 보던 사람을 계속 보려면 처음 살던 그 자리가 좋고.
밖으로 나가봐야 크게 다른 건 없다는 것 때문이다.

그걸 알기 위해서 여행이 필요하고, 집이란 다시 돌아올 곳이라는 의미도 있다.


그리고 영어에서 go, come, exist, work 들은 수식이 없어도 되는 1형식이듯

오고 가고 일하고 존재하는 것에는 별다른 이유가 필요하지 않은 것 같다.

그래서 가는 것, 다시 집으로 오는 것, 나의 존재, 일하는 것들에 대한 이유는

영국 산악인 조지 멀로리의 "산이 거기 있으니까" Because It is there

처럼 의문을 품지 않기도 했다.

참, 영어 이야기 조금 더 하면 increase, decrease도 1형식인데 세상에 변하는 것에도

이유가 없는 것 같다.

Just do it.
(한국 개발자여 그냥 IT를 해라 ㅋㅋ)

우리 집안도... 내가 못바꿔. 그래서 난 선물을 준비한다. 고맙다는 말과함께

60대 며느리의 명절

▶ 명절 풍속도가 달라졌다고 하지만, 여전히 많은 며느리들이 속을 푹푹 썩는 시기가 명절입니다. 얼굴도 모르는 조상들을 위해 온종일 일을 하다 보면, 일년에 한두번 모이는 명절이라는 게 한이 쌓이는 자리가 되기도 하죠. 그렇게 모진 세월을 겪은 며느리는 또 누군가의 시어머니가 되기도 합니다. 고령화 시대를 맞아 60대에도 여전히 며느리인 한 여인이 묻습니다. 추석과 설은 도대체 누구를 위한 명절인가요.

올해도 어김없이 명절이 돌아왔다. 결혼하고 서른다섯번째로 맞는 추석이다. 스물일곱살, 꽃다운 나이에 결혼해 시집살이를 시작했다. 그때 시어머니는 쉰두살, 지금의 나보다 열살이나 적은 나이에 며느리를 맞았지만, 나는 여전히 며느리고 그는 여전히 시어머니다.

명절이 다가오면 머리가 지끈거린다. 고통스러운 기억이 축적돼 명절이 다가온다는 것을 몸으로 먼저 느낀다. 하지만 신기하게도 습관처럼 장을 보고, 식재료를 다듬고서 조리를 한다. 제사상에 올려지는 음식 하나하나에 내 손길이 깃들어 있지만, 제사가 시작되면 난 투명인간이 된다. 그저 뒤에서 입을 닫고 일을 하는 사람일 뿐이다. 예전엔 제사하는 모습을 멀찌감치 바라보며 여러 생각을 하곤 했다. 누구에게 절을 하는지, 조상이 진짜 제사상을 받으러 오는지, 그동안 내가 해준 밥을 먹으며 고맙다고 생각할는지, 저 조상은 나랑 무슨 상관인지, 내 마음은 이렇다는 것을 알는지 등, 궁금함과 억울함이 뒤섞였다. 지금은 별생각이 없다. 그저 차례가 빨리 끝나기를 바라는 마음이다. 지금 전세계에 한국 같은 제사와 차례 문화가 남아 있는 곳은 없다. 같은 유교문화권인 일본을 비롯해 제사라는 제도가 시작된 중국조차도 제사 문화가 사라졌다. 죽은 사람을 기리는 것은 의미있는 문화이지만, 한국에선 며느리들의 노동으로 이 문화가 유지된다. 며느리로선 얼굴조차 본 적이 없는 조상들이다. 사실 차례제도에 대해 이성적으로 따지고 싶은 마음은 별로 없다. 죽은 사람에게 억울한 것이 아니라, 산 사람들에게 더 서운하다. 35년간 내가 해준 밥을 먹은 시집 식구들은 그동안 고맙다는 말을 한번도 한 적이 없다. 그들이 와서 차례를 지내고 밥을 먹고 가면, 어질러진 집을 치우면서 ‘내가 뭐 하고 있나’라는 생각이 든다. 올해도 마찬가지였다. 첫 명절부터 이 마음은 늘 그대로였다.

시집와서 겪은 첫 명절은 1979년 추석이었다. 남편은 육남매의 장남이었다. 명절이면 시어머니는 새벽부터 불호령을 내렸다. 당시 임신 6개월째였지만, 힘들어하면 엄살 부린다는 타박만 들었다. 새벽에 연탄불을 때며 밥을 짓기 시작했고, 하루 종일 제사음식을 만들었다. 그 와중에 시집 식구들의 빨래와 집 구석구석의 청소도 여전히 내 몫이었다. 남편은 손님을 맞아 술을 마신 뒤 곯아떨어졌고, 내가 어떻게 일하는지 어떤 마음인지 돌아보지 않았다. 슬픈 기색도 쉽게 나타내지 못한 나는 자정을 넘어 세수할 때마다 펑펑 울었다. 눈물과 물이 섞여 들키지 않게 울 수 있는 유일한 때였다. 그렇게 울고서 고개를 들어보니 둥근 보름달이 떠 있었다. 그 보름달이 왜 이렇게 친정어머니의 얼굴이랑 비슷한지, 가슴이 미어져 또 펑펑 울었다.

명절은 고된 시집살이의 연장선이었을 뿐이다. 아침과 저녁 밥상을 하루에 서너번씩 차렸다. 직장에 다니던 남편의 동생은 새벽 6시 반이면 출근했다. 그를 위해 새벽 6시에 아침 밥상을 차렸고, 학교에 다니는 남편의 여동생들과 남편을 위해 아침 7시에 밥상을 차렸다. 시부모를 위한 아침 밥상은 아침 8시에 차렸다. 저녁때도 마찬가지였다. 퇴근시간이 다른 시동생들을 위해 두번 세번 밥상을 차렸다. 제사는 한달에 한번꼴로 있었다. 시아버지의 할아버지, 즉 남편의 증조부모까지 제사를 지냈다. 겨울이면 김장을 하는 배추가 180포기였고, 시어머니는 시장에서 사온 식재료를 마당에 던졌다. 입으로만 일을 하는 시어머니가 야속했지만, 어쩔 수 없었다.

제사상 올리는 음식 하나하나

내 손길이 깃들어 있지만

제사 시작되면 투명인간이 된다

35년간 내 밥 먹은 시집 식구들

고맙다는 말 한번 한 적 없다 

6남매의 장남에게 시집와

임신하고서도 밥 지었던 명절

남편이 모른 채 자는 사이

보름달 보며 펑펑 울곤 했다

그렇게 시집살이를 하던 중에 딸이 태어났다. 한겨울이었다. 옛말에 삼칠일이라고, 산모가 아기를 낳고서 21일이 지나면 회복된다는 말이 있다. 그땐 달력을 세가며 21일이 지나지 않기를 빌고 또 빌었다. 하지만 어김없이 그날이 다가왔다. 새벽부터 “밥해라”는 불호령이 떨어졌다. 산후조리도 제대로 안 된 몸으로 다시 일을 시작했다. 이삼 주 뒤 설 명절이 다가왔다. 한 주 동안 집안에는 손님이 끊이지 않았고, 갓난아기를 방 안에 내버려둔 채 부엌에서 일만 했다. 가끔 아기가 울면 시누이들이 들어가 우유를 주고, 기저귀를 갈아줬다. 산후조리도 안 된 몸으로 일만 하다 보니 우울증이 찾아왔다. 명절이 있던 주 어느 밤에 난 가출을 했다. 서울 종로구에 있는 시집에서 나와 하염없이 걸었다. 광화문에 다다르자 큰길엔 차들이 빠른 속도로 오가고 있었다. 그냥 이 길에 몸을 던질까, 그러면 편해질까를 여러번 고민했다. 갑자기 방 안에서 혼자 울고 있던 갓난아기가 생각났다. 아무 생각 없이 집으로 돌아왔다. 방 안엔 아기와 남편이 자고 있었다. 방 한편엔 언제 샀는지도 모르는 수면제가 있었다. 한손 가득 약을 움켜쥐고 입안에 털어넣었다. 그렇게 잠들었다.

눈을 떠보니 남편은 신문을 읽고 있었다. “이제 일어났냐. 어머니가 많이 화났다”는 게 눈을 뜬 내가 들었던 첫말이었다. 얘기를 들어보니 난 2박3일을 잠만 잤다고 한다. 그렇게 잠을 자는데도 병원에 데려가지 않았다. 시어머니는 내가 일을 하기 싫어 꾀병을 부린다며 잠든 나를 일으켰다고 했다. 그러다가 스르르 다시 미끄러져 쓰러지는 나를 보고는, “그래 실컷 꾀병이나 부려라”며 나갔다고 했다. 그 길로 갓난아기를 안고, 친정으로 돌아갔다. 앞으로 내 인생은 어찌 되는 걸까, 두렵고 불안한 마음뿐이었다. 친정 부모는 이 결혼을 엎을 것이 아니라면 참고 살아야 한다고 했다. 갓난아기를 바라보며 아빠 없는 자식을 만들 순 없었다. 우여곡절 끝에 다시 시집으로 들어갔고, 무수한 세월이 지났다. 명절이면 시집에 업고 가던 자식들도 이젠 다 커서 사회인이 됐다. 그래도 여전히 난 며느리다.

시어머니는 올해부터 남편의 조부모 제사를 명절 차례와 합치겠다고 했다. 차례나 제사 모두 이젠 없어져야 한다고는 생각하지만, 한편으론 시어머니가 다시 제사를 지내겠다고 하면 어쩌나 조마조마하다. 지금도 여전히 마음이 갈팡질팡하다. 이렇게 계속 살 순 없다고 생각하면서도 이전보다 나아졌다며 스스로를 위로하고 있다. 사실 어디서부터 무엇을 바로잡아야 할지도 잘 모르겠다. 그저 자식이 나와 같이 살기를 바라진 않지만, 내 마음을 알아줬으면 하는 바람이 있을 뿐이다.

35년 참고 산 며느리

2013년 9월 27일 금요일

FALINUX 건재하네... 자료도 많긍.



리눅스에서 C 언어로 코딩을 하다보면 Shell 명령어를 콜하고 싶을 때가 있습니다.
파일 처리를 한다던가 다른 프로세스나 데몬을 실행한다던가 하는 경우인데요.
이럴 경우 간단하게 처리하는 함수가  있습니다.
system 이라는 함수인데 다음과 같습니다.

       이름
                 system - shell 명령어 실행하기
          사용법
                 #include
                 int system (const char * string);
          설명
                 system() 함수는 /bin/sh -c string를호출하여 string 지정
                 된 명령어를 실행하며, 명령어가 끝난후 반환된다.  명령어
                 실 행되는 동안, SIGCHLD 블럭되며, SIGINT 그리고 SIGQUIT
                 는 무시된다.
          반환값
                 리턴된 값은만일 /bin/sh 위한 execve() 호출이 실패
                 면, 리턴된 값은 127 이며, 다른 에러가 있다면 -1, 그렇지
                 으면 명령어의리턴코드가 반환된다.
                 string 값이 NULL이라면, system() shell 이용할수
                 면 0 아닌 값을, 그렇지 않으면 0 값을 반환한다.
                 system()  은 어떤 다른 자식의 wait 상태에 영향을 주지 않는
                 다.

  
예제는 
int ret = system("ls -l");


 한가지 문제는 system 함수의 리턴 값으로는 실행한 shell 명령어나 프로세스의 결과를 리턴할 없다. 이런 경우에는 실행 결과를 파일로 저장한 후에 코드에서 파일을 읽어서 결과를 얻어오는 방법을 사용해야하는 불편이 있다.

부산 파크 하야트 후기.

Guest Information
  • Selected Hotel
Park Hyatt Busan
  • Selected Dates and Details Edit
  • Friday 20 September 2013 through Saturday 21 September 2013
    ( 1 Night )
    1 Room / 2 Adults / 1 Child
  • Selected Rate and Room Edit
    Gold Passport Award Rate Rules
    Only one room can be booked per Gold Passport Points reservation.
    Park King
    Room Details
  • Gold Passport points redeemed : 15000
Hyatt Gold Passport
Thank you for choosing Hyatt. We look forward to welcoming you soon.

오션뷰가 아니긴 했지만 적은 포인트로 좋은 숙소에 묵었다.

아기 침대가 있어서 너무 편했고,

서비스 친절... 좋더라.

그런데 아이파크 입주민의 집 사정이 다 보였음 ㅋㅋ

c file open option

래의 옵션은 모두 fcntl.h  정의되어 있습니다.
열기 옵션
옵션 설명
O_RDONLY
읽기 전용응로 열기
O_WRONLY
쓰기 전용으로 열기
O_RDWR
읽기와 쓰기가 모두 가능
외에도 다양한 옵션이 있습니다.
기타 옵션
옵션 설명
O_CREAT
해당 파일이 없으면 생성합니다.
O_CREATE  아니라 끝에 E 없는 O_CREAT 입니다.
O_CREAT 파일을 생성하게 된다면 파일의 접근권한을 지정하기 위해 접근 권한 값을 추가해야 합니다.
open( "jwmx", O_WRONLY | OCREAT, 0644);
O_EXCL
O_CREAT 사용했을 , 파일이 이미 있어도 열기가 가능하여 쓰기를 하면 이전 내용이 사라집니다.
O_CREAT 사용할 , O_EXCL 함께 사용하면, 이미 파일이 있을 때에는 open() 되지 않아 이전 파일을 보존할 있습니다.
fd = open( "./test.txt", O_WRONLY | O_CREAT | O_EXCL, 0644)
, 이렇게 O_EXCL 함께 사용하면, 파일이 없을 경우에는 O_CREAT 영향을 받아 쓰기 전용의 파일이 생성하고, 파일이 이미 존재하면 open() 실패됩니다.
O_TRUNC
기존의 파일 내용을 모두 삭제합니다.
O_APPEND
파일을 추가하여 쓰기가 되도록 open 후에 쓰기 포인터가 파일의 끝에 위치하게 됩니다.
O_NOCITTY
열기 대상이 터미널일 경우, 터미널이 플로그램의 제어 터미널로 할당하지 않습니다.
O_NONBLOCK
읽을 내용이 없을 때에는 읽을 내용이 있을 때까지 기다리지 않고 바로 복귀합니다.
O_SYNC
쓰기를 , 실제 쓰기가 완료될 까지 기다립니다. , 물리적으로 쓰기가 완료되어야 복귀하게 됩니다.

2013년 9월 26일 목요일

android에서 커널 버전 정보 읽는 법.

how to get kernel version info with c code like a uname command.

  FILE *f = fopen("/proc/version", "r");
        while (!feof (f)) {
                printf("%c", fgetc(f));
        }
        fclose (f);

간단한 코드로 만듦.


얘는 write 안쓰다 보니 다 까먹어서 남겨둠.

    FILE *f = fopen("/proc/cpuinfo", "r");
        int d = open("./ddd.txt", O_WRONLY | O_CREAT | O_EXCL, 0644);
        char a;
        while (!feof (f)) {
                a=fgetc(f);
                write(d, &a, sizeof(&a));
        }
        fclose (f);
        close (d);

실전 안드로이드 증강현실

AndAR만 키워드만 알면된다.

소스 설명도 부족하고 내용 구성이 허술하기 짝이 없다. 라지하브 수드... 길벗 출판사에게 돈을 물어달라고 하고 싶다

2013년 9월 25일 수요일

SEAndroid 024 - mac_permission.xml

SELINUX -> SEAndroid 로 바꾸었다.



안드로이드 어플의 기본 패키징 단위는 APK이다. 요샌 보안상 obex인가 obdx인가… 둘로 쪼개서 카피를 힘들게 했다. 그런데 빌드 옵션에 따라 합쳐지게 수도 있으니 APK 하나의 단위로 봐도 되겠다.

퍼미션.xml 파일은 APK에서 키를 뽑아(물론 퍼블릭키) 키에 맞는 SEINFO 값을 주기 위한 맵이다. 값들이 퍼미션에 저장되고 거기에 맞는 SEINFO 값을 적어 준다. 안드로이드 4.3 기준으로 얘는 요기서 부른다.

AOSP/frameworks/base/services/java/com/android/server/pm$ vim SELinuxMMAC.java


    // Locations of potential install policy files.
    private static final File[] INSTALL_POLICY_FILE = {
        new File(Environment.getDataDirectory(), "system/mac_permissions.xml"),
        new File(Environment.getRootDirectory(), "etc/security/mac_permissions.xml"),
        null};

얘다.

sSigSeinfo 해시맵에 키랑 SEINFO 넣는다. SEINFO 플래인 텍스트고 단어라고 생각하면 된다. Platform 같은.

PackageManagerService.java 보면(우리가 말하는 안드로이드 패키지 매니저의 본체)

 private PackageParser.Package scanPackageLI(PackageParser.Package pkg,
   5497             int parseFlags, int scanMode, long currentTime, UserHandle user) {
   5498         File scanFile = new File(pkg.mScanPath);

요런애 안에
   5517         if (mFoundPolicyFile) {
   5518             Slog.w(TAG, "SELinuxMMAC.assignSeinfoValue");
   5519             SELinuxMMAC.assignSeinfoValue(pkg);
   5520         }

이렇게 쓰인다. 해당패키지에 맞는 값의 SEINFO 주는 것이다.


SELINUX 023

attribute는 하나의 그룹이다.

type init, domain, xxxx, yyyy;

식으로 정해주면 된다.

type source, attributes name, attributes name, ...;

파일 attributes를 열어 보면 다음과 같이 쭉 정의할 수 있다.

중요한 것은 그룹화 할 때 어떻게 묶느냐는 거지...

기준이 명확해야 한다.

######################################
# Attribute declarations
#

# All types used for devices.
attribute dev_type;

# All types used for processes.
attribute domain;

# All types used for filesystems.
attribute fs_type;

# All types used for files that can exist on a labeled fs.
# Do not use for pseudo file types.
attribute file_type;

# All types used for domain entry points.
attribute exec_type;

# All types used for /data files.
attribute data_file_type;

# All types use for sysfs files.
attribute sysfs_type;

# Attribute used for all sdcards
attribute sdcard_type;

.
.
.
.

SELINUX 022

SELinux 불린 값을 이용해서 

SELinux.getBooleanValue("xxxx")

SELinux.setBooleanValue("xxxx", yyyy);

Policy 에도 if 문을 줄 수가 있다.

*.te

if (xxx) {
allow ~~~~~~~
}


bootcamp 지우기

맥북 프로 레티나 터치바 diskutility 에서 bootcamp 파티션 삭제하면 검은색에서 회색으로 바뀐다(APFS로 지정) 파틴션 아이콘 클릭하여 - 버튼을 이용하여 삭제하면 끝.