익스플로러에서는 블로그가 이상하네요.

파이어폭스를 씁니다. 익스플로러보다 훨~~~~~~~~~~~~~~씬 편하고 빠르고 안전하거든요.
그래서 익스플로러로 제 블로그를 들어오는 일이 없었는데 어젠가 누가 제 블로그에 들어온 걸 보았는데 그림이 막 4개씩 뜨고 그러더군요-_-
파이어폭스에서는 제대로 보이는데.. 흐음..
수정이나 해볼까 하고 관리자로 로그인하려고 했더니 로그인도 안되는데 이건 뭘까요;;
태터툴즈의 버그일까요? 이런 버그라면 전 왠지 환영하고 싶은..(…;;;)
파이어폭스 안써보신 분은 한 번 써보세요~ 🙂

수강신청 화나네요.

20분째 로그인 시도중입니다.
페이지를 찾을 수 없습니다 오류가 오늘따라 더 짜증스럽네요.
로그인조차 할 수 없다니-_-+

컴퓨터 공학 전공 커리큘럼부터 시작해서 맘에 드는 게 없는 우리 학교입니다.
돈은 왜 또 그렇게 많이 쳐받는지…
학생회는 왜 또 그렇게 고분고분한지…

누워 침뱉기지만 고교생이 우리 학교 오고 싶다고 하면 뜯어말리고 싶습니다.

..전 성균관 대학교를 다닙니다.

GRUB 삭제하고 윈도우즈XP로만 부팅시키기(복구 콘솔)

1. XP가 실행 중인 상태에서 설치 CD를 넣고 “시작”/”실행”/”D:\i386\winnt32.exe /cmdcons”
2. 복구 콘솔 설치
3. 리부팅
4. 복구 콘솔 선택
5. Administor 로 로그인
6. “fixmbr”
7. “fixboot”
8. 리부팅
9. “내 컴퓨터”에서 우클릭 후 “속성”
10. “고급” 탭의 “시작 및 복구”란의 “설정”
11. “시스템 시작” 에서 “편집” 버튼
12. “[operation systems]” 에서 복구 콘솔이 있는 라인(아마도 맨 마지막) 삭제
13. “파일”/”저장” 후 종료
14. C 드라이브의 “Cmdcons” 폴더와 “Cmldr” 파일 삭제

당연히 리눅스 파티션(EXT3와 SWAP)은 지우고 합친 후 NTFS나 FAT로 포멧해서 사용한다.

Gaim 플러그인과 자테온(Jateon)

네이트온을 안쓰고안쓰다가 결국에는 쓰게 되어 버렸습니다.
학과 프로젝트시나 잠깐잠깐 썼었는데 SSM 되면서 SSM 멤버들끼리 공식적으로 네이트온을 쓰더군요. “대세는 네이트온!” 이란 말에 흥! 했었는데 결국 이렇게 되는군요-_-;;

근데 이 네이트온이란 메신저가 윈도우즈 기반에서만 동작합니다. 제가 원래 썼던 MSN 메신저의 경우 Gaim 에서 MSN 용 플러그인을 사용할 수 있었기 때문에 윈도우든 리눅스든 어디서나 메시지 주고받기나 간단한 파일전송 등의 기본 기능은 사용할 수 있었습니다. 근데 네이트온은 리눅스용 클라이언트를 공식적으로 제공하지 않기 때문에 사용할 수가 없습니다. 이 것 때문에 리눅서들이나 맥 유저들의 비난을 받고 있기도 하죠.(관련글)

그런데! IRC의 #ubuntu에서 뵈었던 Kfmes 님께서 자바 기반의 네이트온 클론을 만들고 계십니다. 전에 개발중이신걸로만 알고 있었는데 이게 오픈 베타로 전향되면서 인터넷 상에 꽤 파장을 일으켰더군요. 좋은 일입니다. 🙂 기본적인 문자/쪽지 보내기 기능에 문자보내기까지 구현이 되었다고 합니다. 아직 써보지 않았었는데 한번 써보아야겠어요. 🙂 자바 기반의 프로그램이므로 자바 VM을 구동할 수 있는 환경이라면 어느 환경에서나 쓸 수 있는 점이 장점이겠네요. 역시 자바인가요 ㅎㅎ.

