thunderbird에서 Winmail.dat로 오는 첨부파일 보는 법 - ZemyBlue님의 글
thunderbird에서 winmail.dat 첨부파일 읽기 - uriel님의 글

현재 다니고 있는 w모사의 workgroup software는 outlook 2003 이다.
근데, 난 linux 사용자란 말이지. 그래서 생기는 불편이 여럿있는데,

첫째. thunderbird에서 exchange server에 붙어서 E-mail을 보고 지워도 지워지지 않는다.
둘째. 미팅일정같은 것이 날라오면 대락 난감
셋째. windmail.dat

첫째, 둘째는 그럭저럭 버티고 있다. 가끔 windows notebook을 켜서 정리하면 그만이다.
헌데, 셋째 문제는!!! 첨부 파일을 볼 수 없다는 얘기지. T.T
그래서 windows notebook을 outlook 전용으로 쓰고 있다가
"못 참겠다 갈아보자!"
"구관이 명관이다 갈아봤자 별수 없다"
로 갈등하다가 google 신탁을 얻어서 몇가지 해결책을 찾았다.
ZemiBlue님의 글로 내 outlook 설정을 바꾸고,
uriel님이 언급한 LookOut을 쓰니 좀 버틸만 하다.
이 경우에 LookOut 플러그인을 설치하면 해당 TNEF 인코딩된 winmail.dat 파일이 디코딩되서 내용이 다른 첨부 파일로 나오게 됩니다.

꼬랑지. 글 상자에 있는 구호는 언제 어디서 나온 구호일까요?
      둘. 그래도 하루에 한번 이상은 outlook을 꾸준히 써줘야 한다.

컴파일중 ${GIT_ROOT}/external/opencore/oscl/oscl/osclio/src/oscl_file_native.h에서
struct mediasigbushandler의 타입이 정의 되지 않았다고 에러가 난다.
무식하게 grep으로 찾아도
mediasigbushandler를 정의한 곳은 보이지 않는다.

google에게 신탁을 청해보니 다음과 같은 link를 툭. 떨궜는데..
opencore build failure in oscl_file_async_read.cpp
결론은 아직 repo에 제대로 된 fix는 등록이 되지 않았다는거다.
좀 더 따라가 보면 그런 경우에는 media player가 제대로 동작하지 않는다는 얘기도 있고,
하지만, SDK에서는 잘 되지 않나? google에서 아직 code를 제대로 release 안했다는건가?

마지막으로, 왜 omap-android는 build가 될까?

micro projector

Personal Computer/misc 2008. 6. 19. 20:20 posted by tolkien
WIS 2008에 가서 삼성에서 만든 micro projector를 봤다.
DSLR에 있는 TV out port에 연결에서 바로 볼 수 있는 걸까?
시연하는 내용은 DMB를 보여주고 있었다. TV 대용으로 쓸 수 있을까?
NDS나 PSP와 같은 게임에 연결을 하면 어떻게 될런지...
반짝하는 기술이 될지, 히트작이 될지 궁금하다. (반짝에 한표.)
7월중에 출시예정.
micro projector

2008/06/18 EOS-1D

원인분석 - 자판기 버그 사례

Personal Computer/misc 2008. 2. 17. 12:52 posted by tolkien
자판기 버그 사례 - 시즈하님의 글

하고 있는 일도 그렇구, 그때문에 타국에 끌려나와서 우울한데
제대로 낚시에 걸렸다. 이왕 걸린거 변명이나 할란다.
사례1: 빈 종이컵이 나온다!
사례2: 종이컵이 없다?!
사례3: 동전 반환과 메뉴 선택을 동시에 했을 경우
사례4: 버튼을 연타했을 경우
사례5: 500원짜리 동전 반환시
사례6: 위폐를 넣었을 때 정상적인 지폐로 인식...

사례 1. 명백한 s/w 오류라고 하지만, h/w 오동작인 경우가 맞을 듯. s/w 오류라면 재현경로가 존재. button을 누르고 동전을 넣고 다시 button을 누르면.이라던지. 그런 문제가 아니라 정상적인 시나리오인 동전을 넣고, button을 눌렀는데, 빈 종이컵만 나오도록 programming할 바보는 없슴. 문제는 아주 가끔 h/w가 오동작한다는거.

사례 2. h/w 문제. 컵로더 문제거나 또는 컵을 잘못 로딩했을 경우, 컵이 내려왔는지 감지할 수 있는 센서가 있다면 처리할 수 없지만, 단가! 낮추기 위해서 그런 센서를 넣을리 없다면... 답 없음. 그냥 고객이 항의하는 경우 커피값을 지불하기.가 비용이 더 쌈.

