2007/11/29

도덕적..

불교방송 초청 토론회에 이명박 후보가 출연해 도덕적 죄를 저지른 바가 없다고 한다. 저질렀으면 어떻게 대선후보에 나갈 수 있냐고 한다.

http://kr.news.yahoo.com/service/news/shellview.htm?articleid=2007112919241760518&linkid=20&from=rank

근데 이게 웃기다. 자기 자식들을 자신이 만든 회사에 근무도 안하면서 등재시킨건 도덕적 죄가 아니고 실수라고 말을 하고 있는 거다.

돈 없는 나 같은 사람들은 그럴 생각도 못하는데 도대체 이명박 후보가 말하는 도덕적 죄라는 건 나 같은 평범한 사람 딴에서의 윤리를 말하는 건지 아니면 이명박 후보처럼 돈 많은 사람들의 세계에서 통용되는 윤리인가?

...

클린 정치란 과연 무엇인가..?

클린 정치란 과연 무엇인가?

아까 잠시 신문들을 뒤적거리다 끌리는 타이틀이 있어 본문을 읽어보았다. 근데 왠걸 재밌다.
클린 정치란 무엇일까?

깨끗한 정치..
클린이란말이 가지고 있는 영문자의 뜻은 무얼까..

(~·er; ~·est)
1. 깨끗한, 청결한; 더럽지 않은, 산뜻한; 아주 새로운, 신선한; 청결함을 좋아하는( dirty, unclean).



1. 깨끗하게; 청결하게.

2. 《구어》 완전히, 충분히.

━ (~s [-z])

1. …을 깨끗하게 하다; …을 말끔히 치우다, 정돈[청소]하다.

clean 부착물 따위를 제거하여 말끔한 상태로 되돌리다; 방법·수단을 불문한다. cleanse (화학적 방법 따위로) 불결·유해물을 완전히 제거하고 깨끗하게 하다; 정신적·도덕적인 뜻으로도 사용한다.

━ 깨끗해지다; 청소하다; 청소되다.



1. (a ~) 깨끗이 하는 것, 손질, 청소.

2. 〈역도〉 클린(바벨을 어깨 높이까지 들어 올리는 것).

위와 같단다.

후보자의 클린을 위해서라면 방법, 수단을 불문한다는 것인가?

최근에 욕쟁이 할머니의 이명박 지지에 대한 광고가 있었는데, 이 광고에 나오는 할머니는 실제 사는 곳은 강남, 한나라당께서 섭외하셨단다.

도대체 한나라당의 클린 정치 위원회라는 건 이명박의 이미지를 깨끗하게 하기 위해 뭐든지 하는 집단인가? 아니면 그렇게도 잘 주장하는 공작정치를 없애자고 있는 집단인가?

그들의 정체성이 의심될때다.

2007/11/28

지금이 "성공시대" 의 시대로 보이는지?

잠시 휴식을 취할까 하여 다음 URL을 눈뜨고 쳐다봤다.

근데 재미있다. 전국 42개 대학 총 학생회장들이 MB 를 지원하신단다.

근데 이들의 지지선언이 더 웃기다. 자세한건 읽어보시고..

http://kr.news.yahoo.com/shellview.htm?linkid=20&articleid=2007112815415915834

주 내용중 하나가.. 경제를 살리는데 이념이나 가치는 필요없고 MB는 맨주먹 하나로 떠오른 사람이란다.

그러면 이렇게 가정해보자.

박정희 대통령이 경제를 일으키는데 이념이나 가치를 중요시 하지 않아 현재까지 무엇이 산출되었는가? "지역감정", "건설 중심" 이 그것이다.

물론 건설이 외면 당해야 하는 것은 아니지만 이제 한국이란 나라에서 맨주먹으로 일어서 한 사람이 아래사람들을 이끄는 세상은 아니다.

그리고 이력서 쓰는데, 나도 시간 보내는거 사실이지만 이건 너무 하다 싶다. 그러면 니네들은 이력서 한통 제대로 쓰지도 못하면서 회사 취업할 생각 하냐? 나원참 기가막혀..

2007년 현재는 노무현 대통령이 닦아놓은 일을 기반으로 미래로 가야 할 시기지. 성공시대를 다시한번 일굴 시대는 분명히 아니다.

정신들 차려라. 이눔들아. 어떻게 배웠다는 놈들이 편한길만 가려고 그러냐 -_-

도대체가 ...

2007/11/07

이런말을 하면 안되겠지만..

이런말을 하면 안되겠지만.. 원더걸스.. 어찌보면 희생양이다. 마케팅의 희생양

개인적으로야 소은양을 좋아라 하기 때문에 굳이 빠져들 이유도 없지만...

아이들을 위한 것이 아니라 그저 회사의 상업성을 위한 마케팅..

후후..

2007/10/28

1 개의 생각과 1개의 길

삶에는 1개의 생각과 1개의 길이 있다.

다만 1개의 생각이 1개의 길을 결정한다는 것이다.

사랑 또한 마찬가지이다. 1 사람과 1 사람이 만나서 사랑을 하는 것이다.

나는 언제쯤 남은 1개를 찾을 수 있을까..?

2007/10/26

뻔뻔한 발언

- 술자리에 여종업원들도 있었나?
"3명 있었다. 원래 여종업원이 없는 술집이었다. 그런데 (누군가) 전화로 (여종업원을) 부르는 것 같았다."
-> 원래 없었다면 불렀어도 나왔어야 하는 법. 정치인이 그런 얘기로 시끄러울게 뻔한데 이런걸 답변이라고 하는지?


- 술값은 누가 계산했나.
"내가 계산을 하려고 카드를 꺼내니까 피감기관 쪽에서 '20만원도 안되는데 그걸 뭘 내시냐'면서 계산하더라. 근데 무슨 몇 천만원 (접대를 받았다고 기사가 나오)이냐."
-> 애시당초 술자리에 간 것이 잘못이다. 만약 의원님께서 지불하셨어도 이런 얘기는 나온다. 정치인은 더치페이 말곤 어떠한 상황에서도 말은 벌어진다.


