'분류 전체보기'에 해당되는 글 20건

  1. 2012.11.28 [번역] 아이들과 노는 것을 통해 더 나은 게임을 만들 수 있었다 2
  2. 2012.05.09 Trello vs do.com
  3. 2011.01.31 구글 크롬 웹 어플리케이션 바탕화면 아이콘 변경하기
  4. 2011.01.28 CentOS 5.5 에서 Python 2.7.1 + twisted + django 설치 쉘 스크립트
  5. 2009.05.20 온라인으로 프로그래밍
  6. 2008.04.06 총알피하기 3D 1
  7. 2008.04.03 마인드맵 툴을 만들었습니다 3
  8. 2008.03.31 Dodge, 뷃뗍, 총알피하기, 포인터 능엄경 3
  9. 2008.03.08 코에부(こえ部), 일본발 음성(音聲)UCC플랫폼
  10. 2008.01.11 RSS와 온라인 컨텐츠 중개권

[번역] 아이들과 노는 것을 통해 더 나은 게임을 만들 수 있었다

카테고리 없음 2012. 11. 28. 02:25

RSS에 등록되어 구독하던 블로그에서 재미난 글을 발견한 것이 어언 2주전인데... 영어공부나 할까 싶어서 한글 번역을 시도해봤는데 이렇게나 오래 걸릴 줄이야. 

교육과정에서 영어를 몇 년을 공부했는데 아직도 이모냥인지.

... 머 여튼. looah라는 사이트는 참여자들이 웹 상의 문서를 자유롭게 번역할 수 있는 사이트입니다. 이미 미디어를 통해 많이 알려진 duolingo 등등의 집단지성의 사례가 될만한 사이트와 비슷하다고 볼 수 있는데요. 다른 사이트들이 한국어 컨텐츠가 미미한 것에 비하면 looah는 그나마 볼만한 글들이 제법 있습니다. 또한 참여도 매우 자유롭습니다. 공동작업도 가능하고 괜찮아 보이네요. 


이제 나만 영어를 잘하면 되겠다.

글의 내용은 게임이 왜 재미있는지를 작가의 육아 경험을 통해서 말하고 있습니다. 옴니버스 식으로 구성이 되어 있어서 내용이 중구난방으로 보이는데 다음 번에는 좀 더 문어체의, 획일된 논조의 글을 선택해야겠네요. 아래는 본문입니다.


looah: http://www.looah.com/article/view/1756

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