사례 3. button driver를 한곳에서 일괄적으로 처리하면 생길 수 없는 문제. h/w가 분리되어 있더라도 같은 handler에서 처리하면 race condition을 피할 수 있슴. 하지만, button 각각에 handler를 별도로 처리하게 하면 개별 test는 통과, 사례 3과 같은 경우는 검증하기 전까지 알아채기 힘듬. 경험으로 피하는 code가 될 듯.

사례 4. billing 처리에 문제가 있는 경우, 이건 해당 programmer를 짤라야해. 차라리 돈을 먹도록 해야지, 받은 돈 이상 서비스하도록 하면 안됨.

사례 5. h/w 문제. 처리불가. s/w는 인식된 금액 - 판매금액 = 잔돈. release_500원()을 호출했는데, 600원이 나오면 어쩌라구... (중간에 잔돈 buffer를 만들고 거기서 금액을 확인하는 식으로 하면... -> 그 설비를 추가하느니 그냥 손해보고 만다)

사례 6. h/w 문제. but, 지폐인식하는 firmware를 update해서라도 수정하라는 고객의 요구가 있으면 대략 난감. (h/w를 한계까지 돌리고 싶어하는 사람들이 많다. 비싼 h/w == 단가 증가.이지만 (싼 h/w + s/w 개선) == 단가 절감.이라고 생각하는 사장님 많음. 그때문에 밝혀죽는 개구락지 좀 생각해주세요.)

다운그레이드.

Personal Computer/misc 2008. 1. 14. 01:06 posted by tolkien
몇일전 블로그를 운영하고 있던 서버내 MySQL package의 update가 있었나보다.
잘 쓰고 있던 TatterTools Classic이 안돌기 시작하던 것.
.php file 몇개 고치다가 귀찮고 짜증나서 tt 1.1.3으로 냉큼 올려버렸다.
tistory로 이주는 실패, text cube는 왠지 찜찜해서 넘어갔고,...

바꾼지 일주일, 현재 닥친 문제점은 스킨.
사진을 전부 580x387로 올리고 있어서 본문 크기를 580 pixel 이상이 되어야 한다.
(580x387이 된 이유는 이전에 쓰던 스킨에 맞추다보니...)
그런데 현재 쓰고 있는 스킨의 원래 크기는 500 pixel.
일단 style을 대충 고쳐서 580 pixel로 쓰고 있는데, 영 맘에 안 든다.


이게 방금 썼던 글이다.
그리고, 다른 사람의 글을 인용하려고 하니 불편한 130%!!!
혹시나 하는 마음에 이전 link로 가서 tt classic에 접속하니
다시 복구가 되어 있다. 만세~

업그레이드 1주일 만에 다시 roll back. :-)
mysql_result(): supplied argument is not a valid MySQL result resource - 누군가님의 글

블로그가 담겨있는 server관리자가 package를 update한 것같다.
오늘 접속해보니 위 제목같은 error가 떠서...
바로 검색.하여 보니 누군가님의 블로그에 친절하게 설명이 있어서 응급조치를 취했다. :-)

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:Pathview.php3 on line 9
이 에러는 결국....

$dbselect = mysql_query("select * from board where id = $id ",$connect);
이 부분에서
쿼리가 잘 못 되었거나 매칭되는 레코더가 없기 때문에 나타나는 에러입니다.

일단
$dbselect = mysql_query("select * from board where id = $id ",$connect);
이거 위에

echo $connect; 해서 mysql에 정확히 접속되었는지 확인하시기 바랍니다.

두번째, 문제가 없으면...
$dbselect = mysql_query("select * from board where id = $id ",$connect);

$dbselect = "select * from board where id = $id ";
echo "$dbselect";
$dbselect = mysql_query($dbselect,$connect);
로 바꾸고...

웹브라우져에 뿌려지는 결과를 mysql 에 직접 입력해 봅니다.

결과값이 없다면 당연히 위에처럼 에러가 납니다...ㅡㅡ;;
(아마 DB 컨넥트에서 문제가 없었다면... $id값이 비어있을 공산이 큽니다...ㅡㅡ;;
혹은 테이블에 아무값이 없을 수도....ㅡㅡ;;)

결과가 있다면... 당연히 에러가 안나겠죠....^^