- 술 자리는 몇시에 파했나?
"밤 10시 이전에 파했다. 그 뒤에 피감기관들이 자기들끼리 술을 마신 건지 어쩐 건지는 모르겠다."
-> 당연히 모르겠지!


- 식사자리에는 국감에 출석한 여야 의원들이 다 있었나?
"그렇다."(그러나 신당과 한나라당 일부 의원은 식사 자리에는 참석하지 않았다고 주장했다-편집자주)
-> 여권은 어느당이 있나? 식사자리에 있었던 모든 의원의 이름을 대는게 맞는 법.


- 한나라당에서 그날 국감에 불참한 의원은 누군가?
"강재섭·박형준·박성범·신상진 의원은 안왔다."(그러나 임 의원의 발언과 달리 박성범, 신상진 의원은 국감에는 출석했으나 식사자리에는 불참한 것으로 알려졌다-편집자주)
-> 자기 당의 의원님들이 누가 있는지도 몰라. 의원님 정치인이십니까?


- 보도에 대한 대처는 어떻게 할 건가?
"(상임위에) 올라가서 대책회의를 해봐야겠다."
-> 틀린말 한 것도 아닌데 열받을 필요있나?


- 당시 묵었던 호텔 이름은 무엇인가.
"○○○이다."
-> 정치인 돈 많네. 호텔도 가고 나 같으면 가장 싼 여관 간다.


- 식사자리에서 밥값은 누가 냈는지 아나?
"밥값 누가 냈는지 누가 아나. 국회서 냈는지 누가 냈는지…(모른다)"
-> 자신의 행동에 정당한 정치인이라면 자신의 밥값 정도는 자기가 내야 하는거 아닌가?


- 보좌관들 끼리 따로 술자리가 있었던 건 아닌가?
"그것까지 내가 어떻게 아나?"
-> 제 집 식구들(보좌관들)이 말 안해주면 이미 의원님에 대한 실망이 있는 것 아닌가?

-->
어느 당의 정치인께서 신문에 답해주신 질답을 내 생각대로 정리했다.

2007/10/25

오늘의 한마디

지식 없는 인격은 유약하고 쓸모없는 것이며, 인격 없는 지식은 위험하고 무서운 것이다 - 새뮤얼 존슨

2007/10/03

노무현씨 집이 어쨌다는 것이냐..

한 신문에 이런 댓글들이 달렸다.
 
 
잘 읽어보니 한 네티즌께서 미수다 게시판에 사유리를 욕한 모양이다. 노무현씨 집이라고 해서.
 
근데 문제의 본질을 많이 벗어나 있는 것처럼 보인다. 아니 적어도 그녀가 외국인이라서 그럴지도 모른다. 왜?
 
참여 정부. 다시 말해 노무현 후보가 대통령이 되면서 세워진 제대로 된 2번째 민주 정부가 출범하고 나서 옛날들과 다르게 대통령께선 국민의 손과 발을 향하셨고 국민을 떠받치려 들었다. 그런것의 성과로는 독재적인 모습이 없어졌다는 거다. 이건 굉장히 신임할 수 있는 아니 과거에 대통령을 함부로 욕하면 잡혀갔던 것과 사뭇 대조적이다. 다른 나라 사람이 노무현씨 집이라고 하면 어떻게 생각하면 그 나라 대통령을 가벼이 여긴다고도 볼 수 있지만, 더 친근하게 느낀다고도 볼 수 있지 않을까 싶다.
 
그리고, 한국인들 너무 주제 파악이 안된다. 나도 같은 한국인이지만 자기네들이 노무현 대통령에게 "노빠, 뇌빠" 등의 표현과 차마 국가원수에게 하지 못할말들을 쏟아놓고 이제와서 오리발이라니 한심하기 그지없다. 적어도 그런식으로 이야기 하지 않았다면 나도 이렇게까지 얘기하지 않았겠지만 무엇이 되었든 노무현 대통령은 현재 국가의 원수가 아니던가. 유교를 국교로 삼았던 우리의 마지막 왕조였던 조선도 결코 임금 앞자리에서 신하나 백성이 왕을 가벼이 하지 않았다.
 
지금의 한국은 도대체 어떻게 되먹은 나라인가. 반성들 좀 하시게나.

2007/09/19

허허 선배의 이야기를 전한 것 뿐이라..

모 정당의 모 대선 후보께서 최근 마사지걸이라는 말을 하셨나 보다. 그런데 해명 차원에서 이렇게 말한다 하더라
 
"내가 아는 45년전 이야기. 그것도 선배의 이야기를 전한 것 뿐이다" 라고
 
아니 그럼 그 후보께서는 대통령에 선출되셔도 다른 나라가서 높으신 분들 앉아계시면 이런 말 할 참인가?
 
"내가 아는 모 극빈국 이야기. 그것도 보좌관의 이야기를 전한 것 뿐이다" 라고
 
이 분 역사인식이 제대로 박혀있는 분인지 정말 의심스럽다. 언행을 조심해야 할 분이 이런 소릴 한다면 올바른 것이 그 어디에 존재하겠는가???

2007/08/31

여우비 - 임창정

멀어진 니 마음 이젠 상관없어 딴 남자들처럼 멋지게 잊어 볼테니깐. 많은 친구들이 내게 당부한 그녀의 가치 내겐 아무것도 느낄 수 없었던 너만의 멋. 왜 맨날 넌 시간이 없어 날 볼 때 또 딴 짓이니  널 원했던 건 맞아 나지만 그 댓가가 너무 커. 내 모양이 싫은 건지 가진게 없어 지쳤니 아냐 나도 싫어 너 같은 애 사실 이런 말하고 싶었어. 니가 뭐 대단한 미인인 것 같니 딴 여자들보다 못한 것도 많아 마음이지