아이들과 노는 것을 통해 더 나은 게임을 만들 수 있었다


  • 증권계에서 게임계로 이직하던 도중에 아주 재미난 일에 대한 이야기다. 사람들은 당신에게 아이의 부모가 되었을때 어떻게 모든 것들이 변화했는지를 얘기한다. 내 친구들 역시 그 느낌에 대해 설명하곤 했는데, 그때마다 친구들은 눈빛이 아득해지며 유니콘이나 신화적인 존재들의 사랑에 대해 말하듯이 했다. 그럴때마다 난 웃으며 말했다.

    "아 예. 그러시겠죠."

    그리고 그 아이들이 날 기쁘게 해 줄 수 있는 건 오밤중 침대 맡에 잠들어 있을 때 뿐이라고 농담을 해줬다. 그것만이 내가 그 작고, 똥싸고, 소리칠 줄만 아는 잠이 부족한 것들의 얼굴에서 어떤 놀라운 것을 발견할 유일한 순간일 뿐이었으니까. 

    "모든 것은 변하기 마련이야."

    친구들이 그렇게 말해도 나는 듣는둥마는둥 고개만 끄덕거렸다. 그리고 고된 몇 년을 보낸 나중에서야 아내와 나는 알게 됐다.

    내가 알고 있는 것들을 동원한다 해도 '모든 것은 변하기 마련'이라는 깨달음을 말로 표현하기가 어렵다는 것을, 그리고 이것이 얼마나 경이로운 것인지를 말이다.

    이젠 굳이 아이가 없는 사람들 앞에서 이런 경험들을 말로 표현하려 하기 보다는 인자하게 웃으며 말해주고 싶다.

    "너도 언젠가는 알게 될 거야."
  • 자녀들을 갖기 전까진, 스무살 즈음 되어 출가하기까지 내 주변엔 어린아이들이라곤 없었다. 다른 집의 어린아이들과 대면했을때도, 왠지 불편하고 어색한 느낌만 들뿐이었다. 연령대를 막론하고 아이들을 대하는 방법에 대해선 완전무지했기 때문이었다.
    하지만 이제 자녀들과 있을 때의 나에게선 그때의 내 어색해하던 모습을 찾아볼 수 없다. 그리고 자녀들은 나에게 우리가 "재미"를 찾는 이유를 깨닫게 해주었다. 내가 생각한 것을 글로 남김으로써 개발자들을 독려할 수 있기를 바란다.
  • 스무살에서 서른이 되기까지도 게임을 즐기면서, 난 내가 왜 어렸을 적에 게임에 흥미를 느끼는지를 도무지 이해하지 못했다. 나에게 게임이란 롤플레잉 아니면 경쟁에 관한 것들이었고 만약 나에게 왜 게임이 재미있는지를 물었더라면 아마 이 두 가지 요소의 조합이 재미를 느끼게 해준다고 답했을 것이다. 적어도 삼년전까지는.
    하지만 지난 몇 년간 난 뭔가를 잊고 있던 것 같다. 그렇게 심하게 잊혀져버린 것은 아니었겠지만. 롤플레잉과 경쟁이 전통적으로 게임이 사람들의 이목을 끌 수 있는 요소가 될 수는 있겠지만, 나는 게임이 재미있는 이유는 좀 더 근본적으로 '우리가 배우는 방식'이기 때문이라고 본다. 아이들이 놀면서 자라나는 모습을 지켜보는 것이 내가 어릴적에 게임에 빠져든 것과, 또한 지금도 게임을 즐기는 이유를 기억하게 해주었다. 그건 바로 게임에 숙련되면서 느끼는 성취감과 학습하는 느낌이었다.
  • 아주 어린 아기조차도 패턴을 선호한다. 아기들의 시선을 끄는 데에는 패턴과 사람 얼굴만한 것이 없다. 나이를 먹어감에도 이것은 변함이 없다. 우린 주변에서 도저히 패턴을 인식할 수 없는 것들과 마주친 순간에도 패턴을 찾으려고 노력한다. 구름의 모양에서 도형을 찾고, 숫자나 문자의 의미없는 나열 속에서도 금방 익숙한 단어들을 찾아낸다.

    한번은 아들이 나무 퍼즐을 바라보고 있다가 이내 퍼즐을 어질러 놓더니 다시 맞추어 가는 과정을 지켜본 적이 있다. 아들은 나무 퍼즐이 마침내 도전할 가치가 없어 보일 때까지, 질릴 때까지, 혹은 어린 딸아이가 퍼즐 조각을 집어갈때까지 계속해서 이런 식으로 퍼즐을 가지고 놀았다. 아들은 다음 도전을 시작했고 그런 날은 낮잠도 맘마 먹는 것도 잊어버린 듯했다.
  • 거기서 나는 우리가 좋은 비디오 게임에서도 찾을 수 있는 두 가지 기본 요소를 찾아냈다. 하나는 '패턴 학습과 같은 구조(원문 mechanic)'이며 또 다른 하나는 '도전'이다. 어릴 적부터 지금까지 재미있게 즐겼던 게임들은 모두 이런 패턴 학습을 위한 요소나, 난이도를 올려가는 식으로 구성되어 있었다. 난 이 게임을 완벽히 숙련하거나 난이도가 너무 쉽게 느껴지기거나 너무 어렵게 느껴저 거기서 아무런 재미를 느낄 수 없을 때까지는 계속해서 게임을 했다. 내 아이도 똑같았다. 너무 어려워지거나, 너무 쉬워지기 전까진 게임은 계속해서 재밌게 느껴졌던 것이다.