만약 레코더가 없을 때 에러메시지를 안나타나게 할려면
$writer = @mysql_result($dbselect,0,"writer"); //mysql_result 앞에 @를 붙임
요렇게 하시면 됩니다.

IP forwarding

Personal Computer/misc 2007. 12. 28. 11:05 posted by tolkien
NAT 를 linux 에서 - Rukikuki?!님의 글

개발중인 단말에서 RealTimeClock이 틀어지는 문제가 발생.
이에 대한 debugging을 하다보니 RTC register를 이용해서 조정해주어야 할 필요를 느낌.
얼마나 조정을 해야 하는지 확인하기 위해서는 ntp나 rdate가 필요.
그럴려면? 단말에서 외부 time server에 접속할 필요가 있슴.
desktop pc에 time server 설정하게 귀찮고 해서 ip forwarding하기로 결정.
간단히 개념 및 사용법 갈무리.

III. NAT에 대한 이해

    iptables를 정확히 사용하려면 iptables에서 정의하는 NAT의 개념을 알아야 한다.

    1. NAT 사용 예

    아래 그림을 기준으로 설명한다. 아래 그림에서 리눅스C에는 두 개의 랜카드가 설치되어 있고 인터넷 쪽의 랜카드(eth0) 에는 공인 IP(고정) 가 부여되어 있다.(211.217.xxx.yyy) 두번째 랜카드에는 내부어드레스(192.168.1.1)가 부여되어 있고 내부 랜(192.168.1.0/24)에 연결되어 있다.

         <그림 1>

      1) 여러 대의 피시에서 한 개의 IP를 공유하여 인터넷을 사용

      adsl 이나 케이블모뎀으로 인터넷을 연결하는 경우 보통은 1개의 IP 주소를 받는다. (여러 개를 받을 수 있는 서비스가 있으나 비용이 많이 든다.) 이때 한 개의 IP주소를 여러 대의 피시에서 공유하여 인터넷을 사용하려 할 경우 NAT가 사용된다.  우리가 IP Masquerade라 불러왔다. 그림 1] 에서 윈도우A, 윈도우B 두 대의 피시에서 리눅스C의 공인 IP(211.217.xxx.yyy)를 공유해서 인터넷을 사용하게 설정하는 경우이다.

      2) 한 개의 IP 주소(도메인네임)에 여러 대의 서버를 연결하는 경우

      부하분산을 위해 한 개의 도메인네임(FQDN)에 대해 여러 대의 서버를 운영하는 경우도 NAT를 사용한다.  즉 www.linuxlab.co.kr 도메인 한 개에 웹서버, 메일서버, FTP 서버를 따로 운영하는 경우이다. 부하평준화(load balance) 기능도 구현이 가능하다. 즉 www.linuxlab.co.kr 도메인에 대한 웹서비스를 여러 대의 서버가 담당하게 하는 경우이다. 2.2에서는 port forwarding이라 불리웠다.

      (커널 2.2에서 port forwarding 사용법은 리눅스 월드 2000년 3월호에 있다.)

      그림 1] 에서 윈도우C에서 bae@www.linuxlab.co.kr로 메일을 보내면 메일은 192.168.1.10 서버로 전달되고 웹을 검색하면(http://www.linuxlab.co.kr) 192.168.1.11 서버가 응답하게 설정하는 것이다.

      3) 투명 프락시

      학원에서 인터넷 강의를 하는 경우는 동일 네트워크에 연결된 여러 대의 피시에서 동시에 같은 사이트를 연결한다. 이 경우 프락시 서버를 설치하면 모든 피시는 우선 프락시 서버에서 방문하려는 사이트의 페이지가 있는지를 확인하고 여기에 없을 경우는 프락시서버에서 해당 사이트를 연결해 페이지를 가져다 피시에게 준다.

      프락시 서버를 사용하려면 피시의 웹브라우저에 프락시서버를 지정해 주어야 한다. 그런데 투명프락시의 경우는 클라이언트 피시의 웹브라우저에 프락시서버를 지정할 필요가 없다.

      리눅스에 투명프락시를 설정하면 리눅스를 통과하는 패킷은 자동으로 리눅스에 설치된 프락시서버 프로그램(예: squid)으로 연결된다.(리눅스를 각 피시의 디폴트게이트로 지정하면 모든 패킷은 리눅스를 통과한다.) 예전에는 리다이렉션이라고 불리웠다.

      그림 1]에서 윈도우A에서 www.debian.org의 페이지를 검색하면 리눅스C에 설치된 프락시서버프로그램(squid)이 www.debian.org를 연결해 대신 데이터를 가져다 윈도우A에 넘겨주는 설정이다. 이 글에서는 투명프락시 설정은 설명하지 않는다. Transparent Proxy with Squid mini-HOWTO를 참고 하라.

    2. iptables에서 NAT 의 분류

    iptables에서는 크게 두 부류의 NAT로 분류한다. 위의 1) 의 경우를 SNAT(Source NAT) 위의 2) , 3)의 경우는 DNAT(Destination NAT) 라 분류한다.

    SNAT는 패킷의 소스 어드레스를 변경한다는 의미이다. 즉 내부 어드레스인 192.168.1.100 윈도우A 에서 www.debian.org 리눅스서버를 연결하면 debian 서버에서 볼 때 패킷의 소스가 192.168.1.100이 아닌 211.217.xxx.yyy로 나타나기 때문이다.

    SNAT는 라우팅(경로) 결정 이후에 이루어진다.(post-routing) 패킷의 목적지 주소는 이미 정해져 있으므로(www.debian.org) 라우팅 경로는 결정되어 있고 패킷의 소스 주소가 리눅스를 떠나기 직전에 변경된다.(192.168.1.100 -> 211.217.xxx.yyy)

    DNAT는 이와는 반대다. 리눅스C에서 패킷의 목적지 주소를 변경한다. 윈도우C에서 bae@www.linuxlab.co.kr 주소로 메일을 보내면 리눅스C에 도착한 패킷의 목적지가 리눅스 B의 주소로 변경된다. 즉 패킷의 목적지 주소가 먼저 변경되고(211.217.xxx.yyy -> 192.168.1.10) 그 변경된 주소에 의거하여 새로운 라우팅 경로가 찾아진다. 즉 DNAT는 라우팅 이전 단계에서 작용한다.(pre-routing)

    post-routing와 pre-routing 은 무척 혼동된다. 즉 내가 왼쪽이라 하면 상대에서 나를 볼 때는 오른쪽이다. 결국 NAT 가 routing 보다 전에 작용하느냐 후냐의 구분으로 보면 된다. (iptables 파라메터 지정에서 이 둘을 혼동하면 에러가 난다.)