맑은 봄날 여우비 같은 그녀 이해가 안가 내겐 잘해 준 적도 한번 없는 너였잖아. 왜 맨날 넌 시간이 없어 날 볼 때 또 딴 짓이니 널 원했던 건 맞아 나지만 그 댓가가 너무 커. 내 모양이 싫은 건지 가진게 없어 지쳤니 아냐 나도 싫어 너 같은 애 사실 이런 말하고 싶은데

(니가 반한 멋진 차 니가 반한 멋진 옷 니가 반한 그 무엇도 나는 없지만 지금은 그저 멋진놈 지금은 그저 미래만으로 모두 다 이겨 나갈 수 있어)

왜 맨날 넌 시간이 없어 날 볼 때 또 딴 짓이니 널 원했던 건 맞아 나지만 그 댓가가 너무 커. 내 모양이 싫은 건지 가진게 없어 지쳤니 아냐 나도 싫어 너 같은 애 사실 이런 말 하고 싶은데

슬레이어즈 Try Opening

아아~~
저 높은 하늘을 새가 되어 날아가고 싶어
아득히 먼 곳에 보이는 희망 찾아서
희망에 찬 마음으로 현실을 바라볼 수 있다면
더 이상 약해지지 않아
미래도 두렵진 않아
 
바람을 타고서 꿈에 저편 너머로
날아가고 싶어
용기의 날개를 달고서 날고싶어
 
새가되어 세상 바라보는 마음을
계속 간직할꺼야
어려운 현실을 난 이겨나갈꺼야!

You're Under Arrest 2기 Opening Theme

항상 혼잣말을 했었지
삶이 힘들때면
그래도 가슴뛰는 이 느낌
잃고 싶지 않아
꿈은 멀어져 가고
현실은 날 붙들고 있지만
바람이 불어올때도
웃는 얼굴 잃지 않고 힘껏 날 껴안고서
멋지게 살아갈꺼야
이제 Love Some body~
언젠지 몰라도
찾아낼꺼야
take my chance
온 세상 모든 시간이 멈춰도
저 하늘을 날고 싶어
이젠 Love Some body~
만나게 될꺼야
세상 하나뿐인 사람을
끝이 없는 젊음을 안고서
미랠 향해 달려봐
 

You're Under Arrest Ending Theme

항상 내 갈길을 고집했어
나만의 생각 그것 때문에
하지만 남은건 뜻 모를 외로움
 
늘 가까운 곳에 서있는 널
바라볼 수 밖에 없었기에
어쩔 수 없는 건 널 향한 그리움
 
가슴속 깊이 간직했던
아픔이 밀려와
말할수가 없었지 후~ 난 또 그자리
 
바람아 (불어오렴)
시간을 흐르게 하렴 (내마음 전해주렴)
영원한 시간속에 언젠가 아아~
말할 수 있을 것 같아
 
Thanks You Freinds...
 

2007/08/26

연예인들의 학력위조 혐의..

내 일하기도 바쁜데 잠시 엉뚱한데 시간을 좀 쏟아본다.

최근에 연예인들에 대한 학력 위조가 문화, 방송계에 커다란 바람을 불고 왔다. 많은 연예인들이 그런 분류에 속한다.

신정아, 김옥랑, 장미희, 심형래, 이창하, 최수종, 안재모, 오승현, 윤석화, 강석, 주영훈, 이지영 등 대중에게 많이 알려진 인물이 꽤 많다.

한가지 재미있는 것은 이번에 사람들이 떠들고 다니는 "인터넷에 너무 무관심했다", "그럴 의도는 없었다" 이런 이야기들 중 인터넷에 너무 무관심했에만 잠시 이야기 해볼까 한다.

연예인들이 그럴 의도가 있었든 없었든 그건 그네들만의 사정이고, 인터넷에 너무 무관심했다는 사실 거의 맞다. 심지어 내가 좋아하는 이모양 가수도 컴퓨터과 인터넷을 그렇게 잘알지 못한다(이건 실제로 만나서 본인에게 들었던..)

물론 가수나 연기자들은 그들만의 분야가 있으니 쓸때없이 인터넷에 소비하는 시간이 많은 사람들이나 전문가가 아닌 이상에서야 인터넷은 쉽게 다가설 수 없는 성역이다.

그런면에서 성역의 지킴이들이라 할 수 있는 인터넷 매니아나 포털 등은 정확한 정보의 양산과 배포를 해야만 한다.

이번 사건들에서 공통적으로 볼 수 있는 부분이 고의 여부를 떠나 포털 등이 대충 주서들은 말로 연예인들에 대한 학력을 게재해 놓는 것이다.

물론 연예인들이 잘했다는 건 절대 아니다. 하지만 성역 지킴이인 포털등은 사실 확인에 나서지 않아 수 많은 연예인들이 먼저 아니다 라고 말하게 하는게 좋은 것인가?

틀림없이 틀린 사실이다. 포털도 연예인들 학력에 대한 확실한 확인 후 올려야 하는 것이다. 일례로 최수종의 경우 소속사에도 잘못된 사실이 적혀 있었으니 포털만의 잘못이라고 할 수 없으나 오승현의 경우엔 그렇지 않았다.

일례로 A 포털은 오승현에 대해 단국대 입학까지만 적혀 있고, B 포털은 단국대 학사라고 되어 있던걸 확인해볼 수 있었다.

이런 상황에도 불구하고 여전히 연예인들에 대한 비난과 욕만 쏟아지고 실제 제대로된 학력을 넣지 않은 포털들은 아무런 욕도 먹고 있지 않다.

이런 문제들이 꼭 포털의 문제라고 보기도 어렵다. 인터넷은 참여로 이루어지는 바다이기 때문이다. 참여하지 않는다면 잘못된 사실은 고쳐질 수 없다.

그러나 포털도 반성해야 하지 않나 싶다. 정보를 제공한다는 이유 하나만으로 욕 먹지 아니하는 것은 웃기지 아니한가.

갈수록 온라인 상에서의 폭력이 정도를 넘어서고 있다. 제대로 된 의식 전환이 필요하다

2007/08/23

CodeIgniter 에서 객체를 수동으로 생성해서 사용하기

