IT 업계에서 일하고 계시는 보다 다양한 분들을 만나고, 친구들로부터 워낙 대안언어축제가 괜찮다(?)는 얘기를 들어서 참석하게 되었습니다.
(사실 그 친구가 esoteric programming languages에 관심이 많은 녀석이라...)
현재 텍스트큐브 개발에 참여하고 있고, KAIST 전산과(학사)에 재학 중입니다.
저에 대한 더 자세한 정보는 제 개인 웹사이트 http://daybreaker.info를 참고하세요. :)
(사실 그 친구가 esoteric programming languages에 관심이 많은 녀석이라...)
현재 텍스트큐브 개발에 참여하고 있고, KAIST 전산과(학사)에 재학 중입니다.
저에 대한 더 자세한 정보는 제 개인 웹사이트 http://daybreaker.info를 참고하세요. :)
Ice Breaking : 6x6 Game
- 게임 규칙
- 한 테이블에 6명씩 앉는다.
- 프로젝터로 6x6 보드판을 띄워놓는데 각 칸에는 각종 미션이 적혀있다.
- 옆 테이블 사람과 자리 바꾸기, 자신이 참여한 가장 성공적인/실패한 프로젝트, 첫사랑 이야기, 자기에 대한 가장 큰 오해, 취미, 가장 듣고 싶은 칭찬, PT 체조(-_-) 등등
- 돌아가면서 주사위를 두 번 던져 행렬로 칸을 선택하고 해당 미션을 수행한다.
- 자리 바꾸기가 나오면 옆 테이블에서 현재 미션을 진행 중인 사람과 자리를 바꾼다. (그 사람이 뭔가 하고 있더라도 중간에 끊어서 데려온다)
- Ice breaking 용으로는 상당히 괜찮은 아이디어인 듯.
- 문제점 : 한 테이블로 오는 자리바꾸기와 가는 자리바꾸기가 동시에 일어났을 때 concurrency 문제가 있어서 삼각 교환(?)이 이루어지는 경우가 꽤 있었다.
Project Hours - 자유 프로젝트 (보드게임 만들기)
- Silent Hill: 환승 게임 제작 참여
- 실제 play를 진행하면서 점진적으로 개선하는 것이 짧은 시간에 원하는 결과를 만들어내는 데엔 큰 도움이 되는 것 같다.
- 일종의 애자일 방법론 체험이라고 생각된다.
- 대신, 좀더 고도의 설계·사고를 요하는 아이디어는 playable해지기까지 어느 정도 시간이 걸리므로 이런 방식으로 만들기는 힘들 것 같다
- 실제 프로그래밍 세계에서 이런 케이스로 어떤 것이 있을까?
- 가장 인상깊었던(?) 게임은 수학여행에서 살아남기였다.
- 게임 자체는 단순하지만 벌칙과 상벌에 대한 아이디어로도 충분히 재미를 줄 수 있음을 깨달음. 즉, 게임의 구성요소에서 승리와 패배, 혹은 종료 조건이 꼭 필요한 것은 아니란 것.
언어튜토리얼 1, 2 - Haskell
- 사실 학교 수업에서 functional language로 Scheme/LISP, Ocaml을 다뤄본 경험이 있어 까먹은 내용 다시 복습하는 기분이었지만, 워낙 평소에 잘 안(?) 쓰는 내용이다보니 생각보다 많이 까먹었던(...) 것을 알 수 있었다.
- 그러나 함수형 언어 자체를 처음 접하시는 분들은 좀 어려워하셨다. 함수형 언어에서는 기존의 생각을 지우고 백지에서 다시 처음부터 체계를 수학적으로 쌓아올라간다고 생각하면 쉬운데, 자꾸 C/Java 같은 언어와 비교해가며 배우려고 해서 그런 것 같다. 이게 보통 일반적인 프로그래밍 언어를 배우는 데엔 도움이 되나 패러다임이 완전히 다른 경우엔 오히려 독이 되기도.
- Type inference 과정 추적해보기, 함수형 언어에서 말하는 class, polymorphism, overloading등의 개념을 다시 정리할 수 있어서 좋았다.
- Haskell로 구현한 미니 Quake가 인상적이었다.
언어튜토리얼 3 - Smalltalk
- 말로만 듣던 Smalltalk이 뭔지 알 수 있었다.
- 일종의 기본 가상 월드가 담긴 이미지 파일 하나를 두고 계속 변경 이력을 쌓아가는 방식으로 하나의 프로그램이 만들어진다는 과정이 특이했다. 소스코드라고 하면 보통 텍스트파일 형태로 된 것을 생각하는데 GUI 구성이 결합된 작업 공간 자체가 소스코드의 역할을 한다는 점에 많은 사람들이 혼란스러웠던 것 같다.
- Smalltalk UI 사용하는 것이 조금 복잡(?)했지만 일단 익숙해지니 무엇이든 해킹해 밑바닥까지 내려갈 수 있겠다는 생각이 든다.
Project Hour - Media Art (II)
- 내가 스웨덴 교환학생할 때 KTH(Kungliga Teknisk Högskolan)에서 들은 Music Technology & Musical Communication 수업에서 사용했던 비디오 처리 프로그램인 EyesWeb과, 이곳을 통해 배운 Scratch, 그리고 이 둘을 연결해주기 위한 Python 데몬을 하나 만들었다.
- 아이디어는 웹캠으로 실시간 캡처한 영상에서 사람의 팔, 다리, 손, 머리 좌표값을 읽어 Scratch로 보내 사람과 똑같이 움직이는 졸라맨을 만들어보려고 했던 것.
- 결과는 삽질만 하다가 미완성.
- EyesWeb이 윈도 전용인데다 Parallels에서는 iSight를 인식하지 못하는 문제가 있어 다른 분의 윈도 노트북을 이용했는데, 웹캠이 동작하다 안 하다 해서 테스트가 힘들었다.
- 내 맥북프로에서 Python 데몬을 돌렸는데 이때 Open Sound Control 프로토콜을 해석해주는 라이브러리(SimpleOSC 0.2.5)를 하나 가져다 썼다. 그런데 아무리 해도 아무런 패킷 수신이 발생하지 않아서 패킷스니퍼까지 동원한 끝에 결국 그 라이브러리 자체의 문제임을 알아냈다. orz 직접 소켓 열어서 받으니 잘 받아졌으나 이미 시간 종료.
LETS (지역화폐를 통한 소통 시간)
- 특정한 지역에서만 지역적으로 사용 가능한 신뢰 기반의 가상 화폐 개념을 통해, 사람들 사이에서 자유롭게 서비스의 유통이 일어나고 서로 학습하는 공유를 실현하는 시간이었다.
- "세 사람이 길을 가면 그 중 반드시 스승이 있다"라는 말과 잘 어울리는 듯?
- 배운 것
- 인터넷 중고서점 정보 (from 이명은)
- PHPUnit 기초 사용법 (from 홍민희)
- RoR 맛보기 (일부, from 아샬) - 이상하게 아샬님은 땀 이체가 안 되더군요..;;
- 가르쳐준 것
- 오픈소스 프로젝트 참여 방법
- Subversion + Trac 설정하는 방법

피아노 연주 인상적이었습니다. EyesWeb은 저도 하나 배웠네요~
안녕하세요~~~ 어제 WoC에서도 뵈었죠~~~
피아노 연주 멋져요 ^^
피아노 연주 너무 멋졌습니다. 아참, 그리고 우리 하려던 춤추는 졸라맨 완성해야죠?
완성하셨음 Subversion 에 좀 올려주세요. 테스트 해보고 싶어요!
아 피아노 연주! 노트북 악보도 인상적이었습니다 ㅋㅋ
피아노 위에 올려있는 노트북과 피아노 소리를 보고는, '도대체 무슨 일이 일어나는 거지?'하고는 냉큼 달려갔었습니다~
브라바~ ㅎㅎ
으으, 피아노 연주 저도 보고 싶었는데 말이죠 ㅠㅠ