IV. IPTABLES 설정

    1. Source NAT 는 아래와 같이 지정한다.(기존의 IP Masquerade를 말함.)

    iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4

    iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6
    iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023

    -t -A 는 위의 글(2)을 읽으면 이해가 되리라고 본다. -o 는 패킷을 보내는 인터페이스 장치이다. SNAT 에서는 패킷을 내 보내는 장치(랜카드)를 지정할 수 있다.  --to 는 나가는 패킷에 부여할  소스 주소이다. IP 공유라면 --to 는 인터넷 쪽의 공인 IP 를 지정하면 된다.(지정 않아도 상관없다.)
     

    주의]

    리눅스에 NAT를 설치하는 경우 리눅스는  게이트웨이로 작용하므로 IP Forwarding이
    필요하다.
    아래 명령을 포함하는 스크립트를 /etc/rc.boot/ 디렉토리에 넣는다.(데비안)

    #!/bin/bash
    echo “IP forwarding setting..”
    echo “1” > /proc/sys/net/ipv4/ip_forward

    IP forwarding 이 활성화되었는지를 확인하려면 아래 명령을 준다.

    churlsu:/etc/rc.boot# cat /proc/sys/net/ipv4/ip_forward
    1

    값이 1이면 활성화(enable) 되어 있다.


    1.1 실제 사용 예

      1) 한국통신 ADSL을 리눅스에 연결해 인터넷을 공유(IP MASQUERADING)하는
          경우의 설정은 아래와 같다.(라이트나 프리미엄처럼 유동 IP를 받는 서비스의
          경우에만 해당한다.)

          iptables  -t  nat  -A  POSTROUTING  -o  ppp0  -j  MASQUERADE

      2) 그림1] 에서 리눅스C의 eth0에 부여된 IP(고정)를 윈도우 A,B에서 공유하여
          인터넷을 사용하게 설정하려면 아래와 같다. 전용선 또는 ADSL My IP, Multi IP
          사용시에 해당한다.

          iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to
          211.217.xxx.yyy

          * -s 192.168.1.0/24는 지정 않아도 된다.

      3) 그림 1] 에서 리눅스 C의 eth0가 케이블모뎀에 연결되어 있다면 아래처럼
          지정한다.(유동 IP)

          iptables  -t  nat  -A  POSTROUTING  -o  eth0  -j  MASQUERADE

    1.2 확인

      - iptables 설정 내용을 확인하려면 아래 명령을 준다.

         iptables -t nat -L

      - 192.168.1.0 네트워크에서 211.217.xxx.yyy 공인 IP를 공유하도록 설정한 경우
         (위의 1.1의 2) 의 출력
       

      Chain PREROUTING (policy ACCEPT)
      target     prot opt source               destination

      Chain POSTROUTING (policy ACCEPT)
      target     prot opt source             destination
      SNAT       all  --  192.168.1.0/24  anywhere       to:211.217.xxx.yyy

      Chain OUTPUT (policy ACCEPT)
      target     prot opt source            destination


    2. DNAT

    DNAT 는 부하분산이나 평준화에만 사용하는게 아니다. 간단한 방화벽으로도 꽤 유용하다. 즉 위의 리눅스C에 DNAT를 설정하여 웹서버와 메일서버를 내부 주소인 리눅스 A와 B에서 서비스 하도록 지정하고 인터넷에서 다른 연결은 리눅스C로 지정하면 리눅스 C가 간단한 방화벽 구실을 담당한다.

    2.1 사용 예

    -  그림1]에서 처럼 윈도우C에서 www.linuxlab.co.kr 의 홈페이지를 검색하려 할 때 이를
        리눅스A에서 담당하게 하려면 아래처럼 설정한다.

        iptables -A PREROUTING -t nat -p tcp  -d 211.217.xxx.yyy  --dport 80 -j DNAT --to  192.168.1.11:80

      1)  -A PREROUTING  : DNAT 는 먼저 목적지 주소를 변경하고(211.217.xxx.yyy를
           192.168.1.11로) 다음에 라우팅이 이루어진다.

      2)  -t nat  : 부하분산도 nat 기능이다.

      3)  -p tcp  : 웹(www)은 tcp 를 사용한다.

      4)  -d 211.217.xxx.yyy  --dport 80 : 들어오는 패킷의 목적지 주소가
           211.217.xxx.yyy 이고 포트번호가 www(80번) 인 경우만 이 규칙을 적용한다.

      5)  -j DNAT : destination Nat

      6)  --to  192.168.1.11:80 : 패킷의 목적지 주소를 192.168.1.11 포트번호를 80번으로
          설정하라는 뜻. 따라서 192.168.1.11 서버에는 80번 포트에서 웹서버 프로그램이
          가동 되야 한다.

    - 메일서버를 리눅스B (192.168.1.10)로 설정하려면 아래처럼 지정한다.

    iptables -A PREROUTING -t nat -p tcp  -d 211.217.xxx.yyy  --dport 25 -j DNAT --to  192.168.1.10:25

    - DNS 서버를 192.168.1.10으로 변경하려면 아래처럼 지정한다.

    iptables -A PREROUTING -t nat -p udp  -d 211.217.xxx.yyy  --dport 53 -j DNAT --to  192.168.1.10:53

    주의]  DNS 는 udp 를 사용한다.