CodeIgniter 에서는 라이브러리나 컨트롤을 읽어들일때 자동으로 클래스를 할당하게 되므로 실제로 배열에 객체 데이터를 담을 수 없다.
 
이때 다음과 같은 파일을 만들고 쓰면 잘 된다.
 
application/system/libraries 디렉토리 밑에 beans.php 파일을 아래와 같이 만든다.
 
<pre>
&lt;?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class beans
{
    /**
     * 빈즈 이름
     *
     * @var string
     */
    var $beans_name;
   
    /**
     * 빈즈 파일을 읽어들일 기본 경로
     *
     * @var string
     */
    var $load_dir;
   
    function beans ( $dir )
    {
        // 기본적으로 Beans 를 불러들일 경로
        $this->load_dir = APPPATH . 'libraries/' . $dir . '/';
    }
   
    function load ( $beans_name )
    {
        // 불러들일 Beans 파일 포함
        include_once ( $this->load_dir . $beans_name . EXT );
    }
}
?>
</pre>
 
이 때 Beans 를 불러오는 기본 경로는 다르게 설정해주는 것이 좋다. 본인은 libraries 밑에 beans 파일을 두기로 했다.
 
그리고 다음과 같이 컨트롤러나 라이브러리에서 사용해주면 된다.
 
$this->load->library ( 'beans', 'warning' );
$this->beans->load ( 'test' );
$tester = new test ();
 
여기서는 본인이 test 라고 만든 빈즈 파일을 시험삼아 해보았으니 필요에 따라 만들면 되겠다..

2007/08/22

추억이란 상당히 재미있는 존재인듯..

정말이지. 집에 있었던 시디들이 내 기록을 얼마동안은 보존해주고 있구나.. 란 생각이 든다.
난 어렸을때 정말 어떤 사람이었던거지..
 
시디에 있는 음악들과 수 많은 파일들(그중엔 야동이라 불리는 녀석들도.. 쬐금은..). 아아하하하;;
멋적은 웃음과 함께 내 시간을 잠깐 거슬러 가봤다. 재미있는걸?

삶에서 남는것은...?

집에 있는 시디를 하나씩 뒤져보다가(물론 집에 일거리 가져와서 일하려고 했는데) 사진들을 발견했다. 그 당시 130만 화소 카메라로 이곳저곳을 찍으러 돌아다니고 나도 봤는데, 그때 내가 그런 모습을 가지고 있는지 전혀 상상도 못했다. 별짓 거리 다 했구나 ㅡㅡ; 이런 생각이 들더라
 
그래도 사진을 보니 반가웠다. 몇년동안이나 짝사랑했던 여자의 사진부터 직장 사람들까지.. 후후 이런게 추억이란건가 보다. 하긴 사람머리로 기억할 수 있는건 한계가 있겠지
그렇다 하더라도 너무 반가웠어^^

2007/08/21

국정실패라..

뉴시스 2007년 08월 21일(화) 오후 07:09 자에 다음과 같은 기사가 올라왔다.
 
한나라당 나경원 대변인은 21일 범여권을 겨냥 "대선 120일 전인 오늘까지도 우왕좌왕하는 국정실패 세력에게 '비겁하게 헛소문으로 공격하지 말고 너나 잘 하라'고 말해 주고 싶다"고 일갈했다.
그는 또 "한자릿수도 안 되는 지지율을 가진 정 전 의장이 지지율 59%의 이 후보에게 악담을 퍼붓는 것은 하룻강아지 범 무서운 줄 모르는 격"이라며 "정 전 의장이나 범여권 후보들 심정이야 국민의 절대 지지를 받는 이 후보에게 저주의 굿판이라도 벌이고 싶겠지만 그렇다고 범여권을 떠난 민심이 돌아오진 않는다"고 말했다.

그는 이어 "정 전 의장이야말로 열린우리당 창당공신이고 당 의장을 2번씩이나 지낸 국정실패의 주역으로 노무현 정권과 운명을 같이 해야 할 정치인인데도 노 대통령을 비난하고 탈당한 기회주의자"라며 "이번 대선에 출전할 명분과 자격이 없는 정치인이라는 지적이 여권 내부에서 있었다"고 비판 수위를 높였다.
 
좀 일갈해볼까나?
 
한나라당 나경원 대변인은 21일 범여권을 겨냥 "대선 120일 전인 오늘까지도 우왕좌왕하는 국정실패 세력에게 '비겁하게 헛소문으로 공격하지 말고 너나 잘 하라'고 말해 주고 싶다"고 일갈했다.
-> 여권이 비겁한건 사실이다.
 
그는 또 "한자릿수도 안 되는 지지율을 가진 정 전 의장이 지지율 59%의 이 후보에게 악담을 퍼붓는 것은 하룻강아지 범 무서운 줄 모르는 격"이라며 "정 전 의장이나 범여권 후보들 심정이야 국민의 절대 지지를 받는 이 후보에게 저주의 굿판이라도 벌이고 싶겠지만 그렇다고 범여권을 떠난 민심이 돌아오진 않는다"고 말했다.
-> 범여권 민심 떠난지 오래됐지.. 근데 하룻강아지 범 무서운 모르는 격이라. 한나라께서 그리 말씀하셔도 되나? 그럼 국가를 대표하는 대통령은 한나라께는 하룻강아지고 한나라께선 범이라는 얘기시네 그려..
 
그는 이어 "정 전 의장이야말로 열린우리당 창당공신이고 당 의장을 2번씩이나 지낸 국정실패의 주역으로 노무현 정권과 운명을 같이 해야 할 정치인인데도 노 대통령을 비난하고 탈당한 기회주의자"라며 "이번 대선에 출전할 명분과 자격이 없는 정치인이라는 지적이 여권 내부에서 있었다"고 비판 수위를 높였다.
-> 머 백번 심사 숙고해서 노무현 정권과 운명을 같이 해야 할 정치인 맞겠지. 근데 국정실패는 한나라께도 있는거 아닌가? 내가 국회에 얼마나 많은 법안이 통과되고 있는지 모르겠지만 맨날 신문엔 국회에 계류중인 민생법안 뉴스가 올라오는건 누구 탓일까나. 한나라께서도 끝까지 발목잡은 것이 있지 않은가? 도대체 서민을 위한다는게 무슨 얘기인지 모르겠다.
 
