0.

 

옛날에는 사람보다 컴퓨터가 귀했기 때문에 쓸데없는 작업을 위해 컴퓨터의 연산능력을 사용하는 것은 터부시되었다고 한다. 포탄의 탄도 계산을 위해 중견 도시의 전력 사용량에 맞먹는 전기를 빼먹던 초기 컴퓨터 시대를 생각하면 그럴법도 하다. 지금은 NASA에서 사람을 달로 보내기 위해 필요했던 연산 능력을 누구나 손에 들고 다니면서 닭을 돼지에게 날리는데 쓰는 시대이기 때문에 사람이 하기 귀찮은 일은 컴퓨터에 맡기는 것이 미덕이 되고 있다.

 

그런 의미에서 텍스트 파일 포맷의 스프레드시트 파일인 csv를 읽어서 db에 때려박는 작업을 하려는데 한글 문자가 아스팔트에 갈린 수박처럼 깨져서 나오는 난관에 봉착했다. 파일 입력부의 소스는 다음과 같다.

 

FileReader fr = new FileReader(props.getUploadPath()+path);
BufferedReader br = new BufferedReader(fr);
String str = new String(new byte[835],"euc-kr");

인코딩이 깨지는 이유는 파일을 읽어오는 단계에서 이미 난도질 당해서 가져오는 것이라 그렇다.

해결책은 다음과 같다. 별 것도 아닌 내용을 굳이 태그 붙여서 블로그에까지 남기는 이유는 후손들이 이딴 문제로 시간 낭비하지 않기를 바라는 마음에서이다.

1.

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(props.getUploadPath()+path,"euc-kr"));
String str = new String(new byte[835]);

2. 윈도우에서 손을 뗀다.

3. 한글에서 손을 뗀다.

4. 코딩에서 손을 뗀다.

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크
2011/10/20 15:37 2011/10/20 15:37

winter is coming

from 분류없음 2011/10/18 08:55

  '겨울이 오고 있다'는 얼음과 불의 노래에 나오는 유명한 문구인데 오늘 자전거를 타고 출근을 하다보니 이 말이 문득 생각났다. 아침 칼바람을 뚫으면서 생각해 봤는데 자전거는 그렇다치더라도 오토바이는 버프와 장갑, 내복, 점퍼로 아무리 버텨도 다음달까지가 한계일 거 같다. 경험상 주행 중 추위는 손이 시린 것이 가장 심각한 데미지를 준다. 손토시를 살까 생각도 해봤지만 손토시가 절실할 때쯤 되면 도로가 얼 때가 많고 도로의 결빙은 딱히 대책이 없으니까.

 

  생명을 위해서라도 겨울 시즌은 건너 뛰는게 현명할 거 같다. 뭐 수명을 포함해서 이래저래 두바퀴는 신경 쓸 것이 많다.

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크
2011/10/18 08:55 2011/10/18 08:55
Tag //

WoW와 Linux와 pie

from 분류없음 2011/10/12 14:16

  한국에서 가장 활성화된 오픈 소스 프로그램 커뮤니티를 꼽자면 몇 군데가 있겠지만, 실질적으로 사용 가능한 소스가 생산되고 수정되고 공유되는 측면에서 따져보면 아무래도 세 손가락 안에 월드오브워크래프트(이하 WoW) 게임 커뮤니티가 들어갈 것이다. 왜냐면 WoW에서 UI단에서 쓰이는 애드온이나 매크로 등의 제작, 수정 활동은 굉장히 일상적으로 이루어지며 그것은 프로그래밍 언어인 lua에 기초하고 있기 때문이다. 재미있는 것은 이 사람들은 소스를 공개하고 수정하는 과정을 수행하면서 많은 경우 이것을 오픈 소스 혹은 프로그래밍 활동이라고 생각하지 않는다는 것이다.

 

  여하간 WoW를 좀 한다는 사람의 게임 영상을 보면 그 UI가 모두 제각각이다. 기본 UI를 고수하는 유저도 있고, 심하게는 과연 이것이 WoW가 맞나 싶을 정도로-얼핏보면 FPS게임이나 SF 장르의 게임으로 보일 정도로-커스터마이징한 경우도 찾아보기 어렵지 않다. 결국 이 다양성은 사람에게 최적화된 UI는 사람마다 다를 수 있다는 생각에서 출발하며, 그 충족은 회사 안의 개발자들을 혹사시키는 것이 아니라 개발 기회를 사용자들에게 열어둠으로써 가능하다는 결론으로 수렴한다.

 

 

  위의 영상은 WoW의 애드온 OPie의 소개 영상이다. 단축키로 각 계열별 스킬을 원형 형태로 배치시키고 마우스 이동으로 스킬을 선택하고 좌클릭으로 시전하는 UI이다. 개인적으로는 모든 기술은 1단계의 조작으로 완료되어야한다고 생각하지만, 개인의 취향을 떠나서 생각해보면 분명 유용할 사람도 있을 것이며 실제로도 꽤 많이 쓰이는 애드온이다.

 

 

  그리고 이 것은 이 애드온에서 영감을 얻은 것이 분명한 GNOMEPie의 소개 영상이다. 이러한 방식의 런치 메뉴가 MS의 시작 메뉴나 애플의 독만큼 혁신적인 방식의 UI인지는 모를 일이다. 하지만 Linux가 좋은 점이 있다면 그 혁신성이나 유용성을 판단하는 것이 유저 자신이라는 것이고 오픈 소스 운동이 가능성이 있다면 그 혁신성과 유용성을 충족시키는 것이 한 기업과 개인의 몫이 아니라 운동 전체의 몫으로 남겨져 있기 때문일 것이다.

 

 

덧. 개인적으로는 키보드로 아이콘을 불러내서 마우스로 선택하는 구성보다는 키보드로 불러낸 아이콘에 단축키를 매겨서 키보드 상에서 끝낼 수 있게 하는 것이 더 유용할 것 같다. 어떤 언어로 짠 프로그램인지는 모르겠지만 한 번 뜯어보고 고쳐볼만한 가치는 있어보인다.

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크
2011/10/12 14:16 2011/10/12 14:16

이 뭔 소리.

from 분류없음 2011/10/01 22:11

 

reverie

 

 

(전략)

 

그리고 최근에 요그님은 제가 왜 반말과 욕설을 하는지 궁금하다고 했어요. 그렇게 궁금하시면 아이피주소 다 공개하고 같이 경찰서 가요. 그게 저에겐 훨씬 덜 폭력적일 것 같아요.

 

 

------------------------------

 

1. 반말과 욕설을 하고 다니는 이유가 궁금하면 경찰서 정모를 하자는 건 경찰에 끌려가기 전까지는 반말과 욕설을 하고 다니겠다는 단호한 의지라고 보면 되나요?

 

2. 그리고 아이피주소 다 공개하라는 이야기는 뭐죠? 저에게 아이피 맡겨 놓으신 거라도 있으십니까? 아이피가 궁금하면 whatismyip.org같은데나 들어가 보시죠.

 

3. 누가 누구에게 폭력을 쓰고 다니는지는 잘모르겠지만 마지막또한 뜬금이 없군요.

 

4. 길게 쓴다고 다 문장이 아닙니다. 앞 뒤가 최소한은 맞아야 이야기가 통하죠.

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크
2011/10/01 22:11 2011/10/01 22:11
Tag //