2012/06/26
침체기를 이해하고 상황을 보는 새로운 시각을 얻기
2010/09/17
2010년의 나에게
안녕하세요?
2010 년 무렵의 자신을 그립게 생각해냅니다.
나는 85 세에, 즉 서기 2067 년에 모두에게 지켜 보면서 인생을 마감합니다.
괴로운 일도 있었지만, 매우 멋진 인생이었다고 생각합니다.
하나만 과거의 자신에게, 즉 지금의 당신에게 전해두고 싶은 일이 있습니다.
그것은 2013 년 가을의 사건.
나는 뉴욕에 여행을 갈 수 있습니다.
그 일이 후의 인생을 크게 좌우하게됩니다.
있으면 기억하십시오.
마지막으로 한마디.
85 년간 살아보고 생각한 것은,
"잊고 싶은 추억만큼 소중한 추억이야"라는 것.
그러면, 또 언젠가.
앞으로의 인생도 챌린지를 두려워하지 않고.
Lee Sang Ho보다 2067 년의 천국에서
2010/09/06
기자가 관심이 없는건지, 전 중수부장 나으리께서 국어를 모르시는 건지..
대검 전 중수부장 이인규 변호사의 항변..
"그는 또 박 전 회장의 돈 흐름에 대한 질문에 "지금 야당에서 활발하게 활동하는 정치인도 최소한 1만달러를 박 전 회장한테 받았다고 내가 개런티(보증)할 수 있다"라고도 폭로했다."
개런티는 사전적 뜻으로 출연료를 말하는데..
개런티가 아니라 워런티(보증)으로 써야 한다.
기자가 정신이 없던걸까 아니면 전 중수부장 나으리께서 국어에ㅔ 관심이 없으신걸까. 그런데 영어로 써도 안 헷갈리겠다 ㅋ.
2010/09/03
다시 안 볼줄 알았던 PHP..
그러던 PHP를 저도 배웠었고 그 당시엔 훌륭하다 라는 말 밖에 못했었지요. 2002년 까지만 하더라도 어떤 종류라도 프로그램을 만들지 못하던 제가 PHP로 말미암아 본격적은 아닐지라도 프로그램을 만들 수 있게 되었던 고마운 언어였습니다.
그리고 시간이 좀 흘러서 2004년 저는 파이썬을 알게 되면서 6년이 지난 지금까지도 파이썬에 매달려고 살고 있습니다만, 그 당시 같은 이유로 PHP를 버리게 되었습니다. 사실 PHP가 너무 싫은 건 아니었습니다. PHP 레파지토리라 할 수 있는 Pear나 많은 사람들이 만들고 공개하고 또 판매한 솔루션이 많았으니까요.
그런데 등을 돌리게 된건 PHP가 함수 기반 언어이고 파이썬이 객체 기반 언어였다는 것이었습니다. 요즘 나날이 객체의 특성을 더해가는 PHP를 보면서 파이썬은 저런 부분은 아직인데.. 라는 생각 많이 합니다. 어쩌면 부럽지만요.
파이썬은 저한테 프로그램은 이렇게 만드는 것이구나를 알게 해준 언어였습니다. 코드를 프린트해서 보는 것만 아니라면 훌륭한 언어였지요. 단 몇줄만으로 제가 원하는 일을 할 수 있었으니까요..
그래서 PHP를 접었습니다. 관심있어 사둔 PHP책은 아무의미 없이 되어버렸지요. 원서를 비롯해서 제법 책이 있는데..
PHP에 대한 제 개인적 사과라고 해야 하나요? 요즘은 Oreilly의 Programming PHP라는 책을 보고 있습니다. php 창시자인 Rasmus Lerdorf 가 직접 저술한 책인데, PHP로 먹고 살고 있을 땐 내가 참 못했구나. 우물안 개구리였구나 생각하게 해주는 책입니다.
정말 더한 사과의 의미라고 하긴 어렵지만 잠시나마 PHP가 불편한 언어라고 생각했던 것에 대해 PHP와 제 자신에게 사과합니다.
감사합니다. PHP
2010/07/30
타블로 학력논란, 가족으로 비난의 화살 돌리나.
2010/07/29
국립국어연구원에서 표준어로 제정한 누리꾼을 번역하면..
투표 결과를 받은 누리꾼을 순 우리말로 선정했다.
누리꾼은 네티즌을 나타내기엔 다소 부적합 한데 그 이유는 다음과 같다.
누리꾼이 다음을 뜻하기 때문이다.
세 계를 뜻하는 '누리'에 사람을 나타내는 '꾼'을 보탠 말
이렇다면 세계인(외국인)은 모두 누리꾼이란 말인가? 확대해석하면 누리꾼은 인터넷을 하지 않는 외국인도 누리꾼이라는 거다.
한마디로 국어의 잘못인거다.
그래서 한번은 국립국어연구원에 누리꾼이란 단어는 재선정해야 한다 했더니 깊은 관심 가져 주셔서 감사하고 다시 바꿀수 없다 한다.
정말 이대로 네티즌이 나타내는 고유한 뜻이 누리꾼이라는 이상한 순 우리말에 끼워 맞춤 당하는 것은 아닐까 고민해야 하지 않을까?
2009/04/07
수취인불명 - 프리스타일
오 잘 지내니 나는 요즘 그냥 그렇게 살어
예전보다 살만한데 맘은 그렇지 않아
안본지 오래됐어 요즘에 너는 어때
나 같은거 이제는 별로 관심 없겠지만
그건 좀 어때 예전에 달고 살던 기침은
약 좀 잘 챙겨먹어 고집 부리지 말고
감기라도 걸리면 넌 무척 오래 가잖아
따뜻하게 좀 입고다녀 멋 부리지 말고
요즘 들어서 친구들이 내게 자꾸 말해
사랑은 다른 사랑으로 잊어 버리라고
안쓰러운 눈빛으로 나를 보며 말해
머리가 멍해지고 말라가는 병에 걸렸다고
길을 걷다 멈춰서 한숨만 쉴거라고
이름을 불러도 잘 듣지 못할거라고
눈만 뜨고 있지 사는게 아니라고
당분간 그 심장은 잠시 멈출 거라고
왜 이런거죠 내가 왜 이런거죠
아무렇지 않은데 왜 내가 힘들까요
내가 아픈가요 많이 아픈가요
난 아무렇지 않죠 정말 아무렇지 않죠 모든게
그래 니가 오늘하루 아무런 일도 없듯
나 역시 오늘 하루도 보통으로 살어
그런데 사람들이 나를 보며 말해
그러다 죽겠다고 이젠 좀 잊으라고
내색조차 않하려고 정말 애쓰는데
결국 아무리 숨겨봐도 나는 역시 안되
그렇지 내가 하는 일이 다 그렇지 뭐
사랑하는 사람조차 볼수 없으니까
오랜만에 니 생각나 편지한통 썼는데
그런데 마땅하게 어디로 보낼 곳이 없어
사실은 나 미치도록 니가 보고 싶고
많이 아파 너무도 힘들다고 말하려고 했어
내가 지금 뭘 어찌해야 할지 어떻게 시작할지
너에게 물어보려 해어
정말 뭐가 뭔지 대체 정말 뭐가 뭔지
나는 어떻게 너 없인 아무것도 못해
왜 이런거죠 내가 왜 이런거죠
아무렇지 않은데 왜 내가 힘들까요
내가 아픈가요 많이 아픈가요
난 아무렇지 않죠 정말 아무렇지 않죠 모든게
왜 이렇게 살아가는지 이렇게 힘든지
왜 이렇게 된거죠
아무 일도 없던 것 처럼 난 웃고 지내요
정말 아무렇지도 않게
근데 왜 이런거죠 내가 왜 이럴까요
아무렇지 않은데 왜 내가 힘들까요
내가 아픈가요 많이 아픈가요
난 아무렇지 않죠 정말 아무렇지 않죠 모든게
근데 왜 자꾸만
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
지금이 "성공시대" 의 시대로 보이는지?
근데 재미있다. 전국 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개를 찾을 수 있을까..?
2007/10/26
뻔뻔한 발언
"3명 있었다. 원래 여종업원이 없는 술집이었다. 그런데 (누군가) 전화로 (여종업원을) 부르는 것 같았다."
-> 원래 없었다면 불렀어도 나왔어야 하는 법. 정치인이 그런 얘기로 시끄러울게 뻔한데 이런걸 답변이라고 하는지?
- 술값은 누가 계산했나.
"내가 계산을 하려고 카드를 꺼내니까 피감기관 쪽에서 '20만원도 안되는데 그걸 뭘 내시냐'면서 계산하더라. 근데 무슨 몇 천만원 (접대를 받았다고 기사가 나오)이냐."
-> 애시당초 술자리에 간 것이 잘못이다. 만약 의원님께서 지불하셨어도 이런 얘기는 나온다. 정치인은 더치페이 말곤 어떠한 상황에서도 말은 벌어진다.
- 술 자리는 몇시에 파했나?
"밤 10시 이전에 파했다. 그 뒤에 피감기관들이 자기들끼리 술을 마신 건지 어쩐 건지는 모르겠다."
-> 당연히 모르겠지!
- 식사자리에는 국감에 출석한 여야 의원들이 다 있었나?
"그렇다."(그러나 신당과 한나라당 일부 의원은 식사 자리에는 참석하지 않았다고 주장했다-편집자주)
-> 여권은 어느당이 있나? 식사자리에 있었던 모든 의원의 이름을 대는게 맞는 법.
- 한나라당에서 그날 국감에 불참한 의원은 누군가?
"강재섭·박형준·박성범·신상진 의원은 안왔다."(그러나 임 의원의 발언과 달리 박성범, 신상진 의원은 국감에는 출석했으나 식사자리에는 불참한 것으로 알려졌다-편집자주)
-> 자기 당의 의원님들이 누가 있는지도 몰라. 의원님 정치인이십니까?
- 보도에 대한 대처는 어떻게 할 건가?
"(상임위에) 올라가서 대책회의를 해봐야겠다."
-> 틀린말 한 것도 아닌데 열받을 필요있나?
- 당시 묵었던 호텔 이름은 무엇인가.
"○○○이다."
-> 정치인 돈 많네. 호텔도 가고 나 같으면 가장 싼 여관 간다.
- 식사자리에서 밥값은 누가 냈는지 아나?
"밥값 누가 냈는지 누가 아나. 국회서 냈는지 누가 냈는지…(모른다)"
-> 자신의 행동에 정당한 정치인이라면 자신의 밥값 정도는 자기가 내야 하는거 아닌가?
- 보좌관들 끼리 따로 술자리가 있었던 건 아닌가?
"그것까지 내가 어떻게 아나?"
-> 제 집 식구들(보좌관들)이 말 안해주면 이미 의원님에 대한 실망이 있는 것 아닌가?
-->
어느 당의 정치인께서 신문에 답해주신 질답을 내 생각대로 정리했다.
2007/10/25
2007/10/03
노무현씨 집이 어쨌다는 것이냐..
2007/09/19
허허 선배의 이야기를 전한 것 뿐이라..
2007/08/31
여우비 - 임창정
맑은 봄날 여우비 같은 그녀 이해가 안가 내겐 잘해 준 적도 한번 없는 너였잖아. 왜 맨날 넌 시간이 없어 날 볼 때 또 딴 짓이니 널 원했던 건 맞아 나지만 그 댓가가 너무 커. 내 모양이 싫은 건지 가진게 없어 지쳤니 아냐 나도 싫어 너 같은 애 사실 이런 말하고 싶은데
(니가 반한 멋진 차 니가 반한 멋진 옷 니가 반한 그 무엇도 나는 없지만 지금은 그저 멋진놈 지금은 그저 미래만으로 모두 다 이겨 나갈 수 있어)
왜 맨날 넌 시간이 없어 날 볼 때 또 딴 짓이니 널 원했던 건 맞아 나지만 그 댓가가 너무 커. 내 모양이 싫은 건지 가진게 없어 지쳤니 아냐 나도 싫어 너 같은 애 사실 이런 말 하고 싶은데
슬레이어즈 Try Opening
You're Under Arrest 2기 Opening Theme
You're Under Arrest Ending Theme
2007/08/26
연예인들의 학력위조 혐의..
최근에 연예인들에 대한 학력 위조가 문화, 방송계에 커다란 바람을 불고 왔다. 많은 연예인들이 그런 분류에 속한다.
신정아, 김옥랑, 장미희, 심형래, 이창하, 최수종, 안재모, 오승현, 윤석화, 강석, 주영훈, 이지영 등 대중에게 많이 알려진 인물이 꽤 많다.
한가지 재미있는 것은 이번에 사람들이 떠들고 다니는 "인터넷에 너무 무관심했다", "그럴 의도는 없었다" 이런 이야기들 중 인터넷에 너무 무관심했에만 잠시 이야기 해볼까 한다.
연예인들이 그럴 의도가 있었든 없었든 그건 그네들만의 사정이고, 인터넷에 너무 무관심했다는 사실 거의 맞다. 심지어 내가 좋아하는 이모양 가수도 컴퓨터과 인터넷을 그렇게 잘알지 못한다(이건 실제로 만나서 본인에게 들었던..)
물론 가수나 연기자들은 그들만의 분야가 있으니 쓸때없이 인터넷에 소비하는 시간이 많은 사람들이나 전문가가 아닌 이상에서야 인터넷은 쉽게 다가설 수 없는 성역이다.
그런면에서 성역의 지킴이들이라 할 수 있는 인터넷 매니아나 포털 등은 정확한 정보의 양산과 배포를 해야만 한다.
이번 사건들에서 공통적으로 볼 수 있는 부분이 고의 여부를 떠나 포털 등이 대충 주서들은 말로 연예인들에 대한 학력을 게재해 놓는 것이다.
물론 연예인들이 잘했다는 건 절대 아니다. 하지만 성역 지킴이인 포털등은 사실 확인에 나서지 않아 수 많은 연예인들이 먼저 아니다 라고 말하게 하는게 좋은 것인가?
틀림없이 틀린 사실이다. 포털도 연예인들 학력에 대한 확실한 확인 후 올려야 하는 것이다. 일례로 최수종의 경우 소속사에도 잘못된 사실이 적혀 있었으니 포털만의 잘못이라고 할 수 없으나 오승현의 경우엔 그렇지 않았다.
일례로 A 포털은 오승현에 대해 단국대 입학까지만 적혀 있고, B 포털은 단국대 학사라고 되어 있던걸 확인해볼 수 있었다.
이런 상황에도 불구하고 여전히 연예인들에 대한 비난과 욕만 쏟아지고 실제 제대로된 학력을 넣지 않은 포털들은 아무런 욕도 먹고 있지 않다.
이런 문제들이 꼭 포털의 문제라고 보기도 어렵다. 인터넷은 참여로 이루어지는 바다이기 때문이다. 참여하지 않는다면 잘못된 사실은 고쳐질 수 없다.
그러나 포털도 반성해야 하지 않나 싶다. 정보를 제공한다는 이유 하나만으로 욕 먹지 아니하는 것은 웃기지 아니한가.
갈수록 온라인 상에서의 폭력이 정도를 넘어서고 있다. 제대로 된 의식 전환이 필요하다
2007/08/23
CodeIgniter 에서 객체를 수동으로 생성해서 사용하기
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 );
}
}
?>
2007/08/22
추억이란 상당히 재미있는 존재인듯..
삶에서 남는것은...?
2007/08/21
국정실패라..
그는 이어 "정 전 의장이야말로 열린우리당 창당공신이고 당 의장을 2번씩이나 지낸 국정실패의 주역으로 노무현 정권과 운명을 같이 해야 할 정치인인데도 노 대통령을 비난하고 탈당한 기회주의자"라며 "이번 대선에 출전할 명분과 자격이 없는 정치인이라는 지적이 여권 내부에서 있었다"고 비판 수위를 높였다.
2007/08/15
Windows Vista 에서 OpenVPN 으로 VPN 접속시 라우팅 문제
해결방법은 VPN 키가 있는 곳에 확장자가 ovpn 인 파일을 열어 맨 끝에 다음 2 줄을 추가해줍니다.
route-method exe
route-delay 2
그리고 접속하면 깨끗이 접속되는 걸 확인할 수 있습니다.
OpenVPN 을 사용하지 않아도 Windows Vista 사용자들은 꼭 확인해주시기 바랍니다.
세상에서 필요로 하는 것..
쳐도 소리가 나지 않는 것은 세상에서 버린 종이다.
또 거울이란 비추면 그림자가 나타난다. 비추어도 그림자가
나타나지 않는 것은 세상에서 내다버린 거울이다.
보통 사람이란 사랑하면 따라온다.
사랑해도 따라오지 않는 사람은 또한 세상에서 버린 사람이다.
-한용운-
지금하십시오
오늘 하늘은 맑지만
내일은 구름이 보일런지 모릅니다.
어제는 이미 당신의 것이 아니니
지금 하십시오.
친절한 말 한마디 생각나거든
지금 말하십시오.
내일은 당신의 것이 안될지도 모릅니다.
사랑하는 사람은 언제나 곁에 있지는 않습니다.
사랑의 말이 있다면 지금 하십시오.
미소를 짓고 싶거든 지금 웃어주십시오.
당신의 친구가 떠나기 전에
장미는 피고 가슴이 설레일 때
지금 당신의 미소를 주십시오.
불려야 할 노래가 있다면 지금 부르십시오.
당신의 해가 저물면 노래부르기엔
너무나 늦습니다.
당신의 노래를 지금 부르십시오.
--
놀부에서 제작해서 배부하는 글입니다.
2007/08/14
CodeIgniter 에서 PEAR 라이브러리 사용하기
이 글은 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 에서 세션 사용하기
난 비록 얼마 사용하지 않았지만.. 이번에 좀 큰 시스템을 개발 중인데 이같은 문제가 발생해 난감해 하던차에 구글을 뒤져 다음과 같은 코드로 바꿔치기 하면 된다는 사실을 알았다.
단 이때 코드는 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 에서 객체 사용하기
따라서 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 폴더를 서브 폴더로 구성해서 사용하기
그건 다시 적기로 하고 글을 이어나간다.
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 노무현
2006/12/29
국회의원들은 자기네 한마디가 얼마만큼 국민에 영향을 주는지 모르는가 보지?
대통령은 씹으면서 자신들은 못씹는 국회의원. 특히 한나라당 한심하다 한심해.. 어떻게 인간들이 저렇게 양면의 얼굴을 뒤집어 썼냐 그래..
2006/12/27
국회의원의 법안처리가 법정기한에 늦을 경우에 대비한 법 발의합시다
2006/12/25
역시 왜곡 편파보도는 별로 맘에 안들어..
2006년도 이제 얼마 남지 않았다. 곳곳에서 한 해를 정리하는 움직임이 분주한 가운데 민언련 신문모니터위원회는 '2006년 나쁜보도 10선'을 선정했다.
먼저 하반기에 벌어진 북 핵실험에 대한 일부 신문들의 보도는 '핵공포' '한국판 9·11' '핵폭풍'이라는 자극적이고 선정적인 용어사용으로 국민들의 불안감을 한껏 자극했다. 또 미국의 강경 일변도의 대북 압박정책에 대한 문제점은 비판하지 않은 채 '포용정책 흔들기' 등 대화보다는 '물리적' 해결책만을 강조하기도 했다.
두 번째로는 올해 내내 논란을 일으켰던 한미FTA 협상 관련 보도이다. 협상이 시작되기도 전에 4대 선결조건에 합의하는 등 졸속·밀실협상이라는 비판을 받아왔던 한미FTA 협상에 대해 일부 언론들은 정부의 '장밋빛 미래'만을 무비판적으로 전달하고 반FTA 진영을 '반미론자' '친북세력' 등으로 낙인찍었다. 그러면서 실익이 분명하지 않은 한미FTA 체결을 맹목적으로 주장해 문제로 지적됐다.
지난 7월 서래마을 프랑스인 집 냉동실에서 영아 시체 2구가 발견되는 충격적인 사건이 있었다.
범인은 친엄마로 밝혀졌지만 그 과정에서 언론들의 무차별적인 추측성 보도와 인권침해는 도를 넘었다는 평가다.
월드컵 관련 보도도 빼놓을 수 없다. 월드컵 기간 중 방송은 그야말로 '올인'이라는 비난을 줄기차게 받았다. 이런 비난에서 신문은 한 발 비켜나 있었지만 '과잉보도'라는 비판에서 자유롭지는 못했다.
신문모니터위원회가 월드컵이 한창인 6월12일∼15일까지 5개 주요 중앙일간지의 월드컵 관련 보도량을 분석한 결과 조선 동아일보는 전체기사의 30% 이상이 월드컵 보도로 채워졌고, 중앙일보는 무려 41.78%에 달했다. 특히 중앙일보는 1면에서의 월드컵 보도 비율도 75.16%에 달했다.
신문들의 월드컵 관련 보도는 한국과 토고의 경기 다음 날인 14일자에서 절정을 이루었다.
이날 중앙일보는 월드컵 관련 보도 비율이 60.93%에 이르렀다. 또 경향신문, 동아일보, 중앙일보는 1면의 월드컵 관련 보도 비율이 100%로 1면의 모든 기사가 월드컵 기사였다.
월드컵이 전 국민적 관심사이긴 하지만 신문들이 월드컵 보도에 빠져있는 사이 우리 경제와 사회 전반에 막대한 영향을 미칠 한미FTA 1차 본협상이 미국에서 마무리됐고, '6·15 공동선언 발표 6돌 기념 민족통일 대축전'이 광주에서 열리기도 했다. 하지만 일부 신문들은 이런 현안마저도 단순 중계하는 데 그치거나 축소보도로 일관했다. 아무리 월드컵과 한국 팀의 경기 결과가 국민적 관심사라 해도 주요 신문들이 월드컵에 빠져 우리 사회 주요 현안을 소홀히 다뤘다는 비판에서 자유로울 수 없다.
이밖에도 박근혜 전 한나라당 대표 피습 보도에서 보인 '침소봉대' '확대과장' '피의자 인권 침해' 사례와 '세금폭탄' 운운하며 '부동산 부자'만을 비호하려는 부동산 관련 보도, 평택 대추리, 전시작전통제권, 포항 건설노조 파업 관련 보도, 일심회 관련 보도도 선정됐다.
올해도 일부 신문들의 왜곡·편파·선정적 보도 행태는 예년에 비해 나아지지 않았다. 언론에 대한 감시의 끈을 놓을 수 없는 이유다.
꾸준한 감시와 비판은 '사회적 공기'를 올바른 방향으로 나아갈 수 있게 하는 원동력이다. 더불어 많은 국민들의 지속적인 관심과 적극적 의사표현이 절실한 때이다.
2006/12/23
다시 방황하고 있다..
2006/12/21
어떤 일이든 사명감을 갖지 않으면 하기 힘들지 않을까?
2006/11/23
뭐가 초당적 협력이야?
"초당적 협력을 하겠다" 막상 이렇게 발언해놓고 지킨적이 있던가? 전효숙 헌법 재판관, 헌법소장에 동의도 안하면서, 그녀가 무슨 잘못이 있는가? 한나라당 당헌에는 여자는 헌법재판소장, 헌법재판관 안된다는 당헌이라도 있나 보지?
더 웃긴건 한나라당의 이전 대표는 여자라는 거다. 하긴 여자 대표말도 맨날 씹어대는 한나라당에게 무슨 미래가 있겠는가. ㅋㅋㅋ
주성영 의원도 색맹인가 보지?
근데 가관이다. 그가 이런말을 했단다.
"각종 선거에서 왜 여당은 전패를 거듭하고"
그거야 한나라당이 정당 알바를 만들어서 국민들 인식을 안 좋게 만들었잖나? 이에 대한 증거도 인터넷에서 속속들이 나타나고 있음 불보듯 뻔하다.
사회에서도 빨간불이 있댄다. 정부가 잘해도 정당이 안따라주는데 이는 당연한 결과가 아닌가?
참으로 주의원의 대갈통이 바보가 아닌가 심히 생각해보아야 할일이다. ㅋㅋㅋ
2006/11/22
노대통령 1년간 무보수로 일하라??
이한구 "노대통령 남은 1년 무보수로 일하라"
내용을 보아하니 제집 살림은 감사 안하고 남의 집 살림만 관심있는 모양이다.
국회 정무위원회 소속 한나라당 이한구 의원이 청와대 예산이 많댄다.
그러는 서울시. 이명박 전 시장과 오세훈 현 시장역시 자문기구들을 많이 두지 않았던가? 남의 집 살림 탓하기 전에 제 집 살림부터 단속 좀 하는게 어떨까?
명박이 아저씨의 헛된 망상
이명박 "정권 바뀌면 젊은 부부들에게 집 한채씩 줄 것" 이라는 뉴스가 발표되었다. 뭐 언제나 파격적인 이명박 아저씨지만 이 나라 돈에 토지매입하고 싱가폴 같은 환매분양권 제도라도 시행하겠다는 건가?
그렇게 시도했다간 우리 나라 망할껄. 차라리 국가 사채 쓰지?
경부운하. 말은 좋다. 근데 우리나라, 독일, 중국은 각각 생태환경이 다르다고. 역시 개발자들은 생태 환경에 별 관심이 없는건가?
기사를 보니 무슨수를 써서든 집을 마련한다고 하는데, 무슨 수를 쓸껀지 참 궁금. 이 나라 정권이 명박이 아저씨한테 안 넘어가도 집 한채씩 줄것인가??
그게 한나라당의 약속인지, 아니면 명박이 아저씨의 개인 약속인지, 모든 대권 주자의 약속인지 궁금해진다.
2006/11/21
"386이 한국 정치·경제 망쳤다"?
그런데.. 재밌는건 386 컴퓨터가 어떻게 한국 정치, 경제를 망칠 수 있어? 우리같은 컴퓨터가 직업인 사람들에게 386은 컴퓨터 세대.
정치적으로 286은 뭐했는데?
수구꼴통들의 안맞는 논리
전작권 환수때...
"미국이 이 나라와 손을 잡았기 때문에 절대 동맹을 깨면 안된다"
송민순 외교장관 청문회때...
"송민순은 친미인물이라 안된다"
이상한 논리다. 언제는 미국인사가 필요하며 필요없을땐 버리는게 수구꼴통들의 논리인건가?
2006/11/14
2006/10/29
마티즈. 내 마티즈!!
그런데...
추석을 전후해서 차에 무슨 일이 계속 생긴다 -_-;
처음엔 달아놓은 네비게이션 도난과 외캐치 망가뜨리고 차문 망가뜨리기
이번엔 운전석 문 고장 내기 -_- 아주 돌아버리겠다. 내 차가 무슨 동네 장난감이냐.. 자기들 물건 귀한 줄 알면 남의 물건 귀한 줄 알아야지!
운전석 문이 안 열려서 수리가 될런지 모르겠지만 여하튼 짜증만 고스란히.. -_-
내가 자라고 있는 동안의 시간. 82년부터 현재까지 비교적 가정 교육을 잘 받았다고 생각하는데 요즘애들은 그것도 아닌가 보다. 지난번 얼핏 봤는데 글쎄 초등학생들이 담배나 꼴아피구 -_- 도대체 이 자식들의 부모는 무슨 생각으로 살고 있는 걸까 이런 강한 의구심이 든다.
조금씩 삶에 지쳐가는데 이처럼 남의 물건을 훔치거나 고장내내니 대한민국의 앞날은 보이지 않는다.
무릇 윤리와 도덕은 한국사회에서 너무나도 중요한 것이다(아마 단군시대도 마찬가지일꺼다).
그럼에도 불구하고 이같이 어른아이를 막론하고 타인의 가슴에 못을 박는다면 대한민국을 뜨는 수 밖에 없다.
아니 그러한가?
2006/10/27
구글보다 못한 국내 검색엔진들 성능
오늘 거주자 우선 주차 구역을 신청하려고 동사무소 전화번호를 파란(http://www.paran.com)과 야후(http://www.yahoo.co.kr) 에서 "풍납 2 동사무소" 또는 그 유사어를 검색해서 동사무소 전화번호와 홈페이지를 찾아봤다.
아니 그런데 이게 왠일인가! 아무것도 안 나온다. 게다가 왠 관련없는 세무사 사무실 전화번호만?
게다가 파란이란 KT 자회사를 표방하는 전화번호 안내해주는 사이트가 공공기관 전화번호도 알려주지 못한다면 이 얼마나 성능낮고 쓸모없는 검색엔진이란 말인가? 입가에서 웃음만 흘리고 있는 나를 보면서 구글을 찾았다(http://www.google.co.kr) 역시 구글이 나를 실망시키지 않았다.
2번의 검색만으로 풍납2동 사무소 홈페이지 주소 뿐 아니라 전화번호가 포함되어 있는 링크도 볼 수 있었다.
국내 검색엔진. 이러고도 한국을 넘어선 검색엔진이라고 자부할 수 있냐? 니들도 똑같아 네이버는 다를꺼 같지? 절대 아닐껄~
2006/10/16
가슴은 소리치는데..
당신이란 이름이 있어서 하루 한가닥은 잡고 사나봐
그런데, 이건 아니야.. 내가 원하던 삶도 바라던 삶이 아니라구
소리쳐! 니가 지닌 모습.
나를 찾으라구..
2006/10/12
2006/10/10
역시 문서쓰기가 힘들어..
지금도 쓰면 빨리쓸 수 있을걸 늦장 부리며 쓰고 있다는 게 몸으로 체감합니다.
에효.. 어서 집에 가고프라..
2006/02/25
유난히 피곤하네요..
사귀어 본 사람도 없어서 여태 이성의 채취라는게 고작 여성에게서 흘러나오는 향수 냄새 정도라고 해야 되네요.
벌써 주말입니다. 날도 어두 컴컴한데 일찍 씻고 자고... 아 그런게 좋지 않을까 하는...
2006/02/13
놓쳤다.. 지금이다 싶었는데..
그게 아니었나 봅니다.
몸이 피곤하고 한 구석이 아련히 아파오네요...
당분간은 두문불출...
저 있잖아요. 조금 힘들 것 같은데 이겨내게 도움 주세요.
거부하면 또 할말이 없지만. 이 기사를 보는 모든 분들에게
부탁해요.
그리고 새로운 사랑을 찾도록요.^^
2006/02/09
끈.. 놓을래.. 잡을래..
지금 글을 쓰고 있는 이 시점이 바로 내가 꿈속에서 살고 있는 느낌이 들때입니다.
어떤 끈이 되서든.. 끈이 끊어지려고 하는데.. 그 끈..
잡아야 하는지.. 놓아야 하는지..
알 수 없을때... 어떤 선택을 하시게 되나요?
저는 지금까지 끈을 놓아왔습니다... 바보같나요?
바보라고 말해도 할말 없습니다.
왜.. 바보같이.. 이런것일까...
2006/02/08
비뚤어진 학업 열풍
지금 인터넷에서 뉴스 하나를 보니 초등생 하나가 과도한 학원 수업으로 인해 자살을 했다고 한다. 어린 나이에 얼마나 스트레스가 심했었을까?
우리나라 부모들은 그릇된 학구열로 본인들이 이루지 못한 것을 이루어내게 하려 아이들에게 과도한 학업을 하게 만든다. 이렇게 자식들이 죽는 꼴을 보게 하는게 부모로서 할 짓인가?
대한민국 부모들이여. 자식은 가르칠땐 가르치고 학원에 보내야 할땐 보내야 하겠지만, 본인이 원하지 않으면 그렇게 하지 마라.
관련 URL : http://kr.news.yahoo.com/bestclick/shellview.html?articleid=2006020809251292301&date=20060208&rank=27
2006/02/07
정권 흔들기에 대한 이야기
----
평소 정치에 큰 관심이 없던 아내가 얼마 전에 신문을 보다가 한마디했다.
“노무현 대통령이 개인적인 비리는 별로 없나 봐요. 언론이 3년 전에 사돈이 차 사고 낸 것을 청와대와 엮으려고 하는 것을 보니...”
대통령의 사돈이 된다고 해서 갑자기 완벽한 자동차 운전능력이 생기는 것은 아닐 터이니, 사고 자체는 무슨 비리가 되겠는가? 하지만 언론은 사고처리에 이미 합의했던 상대 피해자의 이후 발언에 의존해서 의혹을 부풀렸다. 청와대가 무마를 위해서 은폐에 나섰다는 것인데, 또 지겨운 “아니면 말고” 식의 결론으로 밝혀지더라도 놀랍지는 않을 것이다.
어제오늘의 일도 아니고, 행담도 사건을 비롯해서 대통령 측근을 대상으로 한 성과 없었던 ‘특검’에서 낭비된 막대한 국민의 혈세가 아까울 뿐이다.
조선과 동아 등의 거대 언론이 객관적 관점으로 국민의 눈과 입이 되기를 기대하는 마음을 접은 지는 오래 전의 일이지만, 자신들의 정치적 입장과 이해관계에 입각해서 치졸하게 특정인에게 광기에 가까운 집착적 증오를 발산하는 모습에서 역겨운 안타까움이 느껴지는 것은 어쩔 수가 없다.
그들의 살생부 꼭대기에 있었던 노무현 대통령에 이어서 요즘은 유시민 의원이 그 자리를 차지한 듯 하다.
어제 역겨움을 참으며 찾아간 조선 닷컴 메인에는 <유시민, 국민연금 이어 적십자회비도 2003년 미납> , <유시민의원, 이러고도 복지부장관 하겠다고?>라는 선동성 카피가 화려하게 자리잡고 있었다. 이어서 바로 아래로는 <장관 유시민 “너나 잘하세요?"란 말에 대답할 수 있나>라는 비난성 기사가 연타를 날리고 있었다.
다른 청문회 대상자들에 관한 기사는 찾아보기도 힘들고, 오로지 유시민 보건복지부 장관 내정자에게 집중포화를 퍼붓고 있었다.
솔직히 고백하건대, 필자는 오늘에서야 적십자회비 납부 방법에 대해서 알아보았다. 의무납부는 아니었지만 제대로 납부하지 못한 것을 스스로 반성하면서 필자에게 제대로 납부 지로를 보내지 않은 대한 적십자사에도 항의를 해야겠다는 생각이다.
필자는 나름대로 어려운 이웃에게 꾸준히 기부와 봉사를 해왔음에도 불구하고 필자가 ‘적십자비 미납’이라는 공직자가 될 수도 없는 정도의 천인공노할 죄를 여러 차례 저지르게 만든 필자의 공범자인 ‘대한 적십자사’에게도 책임을 묻지 않을 수 없다.
공직자로서 엄격한 모범을 요구받는 것은 감수해야겠지만, 고작 일년 납부하지 않고 공직에 부적합하다는 거센 비난을 받고 있는 유시민 장관 내정자에게 필자 같은 불량 납부자는 미안한 마음 마저 든다.
아울러 매년 빠지지 않고 적십자회비를 내고 있는 국민이 얼마나 되는 지도 궁금하다. 의무납부는 아니지만 만약 납부하지 않았을 경우에 치명적으로 도덕성에 문제가 발생할 수 있는 ‘적십자회비’라면 많은 국민을 비도덕적인 죄인으로 만들지 말고, 차제에 의무납부로 전환하던지 아니면 확실한 납부 안내 대책을 세워야 할 것이다.
국민연금도 마찬가지다.
물론 공직자로서는 국민연금제라는 정부의 시책에 모범을 보이는 자세가 필요하지만, 본디 국민연금이라는 것이 납부한 것만큼 이후에 받는 것이다. 덜 납부한 것만큼 나중에 덜 받는 것이다.
유시민 내정자가 국회의원이 되기 전에 정식 직장이 없고 비정기적인 강의료와 원고료 등으로 연명하던 시절에 국민연금에 가입하지 않았던 것이 의도적이고 악랄한 비도덕적 행위인가? (그는 2000년 7월 이후에 연금공단에 연락을 받고 연금보험료를 납부해왔다.)
언론과 한나라당은 ‘배우자 부당공제’ 문제도 제기한다. 대부분의 국민은 복잡한 연말정산을 본인이 직접 하지 않는다. 회사와 세무사에 신고 업무를 위탁하는 경우가 대부분이다.
배우자의 비정기적인 수입의 경우에는 납세자의 의사와는 무관하게 세무사가 파악하지 못하고 일반적인 상례에 따라서 배우자공제를 신청하는 경우가 흔히 있다. 그러나 국세청은 배우자의 소득이 밝혀지면 재 신고를 요청하는 것이다. 그것에 성실하게 임하지 않는다면 정말 문제가 있는 것이다.
아울러 언론은 법원에서 무죄를 선고한 20년 전의 ‘서울대 프락치’ 사건까지 후벼파고 있다.
조선일보를 비롯한 거대언론의 살생 대상자인 유시민 의원에 대한 구질구질한 흠집내기에 대해서 지적하다 보니, 구질구질한 옹호처럼 되었다. 물론 공직 행을 예상하고 치밀하게 처신하지 못한 유시민 의원이 잘했다는 것은 아니다. 하지만 사안의 경중을 가리지 않고 중범죄로 몰아 가는 조선일보를 비롯한 거대언론의 작두 칼 위에는 ‘광기의 증오’가 서있다.
문제의 본질은 거대언론과 한나라당이 국회에 ‘인사청문회’를 개최할 권한이 왜 필요한 것인가에 대한 이유와 무관하게 정적에 대한 흠집내기와 정략적 공격의 장으로 ‘인사청문회’를 활용하고 있는 퇴행적인 행태이다. ‘검증’이라는 외피로 스스로의 정략적 본심을 포장한 채로...
국민의 대의기관인 국회는 청문회 대상자의 전문성과 자질에 대해서 국민을 대신해서 ‘검증’하는 것이다. 국민에게 봉사할 수 있는 능력과 자질에 대해서 확인한다는 말에 다름 아니다.
자연인으로서의 삶 전체를 도마에 올려서 트집거리가 될 만한 것은 생선의 내장처럼 모두 끄집어내고 칼질하는 것은 ‘국민에게 봉사할 수 있는 능력과 자질 유무’에 대한 판단을 역겹고 혼란스럽게 할 뿐이다.
‘사학법 개정하면 전교조가 사학을 장악한다’라는 어처구니없는 분열적 피해의식으로 오랜 장외 투쟁을 마치고 국회에 등원한 한나라당이 또 다시 대립과 분열의 정략적 정치를 준비하는 국회의 모습, 공동체의 합법적인 스피커를 통해서 대립과 증오의 정치를 직접 선동하고 있는 거대언론의 모습이 2006년 새해 벽두를 장식하고 있는 것이 안타깝다.
공동체 구성원 모두의 책임의식과 사회적 대타협만이 대한민국이 직면한 난제인 ‘양극화 해소’의 유일한 첩경임을 생각할 때, 갈 길은 너무 멀다.
2006/02/02
인터랙션 디자인(Interaction Design)
처음엔 무척 어이없게 들렸는데, 책 제목도 그랬고...
"정신병원에서 뛰쳐나온 디자인" 이라니..
내 직업이 처음엔 관련없다 싶었습니다. 근데 그게 아니었습니다
전 틀림없이 정신병원에서 뛰쳐나온 디자인을 찾아야 했지요.
지금은 새로운 분야에 눈을 뜨게 되었습니다.
그리고 제가 했던 말까지... 너무 추상적이라 말하긴 좀 그렇지만
재밌는건 "춤추는 곰"이랍니다. 곰이 얼마나 춤을 잘 출까요?
저희 유저가 언제까지 변호자들이 되어야 할지..
인터랙션에 대한 이야기는 밤을 새서 이야기해도 훌륭한 먹이감이
될꺼 같습니다. "난 사용자를 위해 프로그램을 개발한다"
컴퓨터로 쉽게 진법 변환하기
원래 한동안 진법에 대해선 까맣게 잊고 살았는데 갑자기 친구가
물어보는 바람에 다시금 찾아보게 되었습니다.
지금 설명해드리는 내용은 Microsoft Office 중 Excel과 OpenOffice.org Calc 에서만
사용 가능합니다.
Microsoft Office Excel Function
2 진수 Function
BIN2OCT(number) : 2진수를 8진수로 바꾼다.
BIN2HEX(number) : 2진수를 16진수로 바꾼다.
BIN2DEC(number) : 2진수를 10진수로 바꾼다.
10 진수 Function
DEC2BIN(number) : 10진수를 2진수로 바꾼다.
DEC2HEX(number) : 10진수를 16진수로 바꾼다.
8 진수 Function
OCT2HEX(number) : 8진수를 16진수로 바꾼다.
OCT2BIN(number) : 8진수를 2진수로 바꾼다.
16 진수 Function
HEX2DEC(number) : 16진수를 10진수로 바꾼다.
HEX2BIN(number) : 16진수를 2진수로 바꾼다.
HEX2OCT(number) : 16진수를 8진수로 바꾼다.
OpenOffice.org Calc Function
BASE(숫자;기수)
DECIMAL(숫자;기수)
OpenOffice의 경우 기수는 진법을 나타내며 Base에서 받는 숫자는 오로지 10진수를 바꾸는 것입니다.
예를 들어 10진수 14를 2진수로 바꾼다면 다음과 같은 식을 사용합니다.
=base(14;2) // 값 : 1110
위에서 나온 1110 를 다시 8진수 또는 16진수로 바꾸려고 할때는 다음과 같이 사용해야 합니다.
=base(decimal(1110;2);8) // 값 : 8진수 16
=base(decimal(1110;2);16) // 값 : 16진수 E
그럼 유용하게 사용하세요. 업무시간에 남기다 보니 정신없이 정리를 잘 하지도 못했네요.
이젠 이름보다 닉네임이 편하다..
믿고 내 본명을 써왔습니다. 본명이라고 해야 누구나 생각할 수 있는 이름이니까.
그리고 인터넷이 보급되기 시작하면서 닉네임을 쓰기 시작했는데
나도 모르게 나에게 달라붙은 닉네임. 서치
처음엔 멋있게 지어본다고 지은게 search_go. 지금도 이 닉네임은
다음과 야후, 오르지오 등 수 많은 포털에서 아직도 사용하고 있는
아이디가 되버렸습니다.
그 이후에 서치아이(searchi), 서치5(search5), 서치(search)로 바뀌어 버렸습니다. 지금은 닉네임을 혼용해서 쓰는데 search5, search를 주로 사용합니다. 사실 search보다 search5 사용비율이 더 높은 편이죠. 근데 왜 5냐구요?
제 이름을 숫자로 만들면 2 3 5 가 되거든요.^^;; 이름이 이상호니까
숫자로 읽으면 2(이), 3(상), 5(호) 이렇게 되버리더라구요. 결국 말도 안되는 이야기로 끝나겠지만 서치(상호)라는 뜻을 내포한.
항간에는 다섯번 검색이라는 뜻 풀이를 하기도 했답니다.
어찌되었든 지금의 닉네임은 search5, search 지만 이 외의
사용해왔던 아이디는 너무 다양해서..
아마 지금까지 써왔던데.. ks56(한글 표준 ksc5601의 줄임), hosang(상호를 뒤집어 쓴 이름), lsh0987(이상호의 약자와 숫자 0987 합체), i2what(어떤 난데?), pay2i(나는 pay를 2배로 벌고 싶다), search.lee(서치를 이름으로 하고 lee를 성으로 하고 싶은..) 정도입니다. 이외에 기억나는건 search235인데 이건 거의 사용하지 않기 때문에...
뭐 이렇습니다^^
가끔가다 난 정말 대단하단 생각이 들때가 많습니다. 왜 이리 많은 아이디를 생산했을까 하고요^^;
아무튼.. 닉네임.. 이젠 저도 모르게 저한테 달라붙어서 떨어지지 않네요. 서치. 아자아자! 서치씨 가봅시다~
2006/02/01
설이 지나갔다~
이놈의 외가 사촌들은 오빠를 봐도 무관심하고. 애들이 좀 많이 커서
그런가?
하긴 그러고보니 국도타고 내려갈때 까치를 보긴 했습니다. 까치라..
어렸을때부터 만화를 많이 봐온 탓인지 순간적으로 만화 주인공인
설까치가 생각나더군요. 그 모습 무지 귀여웠는데 생각해보니 그때 당시의
설까치 나이는 저보다 더 많이 먹었습니다 -.-(우어 까치형)
설에 이리저리 많이 다녔는데, 첫째 큰집 막내형때문에 성질나서 폭발하는
줄 알았습니다. 그래도 힘내서 포기했습니다. 성질낼 것도 아니라서.(말이야
이렇다지만 실제론 폭발 직전이었습니다
이런 연휴때면 쉬겠다는 생각이 안들고 벌써 1살 더 먹나.. 이런 생각만 드는군요
올해는 어떻게든 군복무 문제를 매듭지어야 하는데 걱정이 태산입니다.
그래도 설이었는데... 한해 멋지게 시작해 봅시다!!
ps.말은 멋들어졌는데 사실 연휴 바로 다음날 침대에서 못 일어나고 뻗어 있었습니다.
PyGTK2 에서 스크롤되는 widget 생성
ScrolledWindow 을 사용해야 합니다.
이때 스크롤될 위젯은 ScrolledWindow 에만 추가되고
다른 컨테이너에 추가 되면 안됩니다.
예를 들어 TreeView 위젯이 스크롤되어야 하고 화면에
VBox 위젯이 있다면 VBox 위젯에 ScrolledWindow 에
pack 되어야 하고 ScrolledWindow 에 TreeView 위젯이
추가되면 됩니다.
물론 이 과정에서 TreeView 위젯과 ScrolledWindow 윈도우는
pack 되거나 add 후 반드시 show 메소드를 호출해야 합니다.
ScrolledWindow 는 무척 영리해서 좌우 스크롤바를 나타낼지
그렇지 않을지에 대해서 자동으로 판단합니다.
따라서 내용이 길어지면 하단 스크롤바가 생기고 아래쪽으로
내용이 길어지면 측면 스크롤바가 생기게 됩니다.
더 자세한 것은
http://www.pygtk.org/pygtk2reference/class-gtkscrolledwindow.html
를 참조하여 주세요.
2006/01/27
TreeView의 CellRendererToggle에서 Toggle 기능 구현
CList와 TreeView를 TreeView 위젯으로 함께 제공하는데 이에
따라서 TreeView에서는 Toggle 위젯을 구현할때
gtk.CellRendererToggle 를 사용하는데
이때 그냥 표시만 하면 Toggle 표시가 안되는데 토글 표시를 하려면
toggled 메소드를 CellRendererToggle에 걸어주고 liststore(또는 treestore)를 추가 인자로 넘겨주고
콜백 메소드에서 self, cell, path, liststore를 인자로 받아서
liststore[path][컬럼번호] = not liststore[path][컬럼번호]
를 적고 return을 해주면 toggle 기능이 되면서 체크박스가 선택되게 된다.
컬럼 헤더에서는 조금 다른 방법으로 이를 해결해야 한다.
2006/01/26
윈도우 2000과 XP에서 재부팅 없이 IP 변경하기
접속해야 하는 경우가 많이 늘어났다. 이에 IP를 변경하는 방법이 다양
해졌는데 다음과 같은 방법을 사용하면 IP를 쉽게 변경할 수 있다.
단) 윈도우 2000 이상에서만 동작한다.
--
우선 윈도우에서 인식되는 네트워크 장치명을 알아야 한다. 네트워크 장치명은
시작->설정->제어판->네트워크 연결
을 통해 들어가면 보이는 이름이 네트워크 장치명이다. 바꾸지 않고 기본값으로 두었다면
"로컬 영역 연결"
"무선 네트워크 연결"
로 보일 것이다. 내 컴퓨터는 무선 인터넷을 사용하기 때문에 무선 네트워크 연결이
포함되어 있다.
메인보드에 장착하는 네트워크 카드가 2개라면 "로컬 영역 연결 2"라는 이름이 추가되서
보일 것이다. 이름은 조절해도 상관없지만 그러지 않기를 바란다. 본인이 뭘로 바꿨는지
하루만 지나도 까먹기 때문이다.
이름을 어딘가 적어두었다던가 했다면 다음으로 넘어간다.
IP 변경 명령어 : netsh
netsh 의 명령줄의 예는 다음과 같다.
netsh -c int ip set address name="로컬 영역 연결" source=static addr=11.11.11.11 mask=255.255.255.0 gateway=11.11.11.1 gwmetric=0
명령어 분석 /:
name : 변경하고자 하는 interface (보통 "로컬 영역 연결" 이라고 되어있습니다.)
- 내 내트워크환경->오른쪽 클릭->속성 에서 확인할 수 있습니다.
addr : 변경하고자 하는 IP주소
mask : 변경하고자 하는 subnetmask
gateway : 변경하고자 하는 gateway
설정하고자 하는 IP가 DHCP 등일 경우 /:
netsh -c int ip set address name="로컬 영역 연결" source=dhcp
DNS 변경
앞서서는 ip address 만 변경했는데 DNS 변경은 다음과 같이 할 수 있다.
DNS 수동 설정
netsh -c int ip set dns name="로컬 영역 연결" source=static addr=111.111.111.11 register=PRIMARY
DNS 자동 설정
netsh -c int ip set dns name="로컬 영역 연결" source=dhcp
IP 세팅 Backup & Restoring
앞에서 설명한 내용이 이해되지 않으면 다음과 같은 방법을 사용해 설정을 저장해서 사용한다.
IP 세팅 백업 :
netsh -c interface dump > 사무실.txt
IP 세팅 복구 :
netsh exec 사무실.txt
txt 파일을 특정한 위치(자기가 좋아하는 위치나 관리상에 두는 위치)에 놓아두었을
경우 파일명 앞에 파일이 위치한 전체 경로를 기재하면 된다.
txt 파일은 수정하지 말아라
!!! 이 방법은 Windows 2000 이하에서 실행되지 않는다.
2006/01/20
PyGTK에서 TextView 에 다른 Widget 추가
TextView 위젯 안에는 다른 위젯을 포함할 수 있는데, 이때 위젯은 TextView에 간단히 추가되지 않는다.
추가할때 PyGTK의 객체 추가방법과는 조금 다른 방법으로 추가된다.
1. window 나 box 위젯에 객체 추가하기
add 메소드나 pack_start, pack_end 메소드 사용하기
add 메소드 사용
win.add(widget)
pack_start, pack_end 메소드 사용
hbox.pack_start(wiget, expand, fill, spacing)
vbox.pack_end(widget, expand, fill, spacing)
그런데 textview 위젯에서는 iter와 anchor 를 얻어서 생성해야 한다. 그리고 textview 에 위젯을 추가하는 메소드를 사용한다.
2. textview 위젯에 다른 위젯 추가하기
textview buffer 얻어오기
buffer = textview.get_buffer()
textview buffer의 iter 얻어오기
iter = buffer.get_start_iter()
textview buffer에 anchor 추가. # create_child_anchor 메소드는 iter 를 요구한다.
anchor = buffer.create_child_anchor(iter)
textview 에 추가할 위젯 생성
checkButton = gtk.CheckButton("생성된 파티션을 확인하시겠습니까?")
checkButton.show()
button을 textview 에 추가. # add_child_at_anchor 는 1번째 요소로 추가할 위젯을 받고, 2번째 요소로 anchor를 받는다.
textview.add_child_at_anchor(checkButton, anchor)
######### 참고 #########
이때 anchor가 미리 생성되어 있다면 anchor 추가 구문 대신 다음 구문을 써서 anchor를 받아올 수 있다. 물론 생성되어 있다는 가정하에서는 iter 를 얻어오는 구문 조차 필요하지 않다.
anchor = buffer.get_data("anchor")
########################
이제 실행된 textview에는 다른 위젯이 포함되어 있는걸 확인할 수 있다.
------------------------------------------ textview에 위젯을 더 추가해보기
textview에 위젯이 포함되어 있을때 위젯을 더 추가하려면 anchor를 한번더 생성해야 한다.
이때 anchor 생성은 anchor를 생성하는 구문만 한번 더 써주면 되며 iter를 생성할 생각이라면
get_start_iter() 메소드는 textview의 가장 첫번째 iter를 얻어오게 되므로 마지막에 위젯을
추가할 생각이라면 get_end_iter()를 이용해서 iter를 얻어와야 합니다.
-----------------------------------------------------------------------
2006/01/16
PyGTK 2.0에서의 리스트 구현
따라서 PyGTK 2.0에서 CList와 같게 구현하려면 TreeView Widget에 ListStore를 쓰면 된다. 나머지는 컬럼 등에 관한
사항은 TreeView 에 관한 것을 쓰고 내부적인 것에 대해 트리 구현일 경우는
TreeStore 를 사용하고
CList 와 같은 일반 리스트를 구현할 경우
ListStore를 사용하면 된다.
잘 모를 경우 직접 실험해본다.
예제는 PyGTK 2.0 튜토리얼에 있는 BasicTreeView.py 파일을 참조하고 TreeStore와 관련된 것을 적절히 ListStore로 변경시킨다.
2006/01/05
SYSLINUX의 Display 파일인 MSG 확장자 파일 포맷코드
이 코드를 VIM에서만 입력을 해보았는데 입력을 할 경우 Ctrl+V 를 먼저 누르고 입력해야 한다. (숫자 ^0 처럼 보이는 것은 영어 대문자 O이다. 터미널에선 구분이 잘 되지 않는다)
전문 : http://syslinux.zytor.com/faq.php#format
-----
{ What is the DISPLAY File Format? }
DISPLAY and function-key help files are text files in either DOS or UNIX format (with or without <CR>). In addition, the following special codes are interpreted:
<FF> <FF> = <Ctrl-L> = ASCII 12
Clear the screen, home the cursor. Note that the screen is filled with the current display color.
<SI><bg><fg> <SI> = <Ctrl-O> = ASCII 15
Set the display colors to the specified background and foreground colors, where <bg> and <fg> are hex digits, corresponding to the standard PC display attributes
0 = black 8 = dark grey
1 = dark blue 9 = bright blue
2 = dark green a = bright green
3 = dark cyan b = bright cyan
4 = dark red c = bright red
5 = dark purple d = bright purple
6 = brown e = yellow
7 = light grey f = white
Picking a bright color (8-f) for the background results in the corresponding dark color (0-7), with the foreground flashing.
Colors are not visible over the serial console.
<CAN>filename<newline> <CAN> = <Ctrl-X> = ASCII 24
If a VGA display is present, enter graphics mode and display the graphic included in the specified file. The file format is an ad hoc format called LSS16; the included Perl program "ppmtolss16" can be used to produce these images. This Perl program also includes the file format specification.
The image is displayed in 640x480 16-color mode. Once in graphics mode, the display attributes (set by <SI> code sequences) work slightly differently: the background color is ignored, and the foreground colors are the 16 colors specified in the image file. For that reason, ppmtolss16 allows you to specify that certain colors should be assigned to specific color indicies.
Color indicies 0 and 7, in particular, should be chosen with care: 0 is the background color, and 7 is the color used for the text printed by SYSLINUX itself.
<EM> <EM> = <Ctrl-Y> = ASCII 25
If we are currently in graphics mode, return to text mode.
<DLE>..<ETB> <Ctrl-P>..<Ctrl-W> = ASCII 16-23
These codes can be used to select which modes to print a certain part of the message file in. Each of these control characters select a specific set of modes (text screen, graphics screen, serial port) for which the output is actually displayed:
Character Text Graph Serial
------------------------------------------------------
<DLE> = <Ctrl-P> = ASCII 16 No No No
<DC1> = <Ctrl-Q> = ASCII 17 Yes No No
<DC2> = <Ctrl-R> = ASCII 18 No Yes No
<DC3> = <Ctrl-S> = ASCII 19 Yes Yes No
<DC4> = <Ctrl-T> = ASCII 20 No No Yes
<NAK> = <Ctrl-U> = ASCII 21 Yes No Yes
<SYN> = <Ctrl-V> = ASCII 22 No Yes Yes
<ETB> = <Ctrl-W> = ASCII 23 Yes Yes Yes
For example:
<DC1>Text mode<DC2>Graphics mode<DC4>Serial port<ETB>
... will actually print out which mode the console is in!
<SUB> <SUB> = <Ctrl-Z> = ASCII 26
End of file (DOS convention).
<BEL> <BEL> = <Ctrl-G> = ASCII 7
Beep the speaker.
2006/01/04
어머님이 입원하셨다는 메시지를 받아보곤...
어머니가 병원에 입원하셨다는 동생의 메시지였다. 어렸을 적 너무 많이 고생시키고 속 썩여드리던 나였기에 앞뒤 잴 요량없이 바로 회사 상사와 파견지에 연락을 하고 청주로 향했다.
부모님이 아프시고 병원에 입원하신 상황에 놀라지 않은 자식이 어디있고 걱정하지 않을 자식이 어디있단 말인가? 청주에 어머니가 입원해 계신 병원에 찾아가 병실을 묻고 병실에 가니 창백한 몸으로 누워계신 어머니 모습이 보였다.
아버지는 그전날부터 주무시지 못한 모양이신지 많이 피곤해보이셨고, 2분다 회사는 어떻게 하고 왔냐고 물어보시길래, 얘기하고 왔다고.. 그렇게 말했다.
또 지나서 하는 얘긴데, 어머니 모습을 볼때 순간 울컥했다. 전생이 어머니에게 죄가 없으실 분에게
왜 장마비 같은 병이 생기는 것인지... 부처님이 순간 너무 싫었다.
오전에 찍은 X-ray 사진 검토 결과를 받고 별다른 이상이 없다고 해서 그날 서울에 올라왔다.
"엄마 아프지 마세요.. 지금 많이 못해드리지만 더 잘해드리도록 노력할께요"
최진실의 동생은 가수 박진영인가?
물론 그녀의 연기만으로 봤을때 그건 충분히 상을 받을 가치가 존재했다.

그렇다고 해서 내가 이야기하고 싶은 최진실씨의 연기는 아니고 그걸 보도한 신문기자의 무례한 행태를 이야기하고 싶어서다.
사진에 보면 분명 최진실씨의 동생은 최진영임에도 불구하고 박진영으로 적어두었다. 내가 그 기사를 보고 해당 기자에게 메일로 잘못 적었다고 알려주었음에도 불구하고 수정하지 않는 태도는 뭔가?
기자가 문젠가? 아니면 이미 지난 기사라서 그런것인가? 아니면 기자가 속한 회사 사장이 바보멍청이인가?
독자의 겸허한 비판은 수용하되, 잘못된게 있으면 받아들여야 하는데 이놈들은 그렇지 않으니 솔직히 열이 받는다. 이 일을 이런식으로 공론화 시켜야만 자기들의 잘못을 이해하겠나?
기사는 최소한 공정성과 진실을 이야기 하는 매체다. 최진실씨의 동생이 박진영이면 박진영의 동생은 정지훈씨라고 말하는 것과 어찌 다른가?
정신차려라. 이 머니투데이 놈들아!!
2005/12/29
요즘 연애부 기자들의 기억력은 새머리가 아닐까?
관심을 많이 갖는 편인데, 강수정 아나운서의 말 실수에 대해
어떤 기자가 기사를 썼는데 그이가 진행하는 강수정의 뮤직쇼(예전엔
김장훈의 뮤직쇼였다)가 방송하는 KBS 2FM인 Cool FM의 채널이
91.9Mhz 란다.
91.9Mhz는 수도권에서 MBC 표준 FM인데, 게다가 89.1Mhz.
Cool FM은 수도권이외에는 방송조차 안하는데 과연 이 연애부 기자는
글 쓸때 주파수 확인도 안하나? 하긴 기자보다 편집장이 더 문제지.
이러니까 우리나라 신문의 기사들이 항상 개판이지.
ㅋㅋ
2005/12/28
일일 드라마 보기
거의 모든 드라마의 등장인물과 스토리, 미리보기 내용을 꾀차는데
마침 오늘 오후 8시 25분에 시작하는 KBS1 일일 드라마 별난여자 별난남자를
보려고 KBS에서 로그인해서 OnAir를 가동했는데. 어랏
왜 드라마가 안 나오지. 뭔가 좀 이상했다. KBS2에서 뉴스 좀 보다가 방송
편성표를 보는 순간 느꼈다.
"앗 KBS2가 아니라 KBS1이었다 ㅡ.ㅡ"
한 12분 남은 상태에서 보기 시작했는데 역쉬, 드라마는 글자로 읽어대는 것보다
영상으로 보는게 최고다.
우헥. 그나저나 조엘은 아직도 내 신경을 박박 긁는걸.
원서 접수 안된게 교육부와 대학이 잘못한 말로만 외쳤던 교육혁신의 일환으로 볼 수 있나..
뉴스와 학부모들 학생들은 말로만 교육 혁신을 외치지 말고 서버 증설부터
하라고 하는데 그게 말이 되나.
하나. 원서접수 서버를 늘리면 되지 않냐고?
국내에서 원서 접수 회사는 총 3곳. 원서 접수는 매년 이 시기에만 집중적으로
이뤄질 뿐이고 그 이외의 기간에는 사실상 원서 접수가 거의 없다.
그런데 원서 접수 업체에 서버를 늘리라고? 매달 IDC에 나가는 비용은 어떻게 하라고?
둘. 원서 접수 업체는 대학에서 운영하지 않나?
대학들이 자기네들 돈 들여서 왜 남의 대학까지 원서 접수할 수 있는 시스템을 마련하겠나?
셋. IT 종사자들이 바보 같아서 그렇다고?
물론 시스템 설계가 엉성해서 그런일이 발생했다고 칩시다. 있을 수 있는 일이니까
그런데 왜 IT를 싸잡아서 비난할껀 뭐냐고? 몰려드는 사용자들을 어찌하라고?
결론. 그러니까 미리 어디갈지를 정해두던가. 대학놓고 저울질하면 우울한 세상밖에 더 만들어지겠나?
바보같은 한국인들 1편.(엇 그러고 보니 나도 한국인이네.. ㅋㅋ)
2005/12/27
조엘 온 소프트웨어
추천으로 읽게 된(순수하게 추천이었다) 조엘 온 소프트웨어는 지금 내 가치관을
뒤흔들고 있다.
뭐 정확하게 표현한다면 내가 없다고 해야 되나. 어쨌거나 지금 이 조엘이라는 작자는
내가 책을 보면서 가슴뛰는 감정을 느끼게 한 2번째 필자임에는 틀림없다.
1차는 누구냐고? 자바 개발자인 이창신씨다. 이창신씨는 아파치 자카르타 커미터로 활동하고 계시다.
이창신씨가 지은 자바 SDK 책이 이렇게 가슴뛰게 했었는데 오랜만에 귀한 진주를
만난 것 같다^^
다 읽으면 그대로 시행해 볼 수 있도록 노력해보자.
2005/12/22
답변형 게시판 알고리즘
idx family childLevel Subject
1 1 1 글 1
3 1 2 [RE] 글 1
6 1 3 [RE][RE] 글 1
5 1 4 [RE] 글 1
2 2 1 글 2
4 2 2 [RE] 글 2
다음과 같은 구조로 되어야 한다. 마지막에 올린 답글이 가장 최상위에 올라오게 된다.
새로운 글을 시작할 경우 family 값은 TABLE에서 max 값을 가져오고 childLevel은 1로 시작하게 된다.
이때 새로운 글에 답변이 달리면 자연이 childLevel의 값은 자기 부모글의 childLevel보다 1 높은 값을 지니게 된다. 이때 childLevel이 1인 부모글에 답글을 달게 되면 처음 작성된 답변글이 childLevel값이 나중에 달린 childLevel 값과 같아지게 되므로 누가 가장 먼저 나올지 며느리도 모른다.
따라서 이문제를 해결하기 위해선 마지막에 올린 답글이 가장 최상위에 올라와야 한다는 걸 생각하면 다음과 같은 방법으로 문제를 풀 수 있다.
table에 새로운 답변글을 하나 더 인서트하기 전에 html 폼에서 넘어온 family 값과 childLevel 의 값(이미 1이 더해진 값)을 받아서 table에 같은 family 값을 가지면서 childLevel보다 높은 값은 하나씩 더 하면 문제가 해결된다. 위의 알고리즘은 지금 설명한 내용을 기준으로 다음과 같은 형태를 지니게 된다.
idx family childLevel Subject
1 1 1 글 1
7 1 2 [RE] 글 1
3 1 3 [RE] 글 1
6 1 4 [RE][RE] 글 1
5 1 5 [RE] 글 1
2 2 1 글 2
4 2 2 [RE] 글 2
단지 이렇게 할 경우 글을 family와 childLevel의 값으로 asc 혹은 desc 정렬를 하면 순차적으로 값은 가져올 수 있으나 얼마나 칸을 띄워야 하는지 이것에 대한 판단 기준이 없으므로 이 부분에 대해선 조금 더 생각해볼 필요가 있다.
혹은 childLevel에 1이 더해진 값이 이미 존재할 경우 update 하지 않는 방법도 있을 것이나 글쎄.. 이건 조금 더 생각해 볼일이다.
2005/12/20
NeverSpam 적용을 위한 자바스크립트 및 Anchor
<script language="'javascript'">
function AntiSpam(id) {
window.open('./antispamin.php?UniqId='+id,'AntiSpam','width=180,height=263,left=1,top=1');
}
</script>
---> 이메일이 보였던 곳에 삽입(ex. 방명록 리스트 안의 실제 이메일 링크)
<a href="'javascript:AntiSpam($Id)'">추출방지</a>
/----------------------------------------------------------------
JavaScript 인자 id는 이메일이 있는 테이블(방명록 테이블)에서
넘어온 게시물을 확인시켜주고자 하는 것이다.
예) table description
id name subject email
1 이상호 소은씨만 봐요 search5@gmail.com
이라고 한다면 방명록 리스트에선 1이라는 id 값이 넘어올 것이다. 물론 이때의 1은 방명록
리스트에서 각 게시물의 고유한 아이디로서 다중 게시판을 사용할 경우 게시판 ID도 포함할 수 있으며 email 을 확인하기 위한 고유의 게시물 아이디등을 추가할 수 있다.
-----------------------------------------------------------------/
NeverSpam은 크게 2가지의 실행 방식을 제공하는데 gd 방식을 추천한다. exe 방식은 외부에 보안문제를 일으킬 수 있기 때문이다.
다중 보드일 경우 (gd)antispamin.php에 넘길 UniqID 값은 기본적으로 하나이며, 이 값에 추가로 덧붙이지 않고 다른 변수를 하나 더 추가해서 넘기고 (gd)antispamout.php에서 uniqid 는 신경쓰지 않고 $Email에 값을 집어넣는 곳에서는 UniqID 및 추가로 넘긴 값을 DB로 쿼리를 던져 값을 얻어온다.
네버스팸 프로그램은 http://www.neverspam.or.kr 에서 얻을 수 있다.
ps.. > 네버스팸은 아직까지도 베타이며 ASP, PHP, JSP, Perl 버전으로 제작되어 있다. 파이썬 버전이 없고, 프로그램은 구조화가 잘 되어 있지 않기 때문에 Class 를 이용하는 프로그램에선 면밀히 분석해서 클래스를 제작해서 구현해야 할 것이다. 나 역시 클래스 버전으로 재포팅을 생각해보고 있다.(이렇게 해서 쓰고 있는 라이브러리가 있다.)
네버스팸 프로그램에선 크게 5개의 함수와 중복된 함수(내용은 다르다) 2개가 있는데, 이중 4개의 함수는 공통적으로 쓰인다.
공통 함수명 : IpTest(), BlockIpRelease(), BlockIf(), BlockIpList()
(gd)antispamin.php 에서만 쓰는 함수명 : DelBmp()
중복 함수명 : Start()
클래스 제작시 Start 함수는 이름을 조금씩 바꿔 제작한다.
궁금한 사항은 search5@gmail.com 으로 메일 주세요~(근데 이거 관심가지고 있는 사람이 얼마나 될까..)
2005/12/19
PyGTK로 여러 화면 애플리케이션 작성 코드 sample(class)
---
#!/usr/bin/env python
import pygtk
pygtk.require("2.0")
import gtk
class MultiWindow1:
def btNext(self, widget, data=None):
window2 = MultiWindow2()
self.window1.hide()
def __init__(self):
self.window1 = gtk.Window(gtk.WINDOW_TOPLEVEL)
button = gtk.Button("Next")
button.connect("clicked", self.btNext)
self.window1.add(button)
button.show()
self.window1.connect("destroy", lambda w: gtk.main_quit())
self.window1.show()
class MultiWindow2:
def btPrev(self, widget, data=None):
window2 = MultiWindow1()
self.window.hide()
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
button = gtk.Button("Prev")
button.connect("clicked", self.btPrev)
self.window.add(button)
button.show()
self.window.connect("destroy", lambda w: gtk.main_quit())
self.window.show()
def main():
gtk.main()
return 0
if __name__ == "__main__":
MultiWindow1()
main()
PyGTK로 여러 화면 애플리케이션 작성 코드 sample(non-class)
---
#!/usr/bin/env python
import pygtk
pygtk.require("2.0")
import gtk
def window_show(widget, data=None):
window2 = gtk.Window(gtk.WINDOW_TOPLEVEL)
window2.connect("destroy", lambda w: gtk.main_quit())
button = gtk.Button("이전")
button.connect("clicked", window_hide, window2, data)
window2.add(button)
button.show()
window2.show()
data.hide()
def window_hide(widget, data=None, data2=None):
data2.show()
data.hide()
window1 = gtk.Window(gtk.WINDOW_TOPLEVEL)
button = gtk.Button("다음")
button.connect("clicked", window_show, window1)
window1.add(button)
button.show()
window1.connect("destroy", lambda w: gtk.main_quit())
window1.show()
gtk.main()
믿어? 믿지 않아?
만났다.
뭐.. 이 녀석들 말로만 친구지.. 연락은 지네들끼리 하질않나.. 게시판에 글 남기라면 남기지도
않지.. 너무하는 것들 아냐.
뭐 그런 녀석들이래도 어쩔 수 없다. 같이 초등학교 나와놓고서 딴말할 수 없는 것 아닌가?
가만.. 그날 누가 나왔었지..
김복래, 김현숙, 서지명, 박득규, 송권호, 김한중, 은현준, 이경치, 안병찬, 나~
그래 이렇게 나왔었네.. 다들 오랜만에 보는거라서.. 수다도 많이 떨줄 알았는데.. 역시나더군..
어떻게 새벽 4시까지 수다를 떠냐. 이것들아
물론 나야.. 몇마디에서 멈췄다.. 우헥... 니가 그래놓고도 천하의 수다쟁이란 말야??(사실 난 수다쟁이가 아니다)
그건 그렇구.. 오랜만에 본 복래는 9급 공무원이 되었고.. 득규는 카센터에 있고.. 권호는 하이닉스 다니고.. 한중이는 KT 인터넷 관리팀에 있고.. 병찬이는.. 해경이 될 몸이시고..
하긴 이 나이쯤 되면 다들 어느정도 자리잡을때가 되었지(내 나이는 24..)
나도 남들처럼 군대를 제대했어야 했는데. 너무 귀찮았다 ㅡ.ㅡ;;;
아무튼.. 오늘도 늘.. 행복한 시간...
ps... 미움..그리움..행복함..사랑해... 지금부터야. 가자!! 미래로.
2005/12/12
이소은 4집 애인..
소은씨의 노래는 늘.. 내 감정에 살아 숨쉬고 있는 느낌이다^^
--
헤어진지 꽤나 오래됐는데 아직도 누가 내게 물으면
애인있다 하죠
사랑하는 사랑이 애인이잖아
내곁에 머무르지 않아도 애인인거잖아
나혼자 걸어도 나 혼자 웃어도
니가 곁에 있는 듯이 그렇게 생각해
내마음이 너를 놓치 못하는 걸
아직도 그 자리에 남아서
맴돌고 있는걸
우리다시 그 어떤 예쁜 기억도
만들수 없다는 거 알지만 그래도 괜찮아
눈을 감고 니 어깨에 기대울던
따뜻한 지난 겨울 만으로 웃을 수 있는걸
나혼자 걸어도 나 혼자 웃어도
니가 곁에 있는 듯이 그렇게 생각해
내 마음은 너를 버릴 수 없어
너를 잊어버리려 하지만 그럴 수가 없어
그럴 수가 없어
주말의 기말시험..
다니는 거라서 학점엔 그다지 신경쓰고 있지 않지만 이제 관리의 필요성을
느끼고 있다.
쌍권총의 압박이라고 해야 할까?? 가히 쌍권총의 압박은 도대체 매해 이러니
살맛이 안나기도 할려고 한다. 그건 그렇고
주말에 갑작스레 변경된 시험장소로 향했다. 원래 학교는 한양대 앞에 있는
덕수정보산업고등학교. 그런데 무슨 일인지 시험 며칠전에 성동여자실업고등학교로
바뀌어 버린탓에 적응을 못하고 있었다..(머리가 요즘 아프다)
시험일인 11일 오전 9:40가 넘어서야 일어난 난 아뿔사를 외치며, "아 이게 아니야"
라는 소리를 연발하기 시작했다. 다음 시험 시간이 10:30분 부터 였기 때문에 급했다.
허겁지겁 씻는둥 마는 둥 학교 차를 몰고 시험장으로 향했다. 어떻게 잘 도착하고
주차도 문제없이 끝내고 교실을 막 찾아 들어갔더니 바로 시험.. 으악....
공부를 못했으니 성적이 안나오리나는 건 당연지사가 아닐까나.
시험 과목 자체가 1, 2학년껄 보다보니 오전, 오후에 두루 걸쳐 있었다.
결과적으로 플래너에 시험시간에 늦지 않게 준비하자는 빈 말이 되어버렸다. 이에는 내가
한게으름하는 탓도 있었지만 우리학교 전산 시스템이 모조리 activex 를 사용해 버리는 탓에
리눅스를 사용하는 내가 접속할 수 없었다.
참 아쉬운 일이 아닐 수 없었지만 그냥 참기로 했다. 내가 신도 아니고...
정오에 간단하게 식사를 챙겨먹고 교재를 가져가지 않고 가져온 PyGTK 튜토리얼을
뚫어지게 시험보는 내내 빈 시간때마다 챙겨보기 시작했다. 내 장점은 여기에 있는
거겠지만..
그렇게 1과목을 놓친 5과목을 보는 둥 마는 둥 하고 나오고 같은 장소는 아니지만 대학
동기 누나를 만나 책 사고 밥 먹고 나왔다.
그러고 보니 종로 영풍문고는 15분당 500원이라는 아주 저렴한 주차비였었다.
담에 종로 갈일 생기면 영풍빌딩에 묶어나야 겠다.(근데 종로까지 차를 타고 납실일이 있을까?)
오늘도 분주하게 시작한 하루. 성과있는 하루를 만들어내기 위해 노력하자!
2005/12/09
ldconfig에서 에러나면??
# apt-get dist-upgrade
...
Setting up zlib1g (1.2.2-4.sarge.2) ...
ldconfig: Writting of cache data failed: No space left on device
dpkg: error processing zlib1g (--configure):
subprocess post-installation script returned error exit status 1
Error were encountered while processing:
zlib1g
여기에서 보이는 바와 같은 에러는 / 파티션이 100% 다 썼을때 나타나는 현상이다.
해결하려면 / 파티션의 공간을 넓혀주어야 하나 LVM이 아닌경우엔 다시 설치해야 하는
치명타가 있다.
--원문
That's most likely because your root partition (/) is full, and it's
trying to write to the /etc directory - which is included in your root
partition.
You could either delete something you don't need on the root partition
to give yourelf some wiggle room (as previously mentioned), or you could
consider adding some disk space to the root partition by resizing it.
Looks like you have plenty of elbow room on the drive (especially in
your /home partition) to do the resizing.
You can get a better look at your overall partition layout by running
'fdisk -l /dev/hda' (as root), and you can get the output into a text
file with 'fdisk -l /dev/hda > filename'
정말 어이없다.. 리눅스 또 깔아야 하다니.. 지겹다..
2005/12/08
아름다운 생각
명언은 책에서만 발견할 수 있는 게 아니야.
일상 생활속에서 가장 가까이 찾을 수 있는 있는 것 같아 그치?
아깝다!
그 동안 잊혀진 많은 생각들.
다 적어놓을 걸.
평범한 사람들의 생각과 이야기가
세상을 돌게 만든다.
너무 아름답다!!!
고맙습니다~~내 주위의 모든 분들!
나를 이렇게 키워 주셔서.^^
2005.09.06 http://cyworld.com/serealm 소은씨 홈피 다이어리에서...
2005/12/06
KDE에서 gtk1 프로그램을 읽어들일때 폰트가 깨지면??
xmms와 glimmer 를 사용하는데 이때 프로그램이 로드되면 설정창이나
기타 한글을 보여주는 부분이 모두 깨지게 된다.
문제는 gnome을 세션으로 띄우면 이런 문제는 발생하지 않는 다는 건데
이 문제를 해결하기 위해선 홈디렉토리에서 다음과 같은 작업을 하면 된다.
$ cp .gtkrc-1.2-gnome .gtkrc
이 문제가 발생하는 이유는 KDE에서는 .gtkrc-1.2-gnome을 읽어들이지 않고
.gtkrc 를 읽어들이기 때문에 발생하는 것이다(KDE에 버그 보고를 해야 하는 사항)
그리고 파일에서 읽어들이는 파일인 .gtkrc.mine 파일은 미리 만들어져 있어야 한다.
웹에서의 다중 플랫폼 정보 접근성 이야기
그런데 웹이 무르익기도 전에 네스케이프(http://www.netscape.com)는 웹의 주도권을 놓고 독주하기 시작하면서 브라우저에 자체의 기능을 넣고 질주를 계속하다 새 제품의 출시 이유로 MS의 IE에게 브라우저의 왕자 자리를 넘겨주게 되었다.
하지만 IE는 웹의 표준을 마음대로 무시했으며 심지어 IE가 질주하는 동안에 많은 애플리케이션 업체들은 IE 자체에 먹는 테크닉과 MS Windows에만 이식되는 기술을 개발하기에 이르게 되었다.
우리가 다이나믹 HTML이라 부르는 그 기술들이 사실은 브라우저와 OS에 의존적이라는 것이다. 물론 사용자의 웹 브라우징을 편리하게 다루는데 있어서 MS의 Active X 기술에 제동을 걸 필요는 없다.
하 지만 내가 Active X에 제동을 걸고자 하는 건 다른 이유에서다. 바로 정보 접근성이라는 건데, MS는 아직까지도 모질라 프로젝트가 밀고있는 Cross Platform 기술인 XPCOM을 무시하고 있다는 거다. 그 덕분에 수많은 리눅스와 맥 유저들은 많은 은행들에 인터넷 뱅킹을 하지 못하게 되었다.
나만 해도 인터넷 뱅킹을 할려고 윈도우를 가끔 킨다. 근데 이러한 브라우저와 운영체제에 의존적인 기술이 은행에만 도입된 것은 아니라는 거다. 그럼 어디에 도입되었냐고?
국가 교육기관인 한국방송통신대학교, 국가 전자 정부 사이트, 국가 과학 도서관 등 수많은 정부 부처 및 국가 기관들이다.
이들 기관은 윈도우가 아니면 그 어떠한 혜택을 누릴 수 없다. 물론 여기에 그 기관들을 나열한다는 건 어려운 일일뿐더러 그렇게 해서 얻어질 수 있는 혜택은 많지 않다.
그럼 왜 이처럼 우리에게 웹에서의 정보 접근성은 차단되어 있는 것일까? 답은 하나다. 정보 접근성은 우리 스스로가 찾지 않으려 했다는 것이다.
물론 1차적으로 물었을때가 답이지만 2차적으로는 국가 IT를 책임지는 정보통신부와 그 외 기관이 넉을 놓고 윈도우가 독점하는 꼴을 바라봤다는 거다.
리눅스가 성장하기에 앞서 수 많은 브라우저가 공통으로 제공하는 Cross Platform 기술을 사용했더라면 이런일은 없었을텐데 아쉬운 부분이다.
정보접근성. 머지 않은 날에 해결되겠지만 소수의 유저가 모든 웹 사이트에 자유로이 드나들며 밝게 웃을 수 있는 날이 언제쯤 올까?
리눅스에서 Umask 설정에 관해서
기본적으로 umask을 이용해 파일이 생성될땐 허가권의 반대로 설정을 하게 된다.
설정 확인은 다음과 같이 한다.
$ umask -S
출력결과 : u=rw,g=rwx,o=rwx
물론 위의 결과대로라면 다음과 같은 권한을 가진 파일이 만들어져야 한다.
-rw-rwxrwx 1 shlee shlee 0 2005-12-06 19:00 1
퍼미션에 대한 자세한 설명은 유닉스 퍼미션에 관한 서적이나 내용을 참조하기 바란다.
그런데 파일을 만들면 다음과 같은 파일이 만들어진다.
-rw-rw-rw- 1 shlee shlee 0 2005-12-06 20:01 4
그 이유는 기본적으로 셸이 파일을 만들땐 777 mask를 가지지 않고 0666 이라는 마스크를 가지기
때문이다.
이 때문에 다음과 같은 공식이 성립한다.
0666 & ~022 = 0644 = rw-r--r--
박스1 : 022는 umask의 기본값이다.
그때문에 기본값인 022은 666에서 022을 뺀 결과인 644(-rw-r--r--)을 가지게 된다.
처음엔 파이썬 공부를 하다가 일일이 chmod로 권한을 조정하는게 귀찮아서 조금 건드려보다가
알게된 사실인데, 혹시 까먹을까 두려워서 적어둔다.
새로운 친구들
늘 아쉬움에 뒤를 돌아보곤 했는데, 새로운 친구들은 곁에서
보이는 이상의 의미를 다시한번 깨쳐주었다.
언제부터였을까.. 친구라는 존재를 만들지 않게 된 것이
사람에 속은것이 유독 있어서 였던 걸까? 아니면 왜 그랬던 걸까?
친구의 결혼식에서 다시만난 고교 동기와 친구의 중학교 동기인
선화, 재인씨, 경숙씨
아직은 익숙치 않은 사이지만 조금 더 나아지겠지?
세 친구들에게 내가 부탁 하나만 한다면,
지금도 앞으로 좋은 사이가 되길 바랍니다.
-꿈의 끝자락을 늘어잡고 있는... 내가..