그런데 이 것뿐만이 아닙니다. 역시나 #ubuntu 채널에서 뵈었던 헤즈님이 게임메신저의 네이트온 플러그인을 개발 중이십니다. 1 년전쯤 마음에 드는 아는 여자분이 네이트온을 사용한다고 하여 리눅스에서도 네이트온을 쓸 수 있도록 해야겠다! 고 마음먹으셨던게 개발동기인 것으로 알고 있습니다. (그 이후 개발이 왜 뜸해졌던가는 대충 예상하실 수 있겠죠? 좋은쪽과 나쁜쪽 중 나쁜쪽입니다;) 오늘 보니 이 플러그인도 인증과 리스트를 처리하는 부분까지는 완성된 모양입니다. ㅎㅎ

두 분께 정말 박수를 보냅니다.
서로 소스공개도 하시고 같이 하셨으면 더 좋겠어요~ ㅎㅎ. 힌트만 주고 받는 것 말고요~ 😉

전 게임을 자주 쓰므로 게임 플러그인이 하루빨리 완성되기를 손꼽아 기다리고 있습니다. 그 전까지는 자테온을 열심히 써야겠지요. ㅎㅎ

p.s : SK는 정말 괘씸합니다.

이곳은 gpl 프로그램이 상업적 용도로 사용되는것을 지지합니다?