.smi file sync 맞추기.

Personal Computer/misc 2007. 11. 23. 12:02 posted by tolkien
사무라이 참프루 20, 21화 悲歌慷慨

나데시코 보다가 sync 안 맞는 거 짜증나서
python으로 할까 하다가 익숙한 perl로 해버렸다.
gana군보다 더 원시적인 interface. (무려 hard coded!!!)
하지만, 뭐 script인데, 복잡하지 하게 하지 말자.

#!/usr/bin/perl
use Socket;
use POSIX;
require HTML::TokeParser;

open FILE, "./01.smi" || die "cannot open file";
$p = HTML::TokeParser->new(*FILE) || die "Can't open: $!\n";
#while(my $token = $p->get_tag("sync")) {
#    # $token->[$tag, $attr, $attrseq, $text]
#    print $token->[1]{start} . "\n";
#}
while(my $token = $p->get_token()) {
    # start tag		["S",  $tag, $attr, $attrseq, $text]
    # end tag		["E",  $tag, $text]
    # text		["T",  $text, $is_data]
    # comment		["C",  $text]
    # declaration	["D",  $text]
    # process instruction	["PI", $token0, $text]
    if ($token->[0] eq "S") {
	if ($token->[1] eq "sync") {
	    #print "<" . $token->[1] . " Start=" . $token->[2]{start} . ">";
	    $tmp = $token->[1];
	    $tmp =~ tr/a-z/A-Z/;

	    $start = int($token->[2]{start});
	    if ($start >= 20000) {
		$start += 9000;
	    }
	    if ($start >= 190908) {
		$start -= 94000;
	    }
	    print "<" . $tmp  . " Start=" . $start . ">";
	} else {
	    print $token->[4];
	}
    } elsif ($token->[0] eq "E") {
	print $token->[2];
    } elsif ($token->[0] eq "PI") {
	print $token->[2];
    } else {
	print $token->[1];
    }
}
print "\n";
close FILE;