도대체 한나라 국회의원들께선 서민들께 무엇을 해주셨는고? 경제 좋지. 경제 좋아져서 나도 돈 많이 벌고 30 되기 전에 전세집 얻고 풍요롭게 결혼할 수 있을 정도가 된다면 더할 나위 없겠지. 헌데 7% 나 그거 이해가 안되. 지금 당장 올린다고 하고 후에 태클거는 사람들처럼 국가 차원에서 드는 비용은 어찌할건데? 그건 땅파서 돈을 뽑아낸다는 건가?
아 추가로 대운하도 이해가 안되. 실효성, 일자리 확대 다 좋아, 근데 말야 대운하가 지나가는데 논 하나 없애면 쌀값 올라가거든. 그리고 대대로 조상을 모셔온 사람들에게 그것도 서민들에게 무덤 옮기라고 하는게 말이 되? 그리고 대운하 파는데 지나가는길에 문화재는 어떻게 할껀데? 이후보께는 역사인식도 없나 보지? 비석 밟고 올라간건 실수로 그렇다 쳐도 문화재는 어떻게 할껀데? 아님 고속도로처럼 대운하를 문화재 피해서 돌돌 돌려서 공사할껀가? 그럼 대운하 안파는 것보다 낫지.
 
상식적으로 생각해보자. 대운하는 파나마 운하가 유명한데, 파나마 운하를 판 이유 자체가 물류 운송에 시간이 걸리기 때문이다. 한반도에서 함경도와 부산을 연결하지 않는한 굳이 대운하를 팔 이유가 있을까?
 
서울->부산간 철도 연결되어있고, 원하면 비행기로 물류수송도 가능해.
 
아 하나더 대운하 팠다 치고, 정말 재수가 없어서 대운하 한쪽이 무너지면 그 주변에 있는 민가와 밭, 사람들은 어찌할껀데? 그건 국가적인 재앙일껀데? 이건 청계천이 아니라오
뭐 사람들이 돈 하나에 미쳐서 이후보를 뽑은걸 보면 참 대단하단 생각밖에 안들어.
 
도대체 대운하 팠을때, 당장 세재 개편했을때 이익이 아니라 장기적인 이익으로 역사적으로, 국가적으로 어떤 영향을 가져올지 생각은 하는건지?
 
뭐 한나라 하시는 생각이 늘 그렇지. 아 우리나라 선거법 고쳐야 되. 이거 문제 많어 특히 온라인 홍보방법. 정말 문제 많어..
 
한나라가 아무리 달라졌다곤 해도 그대로야. 썩어빠진 정신, 소금에 절이고 새우젓에 묻힌 머리들... 후..
 
아 이런 말이 있더라.
 
"소금에 절인것은 썩지 않는다"
 
내가 잘못들었나?

2007/08/15

Windows Vista 에서 OpenVPN 으로 VPN 접속시 라우팅 문제

Windows Vista 에서 VPN 을 사용해서 회사로 접속시에 직접 명령을 치지 않고 OpenVPN 이란 프로그램을 사용해서 접속을 하는 것이 편합니다. 그런데 Windows Vista 에선 약간의 문제가 발생해서 제대로 VPN 에 연결되지 않는 문제가 발생합니다.

해결방법은 VPN 키가 있는 곳에 확장자가 ovpn 인 파일을 열어 맨 끝에 다음 2 줄을 추가해줍니다.

route-method exe
route-delay 2

그리고 접속하면 깨끗이 접속되는 걸 확인할 수 있습니다.

OpenVPN 을 사용하지 않아도 Windows Vista 사용자들은 꼭 확인해주시기 바랍니다.

세상에서 필요로 하는 것..

종이라고 하는 것은 치면 소리가 난다.
쳐도 소리가 나지 않는 것은 세상에서 버린 종이다.
또 거울이란 비추면 그림자가 나타난다. 비추어도 그림자가
나타나지 않는 것은 세상에서 내다버린 거울이다.
보통 사람이란 사랑하면 따라온다.
사랑해도 따라오지 않는 사람은 또한 세상에서 버린 사람이다.
-한용운-

지금하십시오

할일이 생각나거든 지금 하십시오.
오늘 하늘은 맑지만
내일은 구름이 보일런지 모릅니다.
어제는 이미 당신의 것이 아니니
지금 하십시오.

친절한 말 한마디 생각나거든
지금 말하십시오.
내일은 당신의 것이 안될지도 모릅니다.
사랑하는 사람은 언제나 곁에 있지는 않습니다.
사랑의 말이 있다면 지금 하십시오.

미소를 짓고 싶거든 지금 웃어주십시오.
당신의 친구가 떠나기 전에
장미는 피고 가슴이 설레일 때
지금 당신의 미소를 주십시오.

불려야 할 노래가 있다면 지금 부르십시오.
당신의 해가 저물면 노래부르기엔
너무나 늦습니다.
당신의 노래를 지금 부르십시오.
--
놀부에서 제작해서 배부하는 글입니다.

2007/08/14

CodeIgniter 에서 PEAR 라이브러리 사용하기

CodeIgniter 는 단 시간내에 빠른 개발 방법을 지원하는 경량급 PHP 프레임워크인데, 모든 것을 이 안에서 다 제공하다 보니 하나의 문제가 생겼다. 바로 외부에 존재하는 수 많은 라이브러리의 사용이 그것이다.

이 글은 PHP 에서 지원하는 PEAR 라이브러리를 CodeIgniter 에서 사용하는 방법을 다룬다.

CodeIgniter 에서 Pear 를 사용하기 위해선 6 가지의 절차를 거쳐야 한다.

우선 config/config.php 파일을 열어서 아래처럼 바꿔준다.

$config['enable_hooks'] = FALSE; ☞ $config['enable_hooks'] = TRUE