Image of 1756 article
  • 어린 시절 오락실에 있던 수 많은 게임들 중에서도 Space Ace에 빠져 수많은 시간을 투자했던 기억이 난다. Space Ace는 Dragon Slayer처럼 카툰 기반의, Laser Disk를 채용한 게임이었다. 게임 내의 여러 이벤트가 화면 위에서 펼쳐지는 동안 그 안에서 플레이어가 행동할 타이밍을 알려주는 visual cue의 신호는 게임이 진행될수록 점점 더 어려워져갔다. 공략집이나 인터넷이 없던 그 시절 이런 게임을 통달하는 방법이라곤 계속된 시도와 실패, 뛰어난 기억력, 그리고 주머니 가득한 동전 뿐이었지만 난 그 게임을 사랑했다. 물론 끝을 보기 전까지만.
    그 모든 패턴들을 암기하고 얼마 지나지 않아, 나는 다른 게임을 공략하기 시작했고 가끔 아이들이 "쟤가 Space Ace를 깼다던 걔야." 라며 수근 거릴 때에나 실력과시겸 동전을 꺼내곤 했다.
  • 대전 격투 게임이건 슈팅 게임이건 전략 게임이건 간에 게임을 공략하려 할 때의 핵심적인 것은 패턴 암기와 그것을 주어진 게임의 틀 안에서 알맞게 적용하는 것이다. 이것이 우리 팀이 폭 넓은 사용자 층을 노려서 개발했던 첫 게임에서 얻은 교훈이며 동시에 잘 적용하지 못한 점이었다.
    게임의 각 단계는 매우 독특했지만 도전요소는, 게임에서 승리하기 위해 요구될 수 있는 패턴들은 그다지 다양하지 않았고 제작 단계에서 간과된 부분이었다. 플레이어들은 즐겁게 게임을 했지만 우린 "그들이 얼마나 오래 게임을 즐길 수 있는지?"를 생각하지 못했다. 폭 넓은 사용자 층을 확보해야 한다는 것이 우리의 애초의 생각이었다. 그러나 나중에 이것이 썩 좋지 못한 생각이었음을 깨닫고 게임의 타이틀을 다른 형태로 바꿔봤지만, 솟아날 구멍은 이미 막혀버린 뒤였다. 돌이켜보면 아주 기본적인 것이지만, 난 이 사건에서 다른 개발자들이 그들의 작품을 다른 방향에서 검토할 수 있기를 바란다.
Image of 1756 article
  • 두살배기 아이와 게임을 하는 것은 게임의 조작체계(control schemes)에 대해 생각하는 데에도 도움을 준다. 내 아들은 매번 내게 게임패드를 들이밀며 "아빠~ Sack-boy!"(1) 라고 조르지만 아이에게 플레이스테이션3와 LittleBigPlanet은 아직 이르다. 
    그러나 아이를 앉혀 놓고 Angry Birds - Star Wars 를 보여주면 얼마 지나지도 않아 아이는 돼지들에게 새를 날리고 좋아라 한다. Playstation Vita로 Digit Chase를 할 때도 마찬가지, 이 게임에선 사용자가 화면에 있는 숫자를 차례로 터치하는 소개 영상이 뜬다. 
    아이들이 순식간에 게임 방식을 이해할 수 있는 사례에서 볼 수 있듯이 터치 스크린 입력에는 부정할 수 없는 직관적인 무언가가 있다. 하지만 종종 모바일 개발자들은 게임 내에서 컨트롤러 타입(2)의 입력을 강요하는 실수를 저지르곤 한다. 거기에 대해서까지 뭐라고는 안하겠지만 적어도 게임의 조작체계는 직관적일 필요가 있다.
    무조건 아이들의 눈높이에 맞출 필요까지는 없지만 적어도 기본적인 조작 자체는 명확히 이해될 수 있어야 한다. 이것이 우리가 만든 첫 게임을 아들이 하는 모습을 지켜보면서 우리가 얻은 교훈이다. 다양한 조작법을 제공하라고 해서 당신의 게임을 완전히 갈아치우라는 얘기는 아니지만, 그러고 싶어질 것이다. 내가 그랬으니까.
  • note icon
    (1) Sack-boy: Little Big Planet의 마스코트 캐릭터
    (2) 게임 컨트롤러 타입 입력: 화면상에 오버레이된 고전적인 게임 컨트롤러(방향키, AB버튼)
  • 내 아들과 함께하면서 기본적인 것들을 다시 깨닫고 왜 게임이 재미있는가에 대해 깨달을 수 있었던 것에 감사한다. 게임 그 자체를 단순화하기보단, 패턴과 도전 요소를 찾는 모든 행동이 결국에는 우리가 학습하는 방식이라는 점을 알게 해주었기 때문이다. 조작 체계를 허무할 정도로 간단하게 하기보단, 한 번도 게임을 해보지 못한 경우를 상정하라는 것을 알게 해주었기 때문이다.
    당신의 게임은 시작도 하기 전에 조작법에서부터 플레이어를 혼란스럽게 하고 있지는 않은지? 특히나 골수 게이머들을 대상으로 한 요즘의 게임들은 다른 무엇보다도 기본적인 게임플레이에 대한 관점을 놓쳐버리기 쉽다. 아이들이 게임을 하며 배우는 모습은 나에게 이런 점을 알게 해주었다. 앞으로도 난 아이들과 게임을 하며 거기서 배울 것들을 기대하고 있다.