한 Linuxer의 변명

Personal Computer/misc 2007. 4. 26. 13:24 posted by tolkien
우분투 6.10 + beryl 글의 트랙백입니다.

며칠동안 삽질을 하고 여러 리눅스 싸이트와 구글에서 검색을 한 후 느낀 점은
절대로 한국에서는 리눅스가 성공할 수 없다는 것이다.
이유는 ActiveX도 아니고 게임도 아니다.
바로 한국 리눅스 유저들의 배타성과 병장 정신, 그리고 영어 때문이다.

조금 극단적으로 비꼬면
며칠동안 삽질을 하고 여러 windows 싸이트와 naver에서 검색을 한 후 느낀 점은
절대로 한국에서는 windows가 성공할 수 밖에 없다는 것이다.
이유는 ActiveX도 아니고 게임도 아니다.
한국 windows user들의 친화성과 초보 정신, 그리고 한글 번역때문이다.


1. 배타성. - 끼리끼리 논다.
"Linux user들이 배타적이다."라고 느끼는 것은 다음과 같은 상황아닐까 생각되는데요.
newbie: "A는 B인가요? 어떻게 하는건가요"
모두: ... (일정시간 침묵 또는 무시)
linuxer1: "A는 B이던가?"
linuxer2: "아니. 그건 B라기 보다는 C야"
linuxer3: "그래? 난 B라고 생각하는데, 어떻게 하는거야"
linuxer2: "그건 A를 D하고, E하면 돼"
newbie: "@##@@!%!^"

windows 사용자라면 저 상황에서 친절하게 대답해줄까요?
이건 해당 OS에 익숙한 사람들 숫자.때문이라고 생각합니다.

예를들어, 시장 점유율가 사용자 숫자에 대한 대략적인 비율을 보여준다면 Linux 사용자가 5만명이면 windows 사용자는 95만명정도 될 겁니다.
newbie의 질문에 대해서 답변을 해줄 확률이 0.1%라고 해봅시다. 그렇다면 windows 사용자는 950명입니다. Linux사용자는 50명입니다. 그렇다면 web site에 질문이 올라왔을 경우, 답변을 달릴 확률은 windows가 19배 많습니다.
(여기서 각 OS 사용자중에서 web site를 보고있는 사람들의 비율, 질문이 올라오는 빈도등은 생략했습니다.)

게다가 지식은 사용자의 숫자에 기하급수적으로 증가한다고 생각합니다. 1명이 아는 지식을 10명에게 전파하는 속도보다 10명이 1000명에게 전파하는 속도가 더 빠를 것같습니다. 따라서, windows OS보다 Linux OS에 대한 질문에 적절한 답변을 달 수 있는 사람들은 더 적어지지요.

Linux user들이 배타적이다.라는 것은 단지 (Windows XP처럼) 간단한 것은 주위사람에게 물어볼 사람이 없는 것과 같은 상황이 빚어낸 오해.라고 생각합니다.

2. 병장정신 - 너도 당해봐라.
저도 최근에 ubuntu 6.10 설치했습니다. 제 옆에 있는 친구들은 beryl를 고생고생해서 설치하더군요. 주위에 뽐뿌받아서 beryl를 설치하는데 안되더군요. 주위에 그 문제점에 대해서 물어보니,
A. 설치 script 돌리면 된다.
B. 잘 모른다. 다른 사람이 도와주었다.
C. 뭔가 삽질했는데, 다시 하긴 싫다.
D. 아찌 PC의 video card는 원래 안된다. (다른 사람은 어떻게 하면 된다.라고...)
라고 하더군요. 그래서 귀찮아서 그만 뒀습니다.

아마 주위에서 beryl 설치한 사람에게 설치법을 물어보면 이런저런 답변을 들을 수 있습니다. 문제가 발생했을 때, 물어보면 답변이 거의 없을 겁니다. 아직 alpha단계인 s/w이고, 써보는 사람도 단지 써보는 정도라서 동일한 문제점을 겪지 않는 한, 심도있는 답변은 기대하기 힘들다고 생각합니다.