그리고 같은 디렉토리 아래 hooks.php 파일을 열어 파일의 맨 끝(PHP 선언이 끝나기 전에 있는 라인)에 다음 내용을 추가해준다.


$hook['pre_controller'][] = array (
'class' => 'Pear_hook',
'function' => 'index',
'filename' => 'pear_hook.php',
'filepath' => 'hooks'
);


이제 hook 을 작성할 차례이다. application 아래에 hooks 디렉토리로 이동해 다음 이름으로 파일을 작성한다.

파일 이름 : pear_hook.php

<?php if ( !defined ( 'BASEPATH' )) exit ( 'No direct script access allowed' );
class Pear_hook
{
function index ()
{
// on Apache
// ini_set ( 'include_path', ini_get ( 'include_path' ) . ':' . BASEPATH . 'application/web/pear/' );
ini_set ( 'include_path', ini_get ( 'include_path' ) . ':' . BASEPATH . 'application/web/pear/' );
}
}
?>


여기까지 따라왔으니 이제 3단계만 더 거치면 PEAR 를 원활하게 사용할 수 있다. application/libraries 디렉토리로 이동해 아래 파일을 작성한다.

파일 이름 : Pearloader.php

<?php if ( !defined ( 'BASEPATH' )) exit ( 'No direct script access allowed' );
class PearLoader
{
function load ( $package, $class, $options = null )
{
require_once ( $package . '/' . $class . '.php' );
if ( strpos ( $package, '/' ) ) $package = str_replace ( '/', '_', $package );
$classname = $package . "_" . $class;
if ( is_null ( $options ) )
{
return new $classname ();
}
else
{
return new $classname ( $options );
}
}
}
?>


여기까지가 CodeIgniter 에서 Pear 라이브러리를 사용하기 위해 준비를 한 것이다. 이제 최종 단계가 2단계 남아있는데, 따라하자.

하나는 실제 사용할 PEAR 라이브러리와 PEAR.php 파일의 복사가 필요하다.

PEAR.php 파일은 PEAR 가 설치된 경로에 가면 있으니 application 디렉토리 아래 pear 라는 디렉토리를 만들어 복사하고, 실제 사용할 PEAR 라이브러리는 pear.php 에서 받아서 pear 디렉토리 아래에 넣어두면 된다.

이때 사용할 PEAR 라이브러리의 디렉토리명과 클래스명을 잘 파악해둬야 한다(물론 사용하기 위해 불러들이는 파일 하나만에 대해서다).

내 경우 Spreadsheet_Excel_Writer 라는 클래스를 사용해야 하는데, pearloader.php 에서 클래스를 동적으로 할당할 경우 다음과 같이 넘기면

$this->pearloader->load ( 'Spreadsheet/Excel', 'Writer' );

파일은 제대로 포함하지만 클래스는 할당되지 못한다. 이런 경우를 위해 pearloader 클래스에서 동적 클래스 할당전에 약간의 트릭을 사용해서 동적할당이 가능하게 하였다.

사용할 PEAR 라이브러리를 모두 위치했다면 이제 사용할 차례이다.

PEAR 라이브러리를 사용할 Controller 나 Model 등에서 다음과 같이 사용한다.

$this->load->library ( 'pearloader' );
$http_request = $this->pearloader->load('HTTP','Request');
$http_request->setURL($url);
$http_request->sendRequest();
echo $http_request->getResponseBody();

끝.. 헉헉.. 글 쓰기 힘들다. CodeIgniter 를 제대로 활용하기 위한 것도 꽤 힘들다..

Codeigniter 에서 세션 사용하기

CodeIgniter 에서 제대로 세션이 동작되지 않는 경우가 있다.

난 비록 얼마 사용하지 않았지만.. 이번에 좀 큰 시스템을 개발 중인데 이같은 문제가 발생해 난감해 하던차에 구글을 뒤져 다음과 같은 코드로 바꿔치기 하면 된다는 사실을 알았다.

단 이때 코드는 system/libraries 에 있는 Session.php 를 다른 이름으로 바꾸고 그 다음에 아래 내용을 Session.php 로 저장해서 넣으면 된다.

즐거운 CodeIgniter 생활이 되기를..


<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* Code Igniter
*
* An open source application development framework for PHP 4.3.2 or newer
*
* @package CodeIgniter
* @author Dariusz Debowczyk
* @copyright Copyright (c) 2006, D.Debowczyk
* @license http://www.codeignitor.com/user_guide/license.html
* @link http://www.codeigniter.com
* @since Version 1.0
* @filesource
*/

// ------------------------------------------------------------------------