:

Trello vs do.com

카테고리 없음 2012. 5. 9. 00:43

trello 를 사용하다가 유사한 서비스인 do.com 으로 전환해서 약 한달? 쯤 사용해가는데 뭔가 좋다가도 좋지 않은 느낌이 든다.


do.com의 장점이라고 할 만한 것은 이슈에 문서를 첨부하는 방법이 트렐로보다 다양하다는 건데(일반 첨부, 구글닥스, do.com의 노트), 솔직히 말해서 구글닥스 등의 다른 문서 공유 툴을 사용한다면 이것은 굳이 쳐다볼 필요도 없는 기능이다. 


어차피 트렐로, do.com이 거대한 올인원 이슈관리 툴은 아니기 때문에 부족한 여러 기능들을 충족하기 위한 다른 툴을 써야하는 상황에서, 굳이 이런 기능때문에 do.com을 사용할 필요는 없다고 생각된다.


두 서비스가 모두 캘린더와의 통합은 지원하지 않기 때문에 마일스톤 측정 등 좀 더 자세한 일정계산을 위해서는 다른 방법을 써야 한다. 트렐로의 경우 API를 제공하여 서드파티 어플리케이션을 통해 해결할 가능성이 있고, 


UX면에서는 두 서비스가 유사하면서도 몇몇 부분에서 차이가 난다. 트렐로는 Board(팀 단위) > List(카테고리 단위) > Card(주로 사용되는 이슈 단위) > Checklist(이슈에 대한 체크리스트) 구조로 이슈를 관리하고, do.com은 Project(팀 단위) > Section(카테고리 단위) > Task(이슈 단위) 의 구조다. 


두가지 툴 모두 이슈 단위에서의 참가자 설정, 토론 기능과 파일 첨부, 기한 설정, 카테고리 이동 등을 지원한다. 트렐로의 경우 여기서 투표 기능이 추가되어 있는 정도다. 두 서비스가 공통적으로 달성된 이슈는 보관할 수 있는 기능을 제공한다. 


최근 활동을 보여주는 부분 역시 두 서비스가 유사하다. 한 눈에 볼 수 있고, 클릭하면 의견을 작성하거나 해당 이슈를 자세히 볼 수 있다. 


검색 기능의 경우 do.com이 더 강력하다. 프로젝트 내부의 거의 모든 부분을 자동완성 기능과 검색기능을 통해 찾아볼수 있게 돼있다. 특히나 첨부파일을 일괄적으로 표시하고 검색하는 기능이 매우 맘에 든다. 근데 서버 응답시간 때문인지 약간 느린 감이 있다.


Trello의 경우에는 컨셉 자체가 한 눈에 보여주는 게시판의 형태를 띄고 있는지라, 단순히 텍스트 입력을 통한 검색보다는 Filter와 같은 형태로 이를 지원하고 있다. 문자열과 카드 종류, 색상을 통해 화면에 표시되는 카드들을 필터링할 수 있다.


아무래도 리소스를 자주 공유하게 된다면 do.com 쪽이 편하지 않을까 싶다. 하지만 실제로 리소스를 공유할거면 다른 서비스/솔루션을 알아보는 것이 좋을거다.


결국 이렇게 비교해두고 나면 크게 차이가 나는 부분이 없다. 트렐로의 특징적인 부분이라면 직관적인 UX (게시판 형식)와 (있으나 마나 한) 이슈에 대한 투표 기능 정도가 있을 거고, do.com은 자동완성 기능과 검색 기능 정도가 있을거다.


다만 아이폰 앱은 do.com의 퀄리티가 좀 더 낫고, 트렐로의 경우 API 공개와 플러그인(현재 개발중)을 통해 서드파티 앱을 지원한다는 차이가 있다. 만약 구글 캘린더와 잘 통합할 수 있는 서드파티 앱이 있다면 트렐로를 다시 사용하지 않을까 싶다. do.com으로 옮긴 지금 당장 굳이 트렐로로 다시 옮겨갈 필요는 없고, 플러그인이 지원되어 쓸만한 플러그인인들이 등장할때까지 차분히 기다려봐도 늦지 않다.


개인적으로 이런 간단한 이슈관리 툴에서 지원해주었으면 하는 기능이 있다면 이슈와 이슈를 연결해주거나, 한 이슈에 다른 이슈를 병합시키는 기능이 있었으면 싶다.

