여러가지 방법이 있겠지만... 가장 단순 무식한 방법을 설명하겠다.(그래~ 나 공대나왔다~)
팔레트를 미리 만들어 두고 그 팔레트에 맞춰서 그림을 그리는 방법인데, 절차는 간단하지만 약간의(?) 그림 솜씨와 (도트)노가다가 필요하다.
파일-대화상자-색상표 메뉴를 사용해서 색상표 창을 연다. (이미 있다면 안해도 된다.)
색상표의 단축메뉴를 이용해 새 색상표를 만든다.
새로 만들어진 색상표를 더블클릭해서 색상표 편집기 창을 연다.
전경색이나 배경색을 원하는 색으로 지정하고, 색상표 편집기의 단축메뉴를 이용해 배경/전경에서 새 색상을 추가한다.
위의 표에 나와있는 인덱스를 확인하면서, 16개의 색을 추가한다.
자 이제 팔레트가 준비되었으니, 그림을 그려보자.
파일-새로를 선택해 640x480 이미지를 만든자.
이미지-모드-인덱스됨을 선택하고, 사용자 색상표를 선택한 다음에 위에서 만든 팔레트를 지정한다.
아! 최종 색상표에서 사용안한 색상 지우기를 선택하면 안된다! 잊지말자!
자~ 이제 솜씨를 발휘할 시간! 16색 크레용으로 멋진 그림을 그려보자. 잊지마라~ 그 중 6색은 정해진 용도가 있다!
다 그렸으면 원본은 xcf파일로 저장하고, 파일-사본 저장을 선택해서 png로 저장하자. (이건 필수 조항은 아니지만 원본에 대한 예의 같은거다. 가끔, 포샵질해서 jpg로 저장하고, 그걸 다시 포샵질해서 jpg로 저장하는 일을 반복하는 만행을 저지르는 사람들이 있다.)
어디서 주워온 이미지를 부트 스플래시로 쓰고 싶다고? 물론 나도 그렇다. 하지만 이미지의 품질을 유지하려면 꽤 많은 시행착오가 필요하다. 여차하면 도트노가다도 불사해야한다.(640x480x16... 어디서 많이 들어본 조합아닌가! 그렇다.. 도트 노가다의 전설이라는 DOS시절 엘프의 미연시들이 쓰던 바로 그 해상도가 되겠다!)
어찌어찌하여 640x480 16색 png파일을 만들었다면 이제 uslash에 적용할 시간~
묻지마라. 나도 여기 나오는 명령이 뭐하는 건지 모른다. 그냥 시키는 대로 했을 뿐... 다만 iolo-usplash라는 건 위에서 만든 png파일의 이름이라고 생각하면 되겠다.
난 일단 인터넷 뱅킹을 하지 않고... 오피스는 큰 문제가 없고... 개발은 윈도용 인스톨러 작업은 역시 윈도에서 할 수 밖에 없고... 쇼핑은 알다시피... -.-; 마지막으로 게임인데... ?MMORPG는 하지 않으니 별 문제없고... 유일하게 하는 게임(?)이 바둑인데...
이용하는 인터넷 바둑 사이트는 대쉬바둑(http://dashn.com)인데, 겪어본 무료 바둑 사이트 중에선 가장 매너가 좋은 곳이다.
여하튼 이 곳을 이용하기 위해서 윈도로 부팅할때가 많았는데... 오늘 일도 안되고 하길래 wine 삽질을 잠깐 해서 리눅스에서 띄우는데 성공했다.
?UbuntuBreezy가 정식 릴리즈를 한 달 남짓 남겨둔 상태에서... GNOME 2.12는 참기 힘든 유혹-.-;;;
결국 참지 못하고 사고를 쳤는데... 이게 대형 사고다.
dist-upgrade하려다가 엄청난 업그레이드 패키지 목록을 보고 새로 깔기로 했다.
데일리 스냅샷을 찾지 못해... 마일스톤 4 버전을 다운 받아서 깔았는데... 이것이 사고의 시작...
먼저 노트북... 파티션 설정하는 화면에서... 실수로(!) LVM어쩌구 하는 메뉴에서 엔터... 그리고 사고 치기전에 뒤로 돌아가기를 했다고 생각했으나... 뭔가 이상했다. 내 노트북의 60G 하드디스크는 ?FAT32 30G와 ?EXT3 30G여야 하는데... 이게 뭐냐... 쪼매난 ?EXT2 그리고 확장 파티션 하나! ㅠ.ㅠ
잉... 뭐가 잘못된거지? 사태파악도 제대로 못한채... 일단 옆에 있는 데스크탑에 깔기로 했다. 이것이 사고의 확대 재생산!
파티션 잡기까지 무시히 통과... 노트북의 오류가 내 실수였다고 생각할 무렵... 모니터에 빨간 창이 떴다... 말하자면 설치 더 못하겠다. 포기해라... 는 얘기 ㅠ.ㅠ
일단 윈도로 부팅해서... 뭐가 문제인지 좀 알아보자...는 생각으로 리부팅... 헉!
MBR이 날아갔다... 노트북도 리부팅... 역시 MBR이 날아갔다...
GokLive 시디로 부팅해서... 어떻게 고쳐보자... 헉! 부팅이 안되네... CD깨졌나...ㅠ.ㅠ
그렇지.. 저번 코페때 남은 시디... 어딨더라.. (뒤적뒤적)
그렇게 4번째 시디로 부팅에 성공... xchat으로 #gnome에 들어가 무차별 물음표를 날렸다.
그리고 ?mithrandir님으로 부터 gpart라는 녀석을 알게되었다. 우분투 포럼에서... 마일스톤 iso를 쓰지말고 효리를 깔고 바로 dist-upgrade하라는 글도 확인했다.소 잃고 외양간 고친다더니... OTL
프로젝트에 참가하기로 한 사람은 나, ?nohman, ?jachin, 그리고 ?tcheun 님 네 명이었다.
?jachin님은 ?권순선님의 학교 후배인지라 만만하게(?) 이리 저리 끌려다니고 있었고, ?nohmad님은 아직 나타나지 않았다.
KnoppixKo로유명하신 ?tcheun님은 예상 밖으로 연륜이 있는(?) 분이셨고, 그것이 더욱 시작을 어렵게 만들었다.
다소 서먹하게 이야기를 진행해 나가는 동안 ?nohmad님이 오셨다. 둘 보다는 확실히 세 명이 덜 서먹하다.
때 마침(!) 기념 티셔츠가 도착해서 어색한 분위기도 피할 겸, 카메라 셔터를 눌러댔다. 티셔츠의 제작을 담당했던 ?prdd님은 손해보는 장사라는 것도 까맣게 잊어버리고 마냥 즐거워(딩!딩!딩!) 보였다. 모두들 즐거워 보였다. 뭐 나도 약간의 금전적 타격은 있었지만, 티셔츠를 받고 환하게 웃는 사람들을 보고 있는 동안은 그런 것들이 생각나지 않을 만큼 즐거웠다.
?LiveCD 부팅 후에 로케일과 키보드를 묻는 화면을 없애지 못해 헤매다가 ?ganadist, ?krisna님의 도움(사실, 두 분이 다 했고 나는 구경만 했다)으로 debian-installer를 파헤친 끝에... 나의 허무한 실수였음이 드러났다.
뒤늦게 속도를 올리기 시작했지만, 결과를 보지도 못한채 ?tcheun님은 집으로 돌아가시고, 어느새 자정을 훌쩍 넘겨 있었다.
?CodeFest의 하일라이트 닭+맥주 파티가 있었다. 이틀 연속 밤샘하는 중이라 몇 잔에 취기가 오르기 시작했다.
이어진 ?EnemyTerritory 이벤트로 알콜을 좀 해독시키고, 잘 사람들을 숙소로 보냈다.
이제 부터 전투 시작!
뒤늦게 시동이 걸렸지만, 몸이 말을 들어주지 않았다. 편도선이 부어오르고 있었다. ?fender님이 ?LiveCD에 사용할 배경 벽지와 그놈 스플래시 이미지를 만들고, 사용자의 기본 설정을 꾸리는 동안 나와 ?nohmad님은 차근 차근 짚어나갔다.
둘 다 약간은 몽롱한 상태였으므로 순간의 타이핑 오류로 모든 것을 망칠 수 있는 상황. 마치 페어 프로그래밍을 하듯이 페어 패키징을 해나갔다. 한쪽이 오타를 내면 다른 쪽이 지적하고, 역할 교대하기를 수차례 반복.
날이 훤히 샌 다음에야 cloop이미지를 만들기 시작했다.
그렇게 마무리 되나 보다 했던 행사가 마지막 태클을 걸어왔다. 아침 식사시간이 다 끝나가는데 아무도 안온다는 것이다. 내가 알고 있는 아침 식사 시간은 7:30~8:30... ?onion님은 그것을 9시라고 알고 있어서 재확인했지만 9시로 공지되었다.
몸도 마음도 지친 상태라 약간의 짜증을 실어서 양파옹에게 원망의 화살을 날렸다. 그리곤 어찌돼었는지 모른다. 말하자면, 그 원망의 화살은 책임회피를 위한 선제공격이 었던 셈이다. 내가 자주 써먹는 찌질한(?) 자기 방어 수단이다.
배터리 방전된 듯한 양파옹의 OTL을 보고 있으니.. 맘이 편칠 않다(이게 찌질한 자기 방어 수단의 나쁜 점이다).
프로젝트도 이제 막바지... CD를 굽고, 시디 표면에 붙일 스티커는 ?prdd, ?kkanari님이 맡아 주시기로 했다. ?비행소년님에게도 뭔가 맡겼던거 같은데 이틀 밤샘의 여파로 정신이 혼미한 상태라 file not found.
행사의 마지막 태클에 이어, 프로젝트에 마지막 태클이 들어왔다. 시디 표면에 붙이 스티커 2장이 들어가는 A4한장 인쇄에... 2500원! 시디에 붙일 스티커 한 장에 1250원이라는 얘기가 된다.
30장(시디 60개 분량)만 인쇄해도 725000원! 배보다 배꼽이 크다는 말이 이럴 때를 두고 하는 말인가... OTL 시간이 없는 관계로 머리를 맞대고 고민과 논쟁을 거듭했지만, 그냥 찍는 것으로 결론 났다. 이럴 땐 뽀대드리븐 의사 결정이 필요하다.
긴 시간은 아니었지만, 오랜 만에 열정만으로(그리고 약간의 금전으로) 만들어낸 결과물이다. 열정만으로 하는 일이라면 아직도 이틀 밤은 너끈히 샐 수 있다는 사실이 작은 위안이 된다.
CD라이터가 달린 모든 노트북을 총 동원해 시디를 굽고, 또 몇 명이 스티커를 붙이고, 또 몇 명이 A4지를 접어서 CD케이스(?)를 만들었다. (물론 그 와중에 개구리를 접은 사람도 있었다.)
GokLive프로젝트의 첫번째 CD를 나눠주는 것으로 다섯번째 ?CodeFest는 마무리되었다.
몸은 말을 듣지 않았지만 마음은 한결 홀가분 했다. 행사장이 었던 교육문화회관과 주변은 북새통 그 자체였다. 이틀 동안 에어콘의 보호 속에 사는 동안, 서울은 올해 최고 기온을 기록하고 있었다.
?낭만고양이 ?fender를 따라 양재역까지 걸어가기로 했다. 일행이 양재천 숲을 따라 재잘거리며 걸어갔다. 내 이마에선 식은땀이 주르르 흐르고, 눈이 스르륵 감기더니, 하늘이 노랗게 나를 향해 추락하고 있었다.
비몽사몽간이라 일행이 누구누구였는지 조차 정확히 기억이 나지 않는다. ?fender, ?ganadist, ?nohmad, ?stania, ?setzer 그리고 또 누가 있었던것도 같은데... 여하튼 대단한 ?낭만고양이들이다.
여하튼 양재천을 빠져나와 ?nohmad님의 쏘신 캔디바의 힘으로 구사일생! 집으로 귀환! 역시! 집이 최고다!
더 짧게 적을 수도, 더 길게 적을 수도 있었겠지만 이 정도면 충분하다.
행사가 지나고 이제 일주일이 지났다. 더이상 ?CodeFest에 대해서 얘기하는 사람이 없다. 만삭의 몸으로 행사에 같이 오신 ?권순선님의 부인은 아기를 낳은 모양이다. May the "Peace" be with you~
GnomeKorea에서 운영을 대행(?)한 관계로.. 하는 일도 없이 운영진 꼬리표를 달고 동분서주했다.
전날인 22일 10시쯤 ?ddt님과 같이 갔는데.. 지도만 보고 별 생각없이 시민의 숲에서 양재천을 따라 걸어 갔는데... 만만한 거리가 아니었다. 그나마 번잡한 도로가 아니어서 다행.
새벽 4시까지 데스크탑들에 우분투를 설치하고 ?EnemyTerritory설치까지 마치느라 나름대로 바빴다. 6명이 마지막까지 남았는데 ?setzer님을 뺀 나, ?fender, ?onion, ?stania, ?ddt 다섯 명이 미리 예약해둔 3인실에서 잠을 청했다. 위에서 부터 끊어서 바닥에 자고 나머지는 침대... 사실 바닥이 편하긴한데, 카페트때문에 계속 기침이 나올려고 해서 고생했다. 잠이 들 무렵 ?onion님의 탱크에 시동이 걸렸고, 나는 1시간여를 눈 감고 헤매다가 결국 포기하고 탱크 소리를 피해 침대와 침대 사이에 몸을 뉘었다. 그러나 그 좁은 방에서 피하면 얼마나 피하겠는가... 힘겹게 잠이 들 무렵, 요란한 알람 소리에 좌절할 수 밖에... OTL... 서너개의 휴대폰들이 일제히 목에 핏대를 세우고 있었지만 아무도 일어나지 않았다. 특히 ?stania님의 신형 휴대폰은 기어이 주인님을 깨우고야 말겠다는 듯, 연거푸 확인을 눌러도 잠시 후 다시 울어대는 충성심을 보여주었다.(교훈: 너무 좋은 휴대폰 쓰지 말자...)
그렇게 행사 날은 밝아왔고...
로비에서 롤케익과 모카케익을 하나씩 싸 들고 행사장으로 갔다. 장비 리스 업체(?)에서 네트웍 작업을 하고 있었는데... 금방 해결될 거 같던 네트웍은 개선이 기미를 보이지 않았다. 네트웍은 오락가락.. 시간은 점점 흘러 행사 시작 시각인 10시... 불행인지 다행인지 아무도 나타나지 않았다. 결국 공유기의 문제라고 잠정 결론 내리고 데스크탑 하나를 NAT장비로 사용하기로 했다. 어느새 행사장엔 20여명의 참가자들이 들어와 있었다. 에어콘의 찬 바람 속에서도 등에는 식은 땀이 주르륵... 시간을 벌기위해 12시 땡과 동시에 참가자들을 식당으로 끌고 갔다. 밥알을 세면서 시간을 끌라!는 특명과 함께... 운영진들이 2교대로 점심을 먹는 동안 ?mithrandir님이 NAT의 설정을 마쳤고 차츰 안정화 되었다. 시간은 이미 1시를 넘어가고 있었다.
네트웍 때문에 우왕좌왕하느라 다른 것은 돌아볼 틈이 없었다. 나와 KIPA의 재경씨가 근처의 이마트에서 허겁지겁 음료수와 간식, 그리고 네임택을 사들고 오는 동안 행사는 이미 시작되어 있었다.
겨우 한 숨 돌리는 찰라 ?fender님의 전언... ?tcheun님이 혼자 놀고(?)있다는 것이다. ?tcheun님은 내가 맡은 GokLive 프로젝트에 참가하신 분인데... 이번 행사 최연장자였다. 담배 한 개피 물고 커피 한 잔을 마신 다음 프로젝트 팀의 테이블로 갔다.
이 폴더를 열어 본 사람은, 10개 컴퓨터에 10개의 폴더를 10일 내에 만들지 않으면 재수 없을 껄?
이런 얘기가 아니다. 알집의 알폴더 기능을 Nautilus에서 쓸 수 있게 하는 ?NautilusExtension의 이름이다.
이름을 뭘로 할까라고 묻는 ?kz님의 질문에 Wheel_of_Fortune을 패러디해서 wheel of folder라고 했더니, ?kz님은 한 번 더 으용해서 FolderOfFortunes (soldier of fortune???)이라고 결정을 보셨다. 그 때까지는 나는 악마의 꼬임에 넘어가고 있다는 사실을 알지 못했다.
결국 folderoffortune프로젝트가 만들어지고, 무림 절세 고수 ?ganadist님이 합류... ?CodeFest쓰러운 삽질이 시작되었다. 눈 깜빡하고 나면 0.0.2, 0.0.3... 나는 고수들 틈에 하릴없는 깍두기 신세 :'(
여하튼, 순식간에 첫번째 퍼블릭 릴리즈 완성... ?kz님도 대단! 존명! 휴가 나와서... 이런 삽질이라니...-.-; 덕분에 나도 열혈모드로 변신!
오랜 만에 MoniWiki 삽질을 좀 했다. 이건 나중에 다시 적기로 하고... (덥다. 큰일이다. 이 노트북으로 여름을 어떻게 버틸것인가...)
engdic을 기억하는가!
그렇다! 지금처럼 웹에 공짜 영한 사전이 넘쳐나기 전, 리눅스에서 쓸 수 있는 거의 유일한 영한사전 프로그램이었다.
요즘 Ultima4 ?TheQuestOfTheAvatar를 짬짬이 하고 있는데, 허... 이 영어가 장난이 아니다. 이걸 내가 어찌 중딩때 했는지 - 그것도 푹 빠져서 - 이해가 안될 정도다. 특히 넘쳐나는 고어체 영어들은 당황스럽니다. 야후 영한 사전을 쓰다가 아무래도 불편해서 로컬에서 쓸 수 있는 만만한 영어사전 프로그램을 찾기 시작했는데...
kldp.net에만 5~6개의 영한사전 프로젝트가 있다. 대부분 야후 영한 사전에서 추출한 데이터를 사용하거나 야후(혹은 엠파스) 영한 사전의 웹을 크롤링하는 형태인데... 뭔가 2% 부족한 느낌. ldic은 gtk1용이라 곤란, ldic2는 프로젝트 중단 상태, pydic은 내가 기피하는 wxWindows를 쓰고, ?fender님이 만드신 argosdic이 제일 맘에 드는데, ?FireFox띄우고 야후 영한 사전 쓰는 거보다 더 묵직하다. gDick과 wdic은 크롤링 형태라 조금 꺼려진다.
그러다가 예전에 썼던 engdic이 생각 났다! 그래! 그거면 충분하지! 영문학 논문 쓰는 것도 아닌데!
그런데, 그게 만만치 않다. 워낙 오래된 프로그램이라 패키지는 고사하고 소스 타르볼 찾는 것도 쉽지 않다. 제작자의 홈페이지는 물론이고(누군지도 모른다), 주 배포처이던 debian.or.kr조차 엉뚱한 곳 어떻게 어떻게 찾아서 컴파일하고 설치하고 실행!
아뿔사... euc-kr이었다. 세그폴트까지 내며 뻗어버린다. 사전은 각 알파벳별로 하나의 파일이고 gzip으로 압축되어 있다. 풀어보니 다행이도 일반 텍스트 파일이다. iconv로 변환하면 되겠지 하고...
zcat a.dic.gz | iconv -f euckr -t utf8 > a.dic
어랏... 이상한 문자가 있다고 게긴다. 여기저기 뒤적여 보니 한자만 나오면 깨진다.
에러 무시하고 하면 안되나라고 투덜거리며 자바로 간단히 몇줄 짰다. 흠... 되는 군~ 하면서 IRC에서 투덜거리는 순간, ?cwryu님이 -c 옵션의 존재에 대해 말씀해주신다. 그렇다... RTFM! :'(
사전 데이터를 다 변환하고, 소스에 있는 한글도 변환하고 다시 컴파일해서 설치! 대만족 - 2%!!
색다른 개념의 자바 GUI 툴킷... 정확히 말하면 GTK의 자바 바인딩인 JavaGnome이 드디어 윈도에서도 돌아간다.
사실, 자바가 포팅되어 있고, GTK가 포팅되어 있다면 어디서나 돌아가게 할 수 있지만, 윈도에서 ?CygWin이나 MinGW없이 돌아간다는 것은 큰 의미를 가진다.
(물론 GTK 런타임(glade-win32프로젝트의 것)은 따로 깔아줘야한다.)
?UbuntuWarty에서 ?DebianSid로 옮긴지 몇 달 되지 않았고, 사실 별 불만없이 잘 쓰고 있었다. 근데, ?Gnome 2.10이 문제였다. 왜! 어째서! 올라오지 않는 거냣! ?XOrgServer는 왜! 어째서! 올라오지 않는 거냣!(이제, fglrx도 이제 잘 되는데...)
그러다가, 오늘 ?UnbuntuHoary가 스테이블로 릴리즈됐다는 소식을 듣고 움찔.... 결국 순식간에 새로 설치... 해 버렸다. 생생한 설치 리포트! 딴지식 글쓰기에 알러지가 있는 분은 그만 긁고, 지금 이 페이지를 떠나시라~
설치는 큰 문제가 없다. 내 노트북의 그래픽카드(혹은 DDC)문제인지, 그래픽모드에서 텍스트모드(정확히는 프레임버퍼 콘솔)로 돌아오질 않았지만... 다행이 노트북의 스케일키를 눌러주니 해결된다. 그냥 눌러본건데! 우연히 쉽게 해결하긴 했지만, 분명 문제가 있었다. (N)
흠 파티션 설치가 좀 아리까리하게 되어 있다. 전체 디스크를 자동으로 하는 파티셔닝이 기능이 있으니 별 문제 없을지도... 그러나 역시 윈도와 같이 쓰는 사람이 많다는 것을 고려해 줘야 한다. 현실은 현실! 설치가 GUI로 진행되는게 아니라서 좀 어려워 보이긴 하지만, 물어보는 것이 별로 없어서 Windows2000보다는 쉽다. 물어보는 것을 최소화 한 것은 좋은 생각이다. 설치하고 나면 어떻게든 한다. 설치를 못해서 윈도로 부팅해서 IE로 해결책을 찾는 일은 피해야 한다. (Y)
사실, OS 설치에서 제일 어려운 건 호스트이름 정하는 거다. 저번에는 iolo가 살고 있는 britania를 호스트이름으로 했는데, 너무 길어서 귀찮았다. 그래서 이번엔 호스트이름도 iolo!
일단 설치 성공! 첫 부팅... 순조롭게 진행... CD에 포함되어 있지 않는 다국어 지원 패키지들 설치... 문제는 기본 리파지터리인 kr.archive.ubuntu.com이 너무 느리다. 이거 때문에 거의 30분 이상 잡아먹고... 지루한 텍스트 화면의 무의미하게 스크롤되는 텍스트들... 게다가 한글은 네모로 보인다. (N) 오랜 기다림 끝에... 짜잔! ?gdm 등장!
그런데, 저 쭈글쭈글한 글꼴은? 아! 또 백묵 바탕이다.
여기서 첫번째 난관! 못난이 글꼴! 이건 일반 유저에게 나쁜 첫인상을 심어준다! (N) 일단 빨간줄만 쳐놓고 넘어간다...
로그인 후, 제일 먼저 실행한 프로그램은??? 당근! ?XChat이다. 다행스럽게 기본으로 설치되어 있다. :-D #gnome가서 자랑해야쥐라는 일념으로... 후다닥! irc.hanirc.org를 설정하고 #gnome에 조인! 아뿔사! 한글 입력!
두번째 난관! 한글 입력! 당근 최소한의 입력기가 설치되어 있어야 한다. ?iiimf건 ?scim이건 ?uim이건 ?xim이건... 뭐라도 있어야 한다! ?openoffice-l10n-ko를 설치해주는 배려를 할 정도면 ?nabi나 ?imhangul은 기본! (N)
이건 그대로 넘어갈 수 없겠다싶어... 설치를 하기로 했다. 단! 터미널과 텍스트 편집기(vim, gedit등)를 사용하지 말것! 일단 메뉴를 뒤적거렸다. 시스템 메뉴에 Add/Remove Programs라는 녀석이 눈에 띈다. 일단 실행해보자. 엇, synaptic이 아니네! 하지만 어떠리, 떡 본 김에 제사 지낸다고 devhelp, glade, inkscape 등을 선택해서 설치하라고 다. 그런데, 문제는... 아! kr.archive.ubuntu.com가 겁나게 느린거다! 재빨리 취소! ''엇! synaptic이네!'
그렇다! 여기서 기쁨 하나! ?gnome-app-install이라는 불리우는 이 녀석, 뭐 뻔한 프로그램이지만 일반 사용자에게 굉장히 유용할 것 같다. 그리고 고급 모드를 눌러보면, 사랑스런 ?synaptic이 뜬다! 오옷! (Y)
#gnome에 문의 한 결과 ?까나리님께서 mirror.ubuntu.or.kr이라는 리파지터리를 알려주셨다. synaptic으로 리파지터를 추가했다. 일반 사용자에겐 좀 어려운 작업일 수 있겠다. 딱히 뾰족한 대안은 떠오르지 않는다. 여하튼 ?gnome-app-install로 제사를 마무리 했다. 순식간에 끝났다. 역시! 인터넷 강국! 대~~한민국!
아! 이게 아니다. 샜다! 내가 하려던건 한글 입력을 해결하는 거였다! 그래서 다시 ?synaptic을 띄우고 ?nabi와 ?imhangul을 깔았다! 어랏! ?imhangul이 있네 그리고, 다시 로그인. 기대를 져버리지 않는 ?imhangul! ?krisna님 만쉐이!!
이제 한글 입력을 해결했으니, 글자 모양도 좀 다듬어보자. 백묵 바탕 대신 굴림으로 바꿔봐도 영 신통치 않다. 다시 ?synaptic을 띄우고 ?ttf-unfonts와 ?ttf-alee를 설치해주었다. 어랏! ?ttf-alee도 있네 그렇다! 좀 전에 새 리파지터리를 정해주면서 얼떨결에 universe와 multiverse가 추가된 것이다! 그놈 글꼴 설정을 예쁘게 해주었다. 은글꼴 정도면 볼만한다. ?XChat 글꼴은 역시! 은진체다.
데스크탑 설정 완료!
이 기쁨을 기록해야쥐! 라고 ?MozillaFirefox를 실행하는 순간... grrr! http://www.google.com/firefox/ 이게 뭔가...
구글이랑 커뮤니케이션에 문제가 있었나 보다. 별 일 아니지만 일반 유저에겐 당황스러울 수 있겠다. (N)
일단, 오늘은 여기까지 하기로 하자. 다들 날 버리고 먼저 자러갔다. 배신자들!
잠시 눈을 붙이고, 어제 백업해둔 것들을 복구해야 한다. 그럴리는 없겠지만, 다 좋아도 Eclipse 안뜨면 말짱 꽝이다. 밥줄이다 :'(
바로 받아서 설치하니 기존에 GIMP때문에 깔려있던 GTK에 덮어서 깔아버린다.
그래서 혹시나 하고 두개의 GTK 런타임을 다 언인스톨하고 All-In-One만 다시 깔았다. 그리고 혹시나 하는 마음에GIMP를 실행시키니 잘 돌아간다!
그렇다! 바로 내가 원하는 환경이다! GTK 런타임만 있으면 모든 GTK 어플리케이션들이 다 그 런타임을 쓰는 것이다! Linux처럼! 자바처럼! 파이썬처럼! 모노처럼!
바로 MSVC를 띄우고 gtkhello 프로젝트를 만들었다. 아무 생각없이 Win32 Application 프로젝트로...
링크 에러가 몇 개 난다. 이 정도 쯤이야! 바로 gtk-win32-2.0.lib과 gobject-2.0.lib을 추가시켜 주었다.
흠.. 링크 에러가 또 난다. ?WinMain을 찾을 수 없단다.... 그렇다... ?WinMain인것이다. ㅂㅌ MSVC의 엔트리포인트...
씨익~ 비웃어 준다음 프로젝트를 새로 만들었다. :-D (아직도 VC를 기억하고 있는 스스로를 자랑스러워하면서) gtkhello2... 이번엔 Win32 Console Application 프로젝트로...
링크 OK! 실행도 잘된다! 한 방에!! 오오! 그런데 터미널 창은 뭐야?
뭔가 난관인듯하다... 다시 gtkhello프로젝트를 열었다. 그리고 main의 이름을 ?WinMain으로 그대로 바꿔주었다.
역시 링크 에러... __stdcall 이어야 한다는군... 기억이 난다... WINAPI다.
그리고 보니 함수 인자가 완전히 다르다. 이를 어쩐다. ?mithrandir님의 조언으로 엔트리포인트를 main으로 바꿔주었다.
구글님 만세!
WINAPI가 없다는 둥 __argc가 머냐는 둥 툴툴거리는 MSVC에게 #include <windows.h> 한 방을 먹여 주었다.
오케이! 바로 이거야 내가 원하는 건...
#ifdef _WIN32#include <windows.h>int WINAPI WinMain(int hInstance, int hPrevInstance, int lpCmdLine, int nCmdShow){return(main(__argc, __argv));}#endif
그러다가 앞의 메일 끝자락에서 본 mainCRTStartup이 뭔지 떠올랐다!
바로, 걸레같은 ?WinMain 따위를 날려 버리고! 엔트리포인트를 mainCRTStartup으로 바꿔 주었다.
오늘의 삽질 대성공!
이긴 한데... 너무 일찍 끝나버렸다... 새벽까지 해야 하는건데... 일단 블로그 쓰면서 시간을 좀 때우고... 그래도 시간이 남으면... 뭔가 볼만한 영화를 또 하나 찾아야 겠군...
?Linux에선 보안상의 이유로 1024번 이하의 포트(?WellKnownPorts)는 root만 바인딩할 수 있도록 하고 있다.
그런데, 이게 개발자의 입장에선 여간 귀찮은게 아니다. 개발하는 동안 다른 포트를 쓰면 되긴하는데, 이때 클라이언트가 특정 포트를 요구하면 곤란하다. 그렇다고, 매번 root로 로긴해서 실행하려고 하면, 디버깅이 곤란하다.
이러 저러한 이유로 고민을 하면서도 그냥 저냥 버텨왔는데, 오늘 IRC #gnome에서 ?leanblue님께서 ipables를 쓰면 되지 않겠냐고 하시는 말을 듣고 삘을 받아, 바로 테스트! 그리고, 생각보다 간단하게 성공!
최근 GNOME 메일링과 웹로그등을 통해서 Java와 Mono에 대한 논쟁이 계속 되고 있다.
Havoc과 Miguel의 두 거물(적어도 GNOME 프로젝트에선)의 대결도 볼만하지만, 다른 많은 고수들의 글도 재미있고 유익하다.
Java로 먹고사는 내 입장이야 뻔한 것이지만, Mono를 지지하는 입장을 보면 그 나름의 설득력이 있다.
적어도 저작권이나 특허의 문제에 있어서는 ?SunMicrosystems 이 ?MicroSoft 보다 낫다는 근거는 어디에도 없다.
Mono는 맛깔스런 기능셋과 발빠른 버전업, ?MonoDevelop 같은 툴의 지원, 거기에 다양한 응용프로그램의 발표가 Mono에게 많은 힘을 실어주고 있는 듯 하다. 하지만 그 다양한 응응프로그램이라는게 뭔가 찜찜하다. FreshMeat 를 봐도 , SourceForge 를 봐도 Mono보다는 Java프로젝트가 압도적으로 많다. GNOME 프로젝트의 성격상 데스크탑용 어플리케이션, 즉 Interactive한 GUI가 있는 어플리케이션이 주목받는 것은 당연한 일이긴 하지만, 그것만이 응용프로그램이 아니고, 그것만으로 언어의 유용성을 평가할 순 없다.
?MicroSoft 로부터 전수받은 듯한 ?RedHat의 ?FUD vs ?Ximian의 ?눈가리고 아웅.
내 나름대로 뭔가 해보고 싶어서 JavaGnome 메일링에도 기웃거려 보았지만, 역시 이 바닥 메일링의 분위기는 다 비슷하다. 내가 뭔가를 보여주기 전엔 무시당할 각오를 해야한다. 그게 싫으면 뭔가 보여줘야 한다. 난 보여줄 게 없다. 그리고 보여주기 위해 무언가를 만들기도 싫다.
내가 이렇게 혼자 떠들어봤자, 눈에 보이는 게 없으면 공염불일 뿐... 결국 JavaGnome 이건 Java~SWT건 눈에 보이는 무언가를 만들어야 한다. Java가 좋다, Java로 만든 ?OpenSource 어플리케이션이 더 많다고 백번 떠드는 것 보다 예쁜 GUI를 가진 작은 어플리케이션이 필요하다. 그렇다고 내가 뭘 어떻게 하겠다(혹은 할 수 있다)는 것도 아니니, 정치판이 되어버린 ?JavaVsMono 논쟁에 눈과 귀를 막는 수 밖에...
?Fedora를 쓴지도 꽤 지났고, 불안정한 개발 트리로 옮긴 지도 꽤 됐다.
어느새 커널은 2.6.3-1.106이고, 하루에 20여개씩 계속 업데이트 되고 있다.
Debian에 비교하면 나름대로 장단점이 있지만, 문제가 생기도 ?sangu님이 거의 해결책을 알고 계신다(최소한 방향 제시라도)는 것은 ?Fedora를 쓰게 하는 가장 큰 매력이다 :-P
그런데, 얼마전부터 이 엄청난 장점을 넘어서는 문제가 발생했다. Eclipse가 말썽을 부리기 시작한 것이다. Eclipse M6부터 시작된 문제는 ?IDE의 왼쪽의 퍼스펙티브 전환 툴바가 안보이는 것으로 시작해서, 자바 퍼스펙티브로 전환하면 뻗어버리는 상황이 되었다. 여기 저기 뒤져본 결과 GTK 2.3.x에서 생긴 문제... 그리고 해결책은 없다는...
여러가지 삽질을 하던 중, 에러 로그에 ?Pango관련된 부분이 있던 게 생각나서 ~/.fonts.conf를 지워버렸더니... Eclipse가 굴러간다. :-D 저번에는 GTK 테마를 기본 테마로 바꾸고 나니까 되더니... 뭐가 뭔지 종잡을 수가 없군.
밥줄과 직결된 문제라, 계속되면 Debian으로 돌아가거나, 해결될 때까지 윈도로 피난이라도 가야 하는 상황 :'(
애초에, 무리해서 ?Fodora 개발 버전으로 엎은 것은 GTK 2.4와 JavaGnome 2.3.x 때문이었다.
그런데, 이런 저런 삽질로 본래의 목적을 잊어버리고 있었는데, ?RhythmBox의 ?GtkFileChooser를 보면서 다시 생각이 났다.
LiteAmp의 ?GtkFileSelection을 ?GtkFileChooser로 바꾸면서, ?GtkFileSelection 코드를 어찌할까 고민하다가 일단 #if ~ #else ~ #endif로 남겨두었다.
?GtkCombo도 deprecated되고 ?GtkComboBox를 쓰라고 하는데, 정작 Glade는 ?GtkCombo를 지원하지 않는다. ?GtkComboBox를 사용하도록 코드를 만들까 하다가, 게다가 ?LibGlade에서 읽어서 처리하는 것이라 조건 컴파일 지시어를 쓸 수 없다는 것을 깨닫고는 #undef GTK_DISABLE_DEPRECATED 로 임시 땜빵을 해두었다.
결국 GNOME 2.5.x의 유혹을 이기지 못하고, ?Fedora 개발 버전으로 엎어 버렸다.
불안정해도, Debian sid 정도겠지라고 생각했었는데... expermental보다 더 불안정하다.
그 불안정함을 참고 견디게 해주는 힘은 다름아닌 Nautilus와 ?GnomeVFS의 찰떡 궁합이다.
때마침 ?Fedora의 커널 2.6.x에선 smbfs가 빠져버렸고(mount.cifs라도 주고 빼야쥐 ),
참으로 오랫만에 LiteAmp 새 버전을 릴리즈 했다.
너무 오랜만인데다, KLDP.net 이 ?GForge로 바뀌어 뭐가 뭔지 하나도 모르겠다.
여기 저기 뒤적거려 가면서, 기존의 0.2.x를 liteamp-0-2로 브랜치하고, 새로 작업한 0.3을 HEAD에 올렸다.
뽀대만 그럴싸한 미공개 개발버전 보다는 실제로 쓸 수 있는 게 좋다는 생각으로 많은 부분을 포기하고, 릴리즈했다.
새 버전에서 가장 눈에 띄는 변화는 일단 큼직한 연주목록 아이콘!
앨범과 가수를 이용해 자동으로 가져오고 싶은데, 만만치 않다.
일단 Nautilus에서 이미지 파일을 던져 넣는 것으로 해결.
도구막대를 메뉴 밑에서 연주 위치 슬라이더 밑으로 내렸는데, 이것도 사실은 연주목록 아이콘을 그럴싸한 크기로 보여주기 위함이다.
그리고 컴팩트 모드도 추가했다. 미공개 개발버전에 있던 기능인데, 넣을까 말까 고민하다가 ?RhythmBox에 있는 것을 보고 넣었다. 단추키도 똑같이 F8이다.
그 외에 ?OSD와 ?TrayIcon 도 추가했다.
아! 그러고 보니 ?TrayIcon 에 팝업 메뉴를 연결 안해줬... :$
GTK 프로젝트 리더인 ?OwenTyler가 GTK의 미래에 대한 썰을 풀어놓았다.
얼마나 실현될 수 있을지는 솔직히 좀 의문이긴 하지만...
역시 제일 눈에 띄는 건 Cairo와의 결합이다.
GTK 2.x가 GTK 1.x에 비해 현져히 느려진것은 ?XFree86의 RENDER 익스텐션이 ?AntiAliasing된 글꼴을 뿌리는 성능이 안나오기 때문이고, Cairo로 렌더링 프레임웍을 바꾸면 빨라질 거라고 하는데(것 같은데)...
솔직히 뭐가 뭔지는 잘 모르겠지만, ?NextStep의 ?DisplayPostScript가 생각나는 건 왜일까... :-|
?CSharp(?GtkSharp)에 대한 언급도 있었는데, ?RedHat의 입장일까... 정치적인 문제라는 식으로 얘길하는 걸 보면 다소 비관적으로 보인다. ?RedHat은 자신들이 갖고 있는 GCC의 힘을 십분 활용하기 위해서라도 GCJ를 밀고 싶겠지. 여하튼 Java로 먹고 사는 나로서는 낙관적인 얘기다.
KIPA에서 돈을 대고, 많은 사람들이 무료 봉사(혹은 광고)해서 이루어진 OSS 연합 세미나가 어제 건대에서 있었다.
나도 마지막에 곱사리로 한 세션을 차지했는데, GnomeArchitecture라는 거창한 제목으로 내용없는 발표를 한 것 같아 좀 아쉽다.
앞 시간만 해도 꽤 많았던 사람들이 내 시간이 되니 반 이상 나가고, 앞쪽에 GnomeKorea의 패거리(?)들이 뭉쳐 앉았다.
어차피 예상했던 상황이라 별로 신경쓰이지도 않았고, 사람들 앞에서 발표하는 것도 꽤나 이력이 난 터라, 경상도 사투리까지 섞어가며 마음껏 떠들었다. 발표 자료 만들때 빼고는 거의 들여다 보지도 않았던 터라 여기 저기 버벅거림도 있었다.
다음에 또 누군간 GnomeKorea의 일원이 세미나를 하게된다면 좀 더 깊이 있는 주제로 해보면 좋겠다. 재미있는 얘기와 ScreenShots이 GNOME의 전부는 아니니까... 적어도 내가 또 나가서 뜬 구름 잡는 얘긴 안해야지... :-|
발표하는 사람의 이름 값도 중요하다. 그것이 한 패거리의 대표성을 띠게 되면 더욱 그렇다.
극장에 ?StevenSpielberg와 ?VitaliKanevski의 영화가 같이 걸려있다면 얼마 쯤은 카네프스키를 선택할지도 모른다. 하지만 ?StevenSpielberg와 ?NikiCaro의 영화가 같이 걸려있으면 카로의 영화를 볼 사람이 얼마나 될까... 내 이름 값은 카네프스키는 커녕, 카로의 발가락 때 만큼도 안되지 않는가... 그런 생각을 하고 있으면 좀 서글프기도 하다 :'(
7년이 아니고 7일이다. 근데 7일 내내 사막 한가운데 있는 듯한 기분...
Debian을 처음 설치했을때도 그랬다. 어디에 무엇이 있는지 무엇을 어떻게 고치면 어떻게 되는지 알 수가 없다. LinuxStandardBase는 뭐에 쓰는 것인지... /etc라고 다 같은 /etc가 아닌 것이다.
그러다가, 결국 7일째 되는 날 사고를 쳤다.
그림자 패치가 된 GTK 패키지에 솔깃해서 ?MatthewHall의 패키지를 설치했다. 그리곤 모든 것이 꼬여버렸다. 문제가 없었다면 거기 있던 GNOME 2.5 패키지도 깔았을텐데...
결국 의존성이 걸린 대부분의 그놈 패키지들을 지우고, 새로 깔고, 그럭 저럭 복구했는데...
아무래도 메뉴가 허전하지만, 필요하면 그 때 그 때 깔지 뭐... :-|
세삼 느끼는 거지만, ?BleedingEdge는 항상 양날이다.
황당하게도 삽질의 시발점이 되었던 GTK는 아직도 ?MatthewHall의 패키지가 깔려 있다.
금요일 컨퍼런스는 너무 늦어버렸다.
도착했을땐 이미 ?JodyGoldberg의 발표도 끝난 뒤였다. 내가 하는 일이 다 그렇지...
여하튼, 인상 좋아 보이는 gnumeric의 개발자 ?JodyGoldberg를 옆에서 볼 수 있었다.
정말 보기만 했다. 난 한 마디도 안하고 옆에서 듣기만 했다
저녁에 맥주를 한잔 같이 하기로 했는데, 약속이 어긋나서 ?JodyGoldberg는 참석하지 못했다.
다들 영어를 참 잘한다. 물론 알아듣는 사람들은 더욱 대단하다.
다음 날 ?SoftExpo전시장을 찾았다. 한번 쓰윽 돌아보곤 KLDP 부스에서 거의 죽치고 있다가 왔다.
기억 나는 건 천장에 달린 카메라에 떠있던 블루스크린 뿐이다.
예전에 몇번 부스를 지켜본 경험이 있는지라... 방문객 없는 텅빈 부스와, 요란한 이벤트가 벌어지는 부스와, 조용하지만 실속을 챙기는 부스가 눈에 들어온다. 그 차이는 부스를 지키는 사람이다.