/**
* Session class using native PHP session features and hardened against session fixation.
*
* @package CodeIgniter
* @subpackage Libraries
* @category Sessions
* @author Dariusz Debowczyk
* @link http://www.codeigniter.com/user_guide/libraries/sessions.html
*/
class CI_Session {

var $flash_key = 'flash'; // prefix for "flash" variables (eg. flash:new:message)

function CI_Session()
{
$this->object =& get_instance();
log_message('debug', "Native_session Class Initialized");
$this->_sess_run();
}

/**
* Regenerates session id
*/
function regenerate_id()
{
// copy old session data, including its id
$old_session_id = session_id();
$old_session_data = $_SESSION;

// regenerate session id and store it
session_regenerate_id();
$new_session_id = session_id();

// switch to the old session and destroy its storage
session_id($old_session_id);
session_destroy();

// switch back to the new session id and send the cookie
session_id($new_session_id);
session_start();

// restore the old session data into the new session
$_SESSION = $old_session_data;

// update the session creation time
$_SESSION['regenerated'] = time();

// session_write_close() patch based on this thread
// http://www.codeigniter.com/forums/viewthread/1624/
// there is a question mark ?? as to side affects

// end the current session and store session data.
session_write_close();
}

/**
* Destroys the session and erases session storage
*/
function destroy()
{
unset($_SESSION);
if ( isset( $_COOKIE[session_name()] ) )
{
setcookie(session_name(), '', time()-42000, '/');
}
session_destroy();
}

/**
* Reads given session attribute value
*/
function userdata($item)
{
if($item == 'session_id'){ //added for backward-compatibility
return session_id();
}else{
return ( ! isset($_SESSION[$item])) ? false : $_SESSION[$item];
}
}

/**
* Sets session attributes to the given values
*/
function set_userdata($newdata = array(), $newval = '')
{
if (is_string($newdata))
{
$newdata = array($newdata => $newval);
}

if (count($newdata) > 0)
{
foreach ($newdata as $key => $val)
{
$_SESSION[$key] = $val;
}
}
}

/**
* Erases given session attributes
*/
function unset_userdata($newdata = array())
{
if (is_string($newdata))
{
$newdata = array($newdata => '');
}

if (count($newdata) > 0)
{
foreach ($newdata as $key => $val)
{
unset($_SESSION[$key]);
}
}
}

/**
* Starts up the session system for current request
*/
function _sess_run()
{
session_start();

$session_id_ttl = $this->object->config->item('sess_expiration');

if (is_numeric($session_id_ttl))
{
if ($session_id_ttl > 0)
{
$this->session_id_ttl = $this->object->config->item('sess_expiration');
}
else
{
$this->session_id_ttl = (60*60*24*365*2);
}
}

// check if session id needs regeneration
if ( $this->_session_id_expired() )
{
// regenerate session id (session data stays the
// same, but old session storage is destroyed)
$this->regenerate_id();
}

// delete old flashdata (from last request)
$this->_flashdata_sweep();

// mark all new flashdata as old (data will be deleted before next request)
$this->_flashdata_mark();
}

/**
* Checks if session has expired
*/
function _session_id_expired()
{
if ( !isset( $_SESSION['regenerated'] ) )
{
$_SESSION['regenerated'] = time();
return false;
}

$expiry_time = time() - $this->session_id_ttl;

if ( $_SESSION['regenerated'] <= $expiry_time )
{
return true;
}

return false;
}

/**
* Sets "flash" data which will be available only in next request (then it will
* be deleted from session). You can use it to implement "Save succeeded" messages
* after redirect.
*/
function set_flashdata($key, $value)
{
$flash_key = $this->flash_key.':new:'.$key;
$this->set_userdata($flash_key, $value);
}

/**
* Keeps existing "flash" data available to next request.
*/
function keep_flashdata($key)
{
$old_flash_key = $this->flash_key.':old:'.$key;
$value = $this->userdata($old_flash_key);

$new_flash_key = $this->flash_key.':new:'.$key;
$this->set_userdata($new_flash_key, $value);
}

/**
* Returns "flash" data for the given key.
*/
function flashdata($key)
{
$flash_key = $this->flash_key.':old:'.$key;
return $this->userdata($flash_key);
}

/**
* PRIVATE: Internal method - marks "flash" session attributes as 'old'
*/
function _flashdata_mark()
{
foreach ($_SESSION as $name => $value)
{
$parts = explode(':new:', $name);
if (is_array($parts) && count($parts) == 2)
{
$new_name = $this->flash_key.':old:'.$parts[1];
$this->set_userdata($new_name, $value);
$this->unset_userdata($name);
}
}
}

/**
* PRIVATE: Internal method - removes "flash" session marked as 'old'
*/
function _flashdata_sweep()
{
foreach ($_SESSION as $name => $value)
{
$parts = explode(':old:', $name);
if (is_array($parts) && count($parts) == 2 && $parts[0] == $this->flash_key)
{
$this->unset_userdata($name);
}
}
}
}
?>

codeigniter library 에서 객체 사용하기

codeigniter 의 library 를 사용자가 임의로 생성할 때 Controller나 Model, View 처럼 모든 상속된 객체를 생성할 순 없게 되어 있다.

따라서 library 에선 다음과 같이 codeigniter 의 모든 객체를 사용할 수 있도록 해주어야 한다.

$obj =& get_instance ();

위와 같이 하면 Controller 나 Model 등에서 다음과 같이 사용하는 것처럼 할 수 있다.

Controller:

$this->session->userdata ( 'id' );

Library:

$obj->session->userdata ( 'id' );

위처럼 사용하면 된다. 다만 library 의 모든 메소드에서 객체를 사용하는 것일 경우 객체의 변수에 담아 다음과 같이 사용할 수 있는 방법도 있겠다.

$this->obj =& get_instance ();

$this->obj->session->userdata ( 'id' );

나머진 취향에^^

codeigniter 에서 Library 폴더를 서브 폴더로 구성해서 사용하기

개인적으로 codeigniter 를 능숙하게 쓰는건 아니지만 조금 큰 규모의 사이트를 제작하다 보니 서브 폴더를 사용해야 했다. 나중에 알고본 사실이지만 다른 문제도 발생했었다^^;
그건 다시 적기로 하고 글을 이어나간다.

controller 에서 library 를 로드할때 다음과 같이 서브 폴더를 포함해 읽어들이도록 하면 에러가 발생한다.

$this->load->library ( 'member/libmember' );

때문에 좀 큰 규모의 설정을 바꿔줘야 한다.

codeigniter 가 설치된 디렉토리에서 다음과 같은 경로를 따라간다.

system/libraries

이 안에 들어가서 Loader.php 를 열고 679 번째 줄을 찾아 다음 내용을 삽입한다.


// Is the class in a sub-folder? If so, parse out the filename and path.
if (strpos($class, '/') === FALSE)
{
$path2 = '';

}
else
{
$x = explode('/', $class);

$class = end($x);

unset($x[count($x)-1]);

$path2 = implode('/', $x).'/';

}


그리고 나서 다음 내용을 아래와 같이 수정한다.

수정전 :

// Is this a class extension request?
if (file_exists(APPPATH.'libraries/'.config_item('subclass_prefix').$class.EXT))
{
if ( ! file_exists(BASEPATH.'libraries/'.ucfirst($class).EXT))
{
log_message('error', "Unable to load the requested class: ".$class);
show_error("Unable to load the requested class: ".$class);
}

include(BASEPATH.'libraries/'.ucfirst($class).EXT);
include(APPPATH.'libraries/'.config_item('subclass_prefix').$class.EXT);

return $this->_ci_init_class($class, config_item('subclass_prefix'), $params);
}