일을 하다보면 (있어서 좋을 일은 아니지만) 처음 이슈에 대한 간단한 견적을 내서 명세를 작성하고 난 뒤, 실제로 작업에 착수할 때 이 명세를 세분화해서 다른 이슈로 분리시켜야 할 필요가 생기는데 다른 이슈 관리 툴 (trac, mantis, redmine 등등) 에서는 연관 이슈 등을 통해 충분히 제공할 수 있는 기능이므로 이런 것도 있었으면 싶다. 

만들어 주라.



:

구글 크롬 웹 어플리케이션 바탕화면 아이콘 변경하기

카테고리 없음 2011. 1. 31. 19:19
크롬의 편리한 기능인 웹 어플리케이션 만들기. 이 기능을 사용할 경우 별도의 도구상자가 표시되지 않기 때문에 자주 이용하는 사이트를 어플리케이션으로 만들어 놓으면 매우 편리하게 사용할 수 있죠.


문제는 웹 어플리케이션을 생성할 경우 바탕화면 아이콘이 사이트에 지정된 Favicon으로 자동 설정되기 때문에 바탕화면 아이콘을 커다랗게 해놓고 사용하는 경우 보기가 썩 좋지 않은 경우가 많습니다. 사용자가 아이콘을 변경해도 웹앱을 실행할 경우 다시 favicon으로 대체되기 때문에 일일히 바꿔줄 수도 없는 노릇이고. .

저해상도의 Favicon

사이트에 지정된 Favicon이 고해상도를 지원하는 경우는 흔치 않습니다. facebook도 마찬가지구요.


이럴 때 어플리케이션 아이콘을 원하는 아이콘으로 변경하는 방법이 있습니다.

C:\Users\사용자 이름\AppData\Local\Google\Chrome\User Data\Default\Web Applications\
(숨김 폴더를 보이지 않도록 설정하였을 경우 표시되지 않습니다.)

Web Applications 폴더

www.facebook.com 이라는 이름의 폴더가 보입니다.



위 폴더를 열어보면 바탕화면에 생성한 웹 어플리케이션 사이트의 도메인으로 생성된 폴더가 존재할 겁니다. 변경하길 원하는 어플리케이션 폴더로 들어가면 http_80 폴더가 있는데 이 폴더를 열어보시면 어플리케이션 이름과 같은 ico 파일이 있는데 이 파일을 변경하길 원하는 아이콘 파일로 대체하시면 됩니다.




대체하고 난 뒤에는 윈도우의 캐쉬 때문에 아이콘이 변경되지 않은 것처럼 보일 겁니다. 이럴 땐 explorer.exe 프로세스를 종료하고 다시 실행시켜 주시거나 컴퓨터를 재부팅해주시면 깔끔하게 적용될 겁니다.

아이콘을 대체한 모습

시스템을 재시작하고 나면 아이콘이 성공적으로 변경된 것을 확인할 수 있습니다.




:

CentOS 5.5 에서 Python 2.7.1 + twisted + django 설치 쉘 스크립트

프로그래밍 2011. 1. 28. 17:40
#!/usr/bin/sh

PY_VER=2.7.1
PY_PACKAGE_VER=2.7
PY_INSTALL_PATH=/opt/python2.7.1

su
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.$HOSTTYPE.rpm
rpm -Uhv rpmforge-release-0.5.1-1.el5.rf.$HOSTTYPE.rpm

yum -y groupinstall 'Development Tools'
yum -y install openssl-devel* zlib*.$HOSTTYPE

wget http://sqlite.org/sqlite-amalgamation-3.7.3.tar.gz
wget http://python.org/ftp/python/$PY_VER/Python-$PY_VER.tgz
wget http://pypi.python.org/packages/$PY_PACKAGE_VER/s/setuptools/setuptools-0.6c11-py$PY_PACKAGE_VER.egg

cd
tar xfz sqlite-amalgamation-3.7.3.tar.gz
cd sqlite-3.7.3/
./configure
make
make install

cd
tar xfz Python-$PY_VER.tgz
cd Python-$PY_VER
./configure --prefix=$PY_INSTALL_PATH --with-threads --enable-shared
make
make install

cd
echo "alias python=$PY_INSTALL_PATH/bin/python" >> .bash_profile
echo "alias python$PY_PACKAGE_VER=$PY_INSTALL_PATH/bin/python" >> .bash_profile
echo "PATH=\$PATH:$PY_INSTALL_PATH/bin" >> .bash_profile

cd
echo "$PY_INSTALL_PATH/lib" >> /etc/ld.so.conf.d/opt-python$PY_PACKAGE_VER.conf