오늘 우분투 포럼에 가볼 생각으로 우분투 한국 사용자 모임(http://ubuntu.or.kr)에 들어가 보았습니다. 첫페이지에서 뭔가 묘한 위화감을 느끼고 뭘까 하고 고민해보니 처음 문구가

“이곳은 gpl 프로그램이 상업적 용도로 사용되는것을 지지합니다.”

로 바뀌어 있더군요. 바뀌어 있던 페이지는 여기서 보실 수 있습니다.
얼마전 첫페이지가 질문글로 바뀌어 있던 만행을 본 후라 뭔가 모르게 욱!했습니다.
원래대로 다시 고쳐놓긴 했습니다만.. 씁쓸합니다.
게다가 더 씁쓸한 것은 우분투 포럼에 접속하자 다음과 같은 화면을 보여주는 것이었습니다.

(수정) IRC 의 #ubuntu 에서 이야기를 꺼냈더니 바로 복구되었습니다 🙂

int. 하면 무엇이 떠오르시나요?

int. 하면 뭐가 떠오르시나요?

문득 한컴 사전을 띄워놓고 코딩작업을 하던 중에(한컴 사전은 마우스 포인터 위치에 있는 문자열의 사전적 의미를 보여줍니다.) 한컴 사전에 int. 의 뜻에 대해서 나오고 있더군요.

한컴 사전에서 int.에 대해서 보여주는 것은 다음과 같습니다.

int.
interest; interim; interior; interjection; internal; international; interpreter; intransitive.

저는 Machine-dependent 한 정수 자료형이 떠오릅니다만, 여러분들은 어떤 것이 떠오르시나요?(마지막에 붙은 .은 잠시 접어두죠. 😉 )

변수 초기화의 중요성

변수를 선언하고 정의할 때 초기값을 넣어 초기화한다.

기본 중의 기본입니다. 이 말을 왜 하는가 하면-_-;;

아르바이트로 VC 6로 프로그램을 하나 작성중인데 DEBUG 모드에서는 없던 문제들이 RELEASE 모드에서 빌드한 후에 마구 터져나오더군요;
역시나 쓰기전에 초기화하지 않은 변수들때문이었죠.

한가지는 윈도우 크기를 콤보박스의 선택에 따라 바꾸는 기능을 넣고 싶어서 원래 창의 크기를 m_Rect 에 기억시켜뒀다가 선택에 따라 m_Rect.Height() <-> m_Rect.Height() + 30 으로 창의 높이를 변경하려고 했습니다. 헤더에 CRect m_Rect; 를 선언하고 다음과 같이 작성했죠.

   CRect rect;
   GetWindowRect(&rect);
   if(m_Rect.Height() == 0)    {
       m_Rect = rect;
   }

이게 제대로 동작하려면 당연히 초기에 m_Rect.Height() 가 0이어야합니다.(!)
생성자에 넣어야지. 라고 생각하고 까먹었던거죠(…) 이게 없던 결과로 m_Rect.top 과 m_Rect.bottom 에는 -8203…어쩌고 하는 값이 들어가서 윈도우가 안보이더군요. 전 프로그램이 뻗은 줄 알았어요-_- DoModal() 로 띄워둔 창은 안보이고 아래 윈도우에 Focus() 가 가지 않고 모든 입력을 거부하고 있으니 어디서 무한루프를 도나? 하고 생각했던거죠.
이 문제는 생성자에 다음을 넣음으로써 간단히 해결됐습니다-_-

   m_Rect.top        = 0;
   m_Rect.bottom    = 0;

또 다른 문제는 같은 역할을 하는 double형 값을 입력받는 Edit 창 10개를 만든 후 개수에 따라 Visible 한 Edit의 개수를 변경해서 값을 입력받는 것이었습니다. 먼저 헤더에

   double    m_dDip[10];
   double    m_dDipDirection[10];

과 같이 선언하고, DoDataExchange 변수에

   DDX_Text(pDX, IDC_EDIT_JOINT_DIP01, m_dDip[0]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP02, m_dDip[1]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP03, m_dDip[2]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP04, m_dDip[3]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP05, m_dDip[4]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP06, m_dDip[5]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP07, m_dDip[6]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP08, m_dDip[7]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP09, m_dDip[8]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP10, m_dDip[9]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_01, m_dDipDirection[0]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_02, m_dDipDirection[1]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_03, m_dDipDirection[2]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_04, m_dDipDirection[3]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_05, m_dDipDirection[4]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_06, m_dDipDirection[5]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_07, m_dDipDirection[6]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_08, m_dDipDirection[7]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_09, m_dDipDirection[8]);
   DDX_Text(pDX, IDC_EDIT_JOINT_DIP_DIRECTION_10, m_dDipDirection[9]);

와 같은 코드를 작성했더랍니다.

근데 다이얼로그를 띄우면 “숫자를 입력하세요” 란 메시지가 나타나면서 IDOK를 거부하는 겁니다-_- 역시나 멤버 변수의 값들의 초기화 문제 때문이었습니다.
이문제도 생성자에 다음을 넣어서 간단히 해결되었습니다-_-

   int i = 0;
   for(i = 0; i < 10; i++)    {
       m_dDip[i]            = 0;
       m_dDipDirection[i]    = 0;
   }

아고.. 암튼 삽질의 연속입니다. 역시 기본을 충실히 지키지 않으면 언젠가 댓가가 따르는 법입니다. 전 그 댓가로 3시간 자고 일어나서 전화받고 깨서 버그 잡고 있습니다. ㅡㅜ

증명사진

살다보면 증명사진 필요한 일이 꽤 많은 것 같습니다.
증명사진을 스캔해서 주어야 하는 일이 생겼는데 미루고 미루던 증명사진 찍기를 드디어 해야만 할 것 같습니다.
사실 정보처리기사도 작년에 붙었는데 증명사진 가져오라는 공지에 미루고 미루다가 아직까지 찾아오지 않았다지요(…) ..그거 지금 가도 주겠죠?;

암튼 사진찍으러 얼른 가야겠어요. 설 전에 참 바쁘네요!

모두들 새해 복 많이 받으세요!

어라.. 내 글이 왜 KLDP 위키 처음에?;

습관대로 KLDP에 접속했는데 첫 화면에 위키 최신글에 dasomoli/SubVersion-Installation이 있길래 깜짝놀랐습니다. 해당 글은 예전 회사에 다닐 때 서브버전 설정을 했던 경험을 토대로 셋팅 방법을 적어놓은 것입니다. 글의 소개에서도 알 수 있지만 개인적으로 정리해 둔 글이었는데 다른 분들이 참고했었나 봐요. 글 속의 오타인 “다룬로드” 를 “다운로드”로 변경해서 누군가가 수정해 놓았네요.

아무리 사소한 글이라도 제 글이 누군가에게 도움이 된다는 건 참 기분좋은 일인 것 같습니다.

제가 지금 기분이 좋거든요. 🙂