수정후 :

// Is this a class extension request?
if (file_exists(APPPATH.'libraries/'.$path2.config_item('subclass_prefix').$class.EXT))
{
if ( ! file_exists(BASEPATH.'libraries/'.$path2.ucfirst($class).EXT))
{
log_message('error', "Unable to load the requested class: ".$class);
show_error("Unable to load the requested class: ".$class);
}

include(BASEPATH.'libraries/'.$path2.ucfirst($class).EXT);
include(APPPATH.'libraries/'.$path2.config_item('subclass_prefix').$class.EXT);

return $this->_ci_init_class($class, config_item('subclass_prefix'), $params);
}


그리고 다음 줄을 찾아서 수정후로 바꿔준다.

수정전 :

$fp = $path.'libraries/'.$class.EXT;

수정후 :

$fp = $path.'libraries/'.$path2.$class.EXT;

이렇게 해주면 다음과 같이 가능하다.

libraries/member/libmember.php 파일이 있다면

라이브러리 로드시에 다음과 같이 사용해도 에러가 나지 않는다.

$this->load->library ( 'member/libmember' );

만약 위처럼 수정하지 않는다면 라이브러리는 서브폴더를 사용하지 못하게 된다.

목요일, 8월 9, 2007

본사 복귀를 결정했다.

이유가 어찌됐든 난 협박에 놀아난 꼴이고 그들의 손아귀에서 그들이 되길 원하는 시나리오에 말려들었다.

후훗 이럴줄 알았으면 차라리 3월에 때려칠껄 그랬다.

그땐 기회라도 있었는데, 모든지 때라는게 있는 모양이다.

그 때 라는 것을 놓쳐버리면 안된다.


1. 회사에 끌려다니는 모습을 보이지 말라
2. 때를 놓치지 말고 해라
3. 고민은 많이하고 깊이 하는 것은 중요한데 선택은 빨리할수록 좋다. 그만큼 기회가 많으니까
4. 결정은 내 몫이고 바보같이 행동하지 마라.
5. 남에게 나를 공격할 기회를 주지 마라. 사람은 기회가 있을 때 공격한다.
6. 상사가 배신감을 느끼지 않도록 해라

수요일, 8월 8, 2007

뭐 이런 뭐 같은 경우가 다 있지..

오늘 그동안 미루고 미루어졌던 상여금이 지급되었는데 분명 월급 명세서엔 다 찍혀 있으면서 왜 반만 주냐고 -_-
윗선의 지시라고 하더라도, 대기발령도 극도로 억울해죽겠는데 장난하는 것도 아니고 낼 전화오면 한판 해야겠다.

그리고 바로 사표쓰고 나오는게 낫지. 지금 나보고 일할 기회를 줄테니까 꿇리고 들어오란 소리 밖에 안되잖나..
허허 이것참..

죄명 : 성희롱

법이란 이름의 심판대는 정말 무섭다.

근데 성희롱이란 죄는 왜 그리도 무서운건지... 난 죄를 짓지 않았다. 그러나 내가 죄짓지 않았다고 누가 믿어주겠는가.
아마 소수 일것이다. 나를 아는 사람들은 절대 그렇게 보지 않지만 세상은 날 그렇게 본다.

그게 죄라는 이름의 악명이 아닐까..

화요일, 8월 7, 2007

회사에서 아주 불미스런 일로 대기발령된지 벌써 한 주가 지나갔다.
잠시 동안 개인적으로 끄적여 볼 게시판 같은 녀석이 필요했기에 freshmeat 을 대충 뒤졌다.

뭐라고 난 말해야 하는 걸까..

그렇게 했던게 내 죄가 아니라고..? 뭐 이렇게 말한다 한들 무슨 소용이 있겠는가 싶지만 서도
글쎄.. 이것도 직장생활에서 숨은 비화가 아닐까..

오늘은 설치만 하고 잔다는게 마저 끄적거리고 간다..

낼 오라니.. ㅋㅋ

2007/01/11

박정희 vs 노무현

참 정치사에서 제목만큼의 이야기는 결정적으로 노무현 현 대통령을 위태롭게 만든다. 이른바 새마을 운동과 경부고속도로 등의 국가 경제에 이바지를 한국이 가난하던 1970년대에 휘잡았으니 중산층과 부자들은 그 시절이 무척 그리울 것이다.
 
그렇다고 서민이라고 말할 수 있는 층역시 그에 대한 향수가 없다고 말할 수 있겠는가.
 
하지만 사람도 변하고 시간도 변한다. 곧 1970년대는 경제를 발전시키는 것이 무척 중요했던 시대였지만 IT 로 대변되는 2000년대는 제대로된 국가의 기틀을 바로 잡는데 그 이유가 있다고 하겠다. 그 뿐만 아니라 2000년 이전에 다루지 못했던 중요한 문제들 (용산 기지 이전, 핵폐기물 장소 선정, 국가기관사이의 부정부패, 전작권 환수 등)의 해결도 2000년도에 끝내야 할 문제이다.
 
사람들은 지금이 먹고 살고 힘들다고 하지만 실제로는 박정희 전 대통령이 집권했던 시절이 다시 오길 바라는 것은 아닌가? 수많은 죄없는 사람들이 삼청교육대에 가서 몽둥이로 두들겨 맞고 죽고... 대통령 각하라고 말하지 않으면 경찰에 끌려가 물고문을 당하는 그 시절 말이다.
 
모든 것을 잘하는 대통령은 많지 않다. 다만 과거의 박정희 대통령은 나라의 중요 목표가 경제라고 생각했던 것이고 노무현 대통령은 국가 기틀을 다지는데 목표가 있다고 본 것이다.
 
난 노무현 대통령을 지지한다. 그야 말로 한국에서 가장 청렴한 대통령 중 하나로 기록될테니 말이다. 노무현 대통령 화이팅^^