cd
sh setuptools-0.6c11-py$PY_PACKAGE_VER.egg
cd $PY_INSTALL_PATH/lib/python$PY_PACKAGE_VER/config
ln -s ../../libpython$PY_PACKAGE_VER.so .

cd
source .bash_profile
/sbin/ldconfig

easy_install twisted
easy_install django

:

온라인으로 프로그래밍

프로그래밍 2009. 5. 20. 16:37
 브라우저만 가지고 이런저런 것들을 만들어 볼 수 없을까 고민고민 전전긍긍 엎치락뒤치락하다가 찾은 제법 쓸만한 사이트들입니다.

온라인 FTP 브라우저
FTPLive : http://www.ftplive.com/
Net2FTP : http://www.net2ftp.com/

Net2FTP 가 좀 더 이런저런 잡기능들이 많고, FTPLive는 딱 그냥 심플한 느낌.

온라인 편집기
Codepad : http://codepad.org/
jhp : http://www.3site.eu/jstests/jhp/
PHPanywhere : http://phpanywhere.net/

jhp는 자바스크립트 편집기 입니다. 좌측 하단 창이 Output 창이라서 코드를 작성한 뒤 마우스를 클릭하면 바로바로 실행이 되죠. 자동 들여쓰기, 구문 강조, 자동 완성까지 된다던데 어째 전 잘 안되네요. PHPanywhere는 구글링 좀 해보니 지금 있는 php 온라인 에디터 중엔 쵝오라던데 영 찝찝합니다. 제가 IE6 라서 그런가보죠?