너도 당해봐라.가 아닙니다. 똑같은 문제를 겪은 사람들 만나지 못했을 뿐입니다.

3. 영어 - 잘 낫다.
이건 어디나 마찬가지라고 생각하는데요.
(제 생각에) Linux관련 기술 자료를 담고 있는 Web Site중에서 영어로 되어 있지 않은 Web Site수는 훨씬 적습니다.
Google에서 뭘 찾을 때, 한글, 아니면 영어를 쓰지, 일본어나 독일어로 찾지 않습니다.
아마 일본 사람들은 일본어, 영어 순으로 찾지, 일본어, 한국어, 영어 순으로 찾지 않을 겁니다. ^^

따라서, 문서 작성시 기술 문서는 가급적이면 영어로 생산합니다.
회사 홈피에 올릴 문서도 한글 문서, 번역된 영어 문서 정도지
번역된 일본어, 독일어 문서를 올리는 경우는 없습니다.

무엇무엇 해봤다.라는 사용기 또는 HOWTO 문서는 한글 문서가 제법있습니다만, 어떤 문제가 발생했을 때 이렇게 해라.라고 친절하게 정리된 Trouble Shooter는 적습니다.
그런 정리를 하는 사람중 압도적인 다수가 한글을 쓰지 않는 사람이니까요. :-)

M$처럼 많은 문서를 한글로 번역하고, MCSE와 같이 인력을 지속적으로 생산하는 등 Linux 보급에 목매는 집단이 나오지 않는 한, Linux OS내 기술 문서에서 한글 문서가 차지하는 비중은 극단적으로 작을 수 밖에 없고, 대부분의 문서는 영어로 씌어질 겁니다.

==================================================

마지막으로, "Linuxer == Linux 전도사"가 아닙니다.
그들이 사용하는 OS 또는 선호하는 OS가 Linux인거죠.

현재 Linux 사용자는
A. IT와 관련있는 직장인
- 회사와서 Linux를 처음 써봤다. 회사 떠나면 Linux랑 bye~ bye~
- 직장생활하다가, xx같은 CTO가 Linux 도입한다고 해서 그 실무를 맡은 사람
B. 학부생
- 교수가 시대에 맞지 않게 VC++대신 Unix C로 숙제를 내줌. 그래서 Linux 설치
- 취업은 해야겠구, 학원에서 embedded linux를 가르침
C. Geek.
정도로 분류할 수 있을 것같습니다.

A.B.항목에 해당하는 사람들은 우연히 사용해야할 OS가 Linux인 겁니다. 더 알고 싶지도 않고, 그저 쓰기만 하죠. Geek들은 그들 나름의 재미를 추구합니다.
Linux OS를 퍼뜨리는데 열성적인 사람들도 있습니다. 하지만, 그들은 적은 Linuxer들중에서 한 부류내의 소수입니다.

How Old Are You?

Personal Computer/misc 2007. 4. 4. 14:17 posted by tolkien
컴퓨터를 이용한 나이 측정 - 쏘~ 아찌의 글

다행히 절반정도는 N이다. --v

0. SPC 1500이란 컴을 아시나여? ( Y / N ) N
- SPC 1000은 아는 것같은데, 8bit, made by SAMSUNG, Z80
1. 실제 사용해본 적이 있나요? ( Y / N ) N

2. 테이프 레코더로 15분간 로딩해서 겜 해본적 있나요? ( Y/N ) Y
3. MSX1은 TV에 바로 연결하여 사용할 수 있다는 사실을 아시나요? ( Y/N ) Y
4. MSX2에 FM롬펙을 꽂아 '화음!!!'을 연주해 보신적이 있나요? ( Y/N ) N
5. X2는 비디오와 연결하여 자막을 달 수 있다는 걸 아시나요? ( Y/N ) N
6. 실제 자막잡억을 해본적이 있나요? ( Y/N ) N
7. basic 으로도 시리얼 제어를 통한 통신프로그램을 짤 수 있다는 걸 아시나요? (Y/N) N
8. 마이컴 100호 특집호를 가지고 있나요? ( Y/N ) 기억 안남.

9. '디스크 스테이션'을 아시나요? ( Y/N ) N
- 겜기 아닌가?
10. 한글 모아쓰기가 되지 않는 텍스트 에디터를 사용해 본적이 있습니까? ( Y/N ) N

11. 512KB 메인메모리를 가진 PC를 사용해 보았나요? ( Y/N )
- 학교 전산실습실에 있었던 놈들...
12. 도께비 한글 카드와 램상주 도께비 폰트를 사용해 보았나요? ( Y/N ) Y
13. dos = high, umb 의 의미를 압니까? ( Y/N ) Y
14. dos memory를 615KB 이상 잡을수 있습니까? ( Y/N ) Y
15. FOX dbase에서 files=40 이상이 필요합니다란 에러를 보았을때 해결할 수 있습니까? ( Y/N ) N
16. M$-DOS 3.2는 20MB 이상의 HDD를 access할 수 없다는걸 압니까? ( Y/N ) N
17. 이야기 5.XX, 아래아한글 1.5*, Implay 2.* 를 써 본적이 있습니까? ( Y/N ) Y
18. 전화가 '도수제(한통화당 무조건 20원)'일때 전화를 이용한 통신을 해 본적이 있습니까? ( Y/N ) Y
- Apple II+, 한글터미날, 선배가 짜준 통신에뮬, 1200bps modem
19. 허큘리스를 압니까? ( Y/N ) Y
20. simcga의 용도를 압니까? ( Y/N ) Y
- CGA용 겜명령어
21. EGA 를 사용해 본 적이 있습니까? ( Y/N ) N
22. 모뎀기반의 사설비비를 운영해 본적이 있습니까? ( Y/N ) N

23. 닥터 할로, 보석글 V, pctools 을 사용해 본 적이 있습니까? ( Y/N ) Y
24. *.ims, *.iss, *.rol 가 무슨 화일을 의미하는지 압니까? ( Y/N ) Y
- implay 파일 아닌가요?
25. 360KB의 5.25인치 FDD를 사용해 본 적이 있습니까? ( Y/N ) Y
- 180KB짜리도 써봤슴. 2DD
26. 2400bps 모뎀을 사용해 본 적이 있습니까? ( Y/N ) Y
- 1200bps도 써봤다니깐
27. 애들립 카드를 사용해 본적이 있습니까? ( Y/N ) Y
28. 조합형 한글과 완성형 한글의 차이를 압니까? ( Y/N ) Y
29. 조합형 한글을 써 본 적이 있습니까? ( Y/N ) Y
- 선배가 준 에물단지는 조합형 + 3벌식이었슴.
30. SX 와 DX 의 차이를 압니까? ( Y/N ) Y
- 386세대~ :p
31. 코프로세서란 말을 압니까? ( Y/N ) Y
- pxa27x에도 cp가 있다네~, 80387
32. 1배속 cd-rom을 써 본적이 있습니까? ( Y/N ) N
33. VESA slot의 용도를 압니까? ( Y/N ) Y
- VESA 얘들이 만든 거임
34. VESA 그래픽 카드를 써본적이 있습니까? ( Y/N ) N
35. ansi를 사용해본 적이 있다. ( Y/N ) Y
36. 파일을 찾기위해 '아키 서버'를 사용해본 적이 있다. ( Y/N ) Y
37. windows 3.1에서 winsock 세팅을 할 줄 안다. ( Y/N ) N
38. 동서게임체널 bbs 우수 이용자에게 보내준 SEK 무료 티켓을 받은적이 있다. ( Y/N ) N

39. 케텔 회원이었다.(Y/N) Y
40. 코텔 회원이었다.(Y/N) Y
41. 한국전력공사 비비에스 회원이었다. (Y/N) Y
42. Wing를 설치해본 적이 있다. ( Y/N ) ?
- Wing Commander 얘기하는 것인가?
43. e-ide hdd 사용을 위해 IO 카드를 산 적이 있다. ( Y/N ) Y
44. 25핀 시리얼 마우스를 사용해 본적이 있다. ( Y/N ) Y
45. 패러럴 포트로 파일을 전송해 본 적이 있다. ( Y/N ) N
46. 9핀 도트 프린터를 사용해 본 적이 있다. ( Y/N ) Y
47. '공병우'씨에게 스티커를 받아본적이 있다. ( Y/N ) N
48. arj a -r -va a:\barabogi.arj *.* 에서 -va의 의미를 아나요? ( Y/N ) N (분할압축. 용량 자동.을 쓸리가 없잖아.)
49. 삼국지 1, 수호지1, 대항해시대1 을 해본적이 있나요? ( Y/N ) N

50. 게임을 하기위해 디스켓을 깔아 끼워 본 적이 있습니까? ( Y/N ) Y
51. copy con 의 의미를 압니까? ( Y/N ) Y
- cat > hello.c
52. mdir을 사용해 본적이 있습니까? ( Y/N ) Y