끝으로 SplashUp!(http://www.splashup.com/) 이 갖추어지면 코딩에 이미지 작성 툴까진 온라인으로 대체할 수 있겠네요. 느리다는 것만 빼면.

빨리 배워서 재밌는 거나 만들어야 할 텐데.

:

총알피하기 3D

카테고리 없음 2008. 4. 6. 09:57
사용자 삽입 이미지
invalid-file

다운로드 (자동압축풀림)


 [8시간 내에 어떻게든 만들고야 말겠어!] 프로젝트 그 두번째. 총알피하기를 3D로 바꿔봤습니다. 게임방식, 스코어 등등은 완전히 2D일때와 같구요. 달라진 것은 그냥 3D가 되었다는 점 뿐. 시점도 탑뷰 고정이구요. 앞서 첫번째에서 만들었던 2D 버전의 게임코어를 lib로 불러들여 3D로 뿌려줬다는 점. 이 전부네요.

아. 리소스가 바꼈군요! 3D로.

:

마인드맵 툴을 만들었습니다

프로그래밍 2008. 4. 3. 01:38
사용자 삽입 이미지

마인드맵 프로그램 '마음난리'


'마음난리'란?
  • 여럿이서 하나의 마인드맵 작업을 하기 위한 프로그램입니다.
  • 로봇이 오픈API를 사용하여 아이디어 연상을 도울 수 있는 키워드를 추천해줍니다.
  • 마인드맵을 XML문서, 혹은 웹 오피스를 통하여 출판할 수 있습니다. (미지원)
 일단 시험적으로 며칠동안 서비스는 할 것 같은데 사실 서비스, 서비스 하기엔 건더기가 너무 없죠. 실은 매쉬업 경진대회를 목표로 연초에 작업하던 것을 최근 다시 꺼내서 만들어봤습니다. 스프링노트, 구글닥스 등 웹 오피스에 대한 출판 기능을 추후 추가할 예정입니다. 물론 그 추후가 언제가 될지는 저도 잘 모르겠네요.
 관심있으시면 꼭! 실행해보시고 의견 부탁드립니다.

파이썬+QT
 배포판을 보시면 알겠지만 파이썬을 이용하여 작업하였습니다. GUI는 PyQt4 라이브러리를 사용하였으며 py2exe를 이용하여 배포판을 만들었습니다. 프로젝트 시작시에는 Eclipse+pyDev를 사용하다가 중반 쯤 들어 다른 IDE를 써볼까 하고 찾아보았는데, 파이썬 멀티스레드 디버깅이 편한 IDE가 안보이더라구요.

XMLRPC
 서버/클라이언트 구조를 기본으로 상정하며 프로토콜은 XML-RPC를 사용합니다. 실제 마인드맵 데이터는 XML DOM을 통하여 관리하고 있습니다. 때문에 성능의 저하가 있을지 모르겠습니다. 서버는 역시 파이썬으로 Twisted라는 웹 프레임워크를 사용하여 구축하였습니다.
 
OpenID
 안보이게 이쁘게 처리하고 싶었는데 오픈아이디의 인증방식 자체가 어쩔 수 없이 한 번은 사람 손을 타게 되어 있어서, 어쩔 수 없이 새 창을 띄우는 방식으로 조금 더럽게 처리할 수 밖에 없었네요. 대신 로그인의 수고라도 조금이나마 줄이고자 로그인했던 아이디를 기억하는 옵션을 추가해두었습니다.

OpenAPI
 주된 기능으로 다음의 문맥 키워드 추천, 네이버의 연관검색어, 구글의 웹 검색을 이용했습니다. 직접 마인드맵을 작성해보시면 어떻게 사용되었을지 지레 짐작이 가실 겁니다. 그리고 외국의 오픈API 중에 Lingr라는 채팅API가 있어서 시험삼아 넣어보았습니다. 프로토콜로는 json을 이용하며 외국이라 그런지 만족스러운 속도는 아닙니다. 어떻게든 사용자들에게 커뮤니케이션 수단을 제공하고 싶어서 넣은건데…. 나중에 Skype API라도 쑤셔볼까하는 생각이 드네요.

유니코드, 영어
 기본적으로 프로그램 내에서 UTF-8을 통하여 모든 문자열을 처리하도록 되어 있습니다. 그런데 Eclipse IDE는 에디터 창이 조금 이상한 탓인지 한글이 들어간 소스를 저장할 경우 다음 번에 파일을 열 때 산산조각이 나 있더군요. (pyScripter나 EricIDE같은 경우에는 별 문제가 없었는데 EclipseIDE의 문제인 것 같습니다.) 그래서 작업의 편의를 위하여 코드 내의 문자열은 영어로 입력했습니다. 짧은 영어실력이 만천하에 드러나겠네요. 영어집중교육 등록해야겠다.
 유니코드가 참 여러군데에서 발목을 걸고 넘어지더라구요. 검색결과, 위젯의 문자열에서부터 quote해야할 문자열의 인코딩 문제까지…. 정말 인코딩의 가시밭길을 헤쳐나온 기분이었습니다.

Lingr가 속도가 느린 관계로 채팅을 배제한 상태입니다.
참. 마인드맵 메뉴는 오른쪽 버튼을 누르시면 됩니다.
적절한 테스트를 거치지 못해서 자꾸 글을 수정하게 되네요.

:

Dodge, 뷃뗍, 총알피하기, 포인터 능엄경

프로그래밍 2008. 3. 31. 10:25
사용자 삽입 이미지
invalid-file

(다운로드, Win32 바이너리)


 [8시간 내에 어떻게든 만들고야 말겠어!]
프로젝트 그 첫번째, 유명한 게임을 리메이크해보았습니다. 첫번째 8시간 프로젝트는 시간을 초과해버리고 말았습니다. 초반 4시간까지는 객체 설계나 기본 설계 까지는 빠른 속도로 진행가능했는데, 비트맵 뿌리는 부분에서 갑자기 주춤해서 시간이 너무 오래걸렸네요. (알고보니 오타 때문이었음.) 거기다가 펑크터 삽질에, 괜시리 최적화된 알고리즘이니 뭐니 생각해낸답시고 시간을 질질 끌다보니 어느덧 8시간을 넘어 10시간, 11시간. 절망했다!!

시간초과원인 분석
- functor 구현 시도에서 삽질 (결국 functor 포기)
- 적절한 탄환 배치 방법에서의 난항 (극좌표, 평면좌표를 헤매다가 적당한 눈속임 알고리즘으로 땜빵)
- 시간초과로 인한 졸음크리, 계속된 오타
- 속 안녕, 절망선생 13화

그리고 포인터 능엄경 [ 링크 ]

:

코에부(こえ部), 일본발 음성(音聲)UCC플랫폼

생각하다 2008. 3. 8. 08:18
작년 이맘때, 콧노래로 음원을 검색하는 서비스 미도미가 한국 블로그스피어에 소개된 적이 있다. 지난 몇년간 인터넷을 뜨겁게 달구던 웹2.0적인 서비스(참여적 집단지성)의 한가지로 본인도 노래제목이 도무지 생각나지 않을 때 어줍잖은 콧노래로 이런저런 곡들을 찾아보면서 꽤 즐거웠던 생각이 난다. 사실 얼마 써보진 않았지만 참 재미있고 좋은 서비스라는 인상을 받았다.

독특한 검색서비스로 잘 알려진 미도미이지만 사실 그 한 축을 담당하고 있는 것은 '레코딩 스튜디오'이다. 사용자가 원하는 아티스트의 노래를 일부 혹은 전체를 미도미닷컴에서 녹음하면, 녹음된 파일은 다른 사람들에게 열람이 가능하다. 자신의 노래를 미도미를 방문하는 여러 사람들에게 들려줄 수 있는 것이다.
레코딩 스튜디오의 녹음된 음성들은 검색 엔진의 DB구축에도 이용되며 사용자간의 상호작용 및 부가적 컨텐츠 창출의 요소로 작용하기도 한다. 초기에는 미흡했던 SNS적 기능 역시 계속해서 추가되고 있다.

만약 이런 미도미닷컴을 오타쿠 문화의 본산지 일본에서 현지화한다면 어떨까? 유튜브니코니코동화를 비교해본다면 얼추 상상을 할 수 있을까? 막연한 상상에 대한 답안을 제시하는 서비스가 이미 나타났다. 코에부(こえ部)가 그것이다.

미도미가 '노래'와 '검색', '경연(contest)'에 집중하여 서비스를 시작한 반면(물론 지금은 SNS적 요소도 강화되었다.), 코에부는 기본적으로 사용자가 원하는 음성(こえ)을 부탁(お題)하는 좀 더 긴밀한 상호작용을 필요로 하는 컨셉을 취하고 있다. 음성은 부탁에 대한 답변으로서, 부탁이 없이는 게시(업로드)될 수 없다. 우리가 흔히 쓰는 게시판에서의 게시물과 리플의 관계를 생각하면 쉽다. 다만 코에부에서 주가 되는 컨텐츠는 댓글에 해당하는 음성(こえ)이라는 것이 다른 점이다.
 
사용자 삽입 이미지

부탁(お題)에 대한 음성(こえ)이 업로드되면 사용자들이 들을 수 있다 (출처: http://koebu.com)


특이한 것은 유튜브처럼 녹음된 컨텐츠를 손쉽게 다른 페이지로 옮길 수 있도록 플레이어 링크를 제공한다는 것이다. 니코니코동화의 경우에는 철저한 회원제 운영이기 때문인지 퍼가기 기능을 제공하지 않는데 그에 비하면 상당히 개방적인 정책을 취한다고 하겠다.
미도미와 같이 플래시를 통한 녹음환경을 제공하고 있으며 사이트는 회원제로 운영되어진다. 유저간 상호작용의 경우에는 추천기능과 유사한 스마일버튼을 이용하고 있다.  3, 4월 중에는 휴대전화를 이용한 업로드 역시 제공할 것이라 한다.

현재 매의발톱단 관련 이벤트(일만인의 성우 대모집!)를 진행중이다. 코에부가 지향하는 모습을 잘 나타내주는 이벤트다.

:

RSS와 온라인 컨텐츠 중개권

생각하다 2008. 1. 11. 22:36
개인화 포털 서비스로 유명한 위자드닷컴. 최근 한겨레신문사의 인터넷 기사 서비스를 제공하는 한겨레엔에서 위자드닷컴에게 강력한 태클을 걸어왔다. 위자드닷컴에서 기본적으로 제공하고 있는 인터넷한겨레최근기사목록을 삭제해달라는 것. 분쟁이 일어난 당일인 현재(1월 11일)까지는 인터넷한겨레 RSS의 배포권을 둘러싼 사람들의 토론이 활발하게 이루어지고 있다.
이 같은 논란은 한국온라인신문협회의 행보와 맞물려 있는 것으로 보인다. 자세한 것은 아래의 링크를 참고하면 될 듯 싶다.
현재 웹 추세가 오픈API, RSS를 시작으로 점점 개방지향적, 상호협력적인 유기적인 생태계를 만들어가고 있는 상황이므로 그 생태계를 이어주는 연결고리에 해당하는 컨텐츠의 배포권에 대한 이러한 분쟁은 충분한 논의가 이루어져 바람직한 선례를 남겨야하지 않나 싶다.

링크 : http://news.chosun.com/site/data/html_dir/2008/01/11/2008011101070.html

사견을 말해보자면, RSS라는 개방지향적인 수단을 가지고 왈가왈부하는 것이 잘 이해가 가지 않는다. 웹2.0이라는 트렌드에 발맞추려면 트래픽에 의존하는 수익구조에서 컨텐츠 위주의 양적인 면에서 승부를 봐야 하지 않을까.

: