September 2010
9 posts
1 tag
트위터에서 누가 이런 동영상(주의: 자동 재생됨)을 뿌린(?) 적이 있다. 굉장히 웃긴 내용이면서도 내용이 심오한데, 찾아 보니까 3 Idiots라는 인도 코미디 영화에 나온 장면인 것 같다. 근데 위키스포일러사전에서 내용을 확인해 보니까 스토리가 전혀 코미디같지가 않은데(…) 의외로 괜찮아 보인다.
동영상의 내용을 간단하게 요약하면, 공학 수업을 듣는 학생들이 교수가 “기계란 무엇인가?”라는 질문을 하자 다들 책에 있는 내용만 달달 외워서 말하는데 (그리고 교수는 그걸 보고 훌륭하다고 한다) 란초라는 한 학생만이 그걸 굉장히 잘 풀어서 말했다가 내용 안 외워서 말한다고, 교수의 노여움을 사서 강의실에서 쫓겨나자 나가는 척 하다가 교수를 역으로 관광시키는 훌륭한 내용이다....
1 tag
Brainfuck interpreter in 2 lines of C
I did know about the twIP, a very small IP stack that can only respond to pings and also fit in a tweet, but recently I tried to execute the idea of making small and still usable things like that.
Well, I ended up with a slightly large program than a tweet, but it fits in two lines, i.e. 160 bytes. Let me introduce the world’s smallest Brainfuck interpreter1 in C: (Gist)
Test it...
추석에 집에 안 가고 기숙사에서 눌러 앉아서 논문 읽고 코딩하고 쳐 자고 했는데 이것도 나쁘진 않은 것 같다. 나는 원래 집이 있는 수도권에는 잘 가지 않는 주의인데, 한 번 가려면 준비가 많이 필요하고 시간도 많이 걸려서 기피하는 편이었다. 게다가 이번 추석에 수도권이 또 다시 물난리가 난 걸 보니 타이밍 잘못 맞췄으면 정말로 물벼락 맞을 뻔 하기도 했고. (들고 다니는 물건 중에 전자기기가 많아서 물벼락 잘못 맞으면 큰일난다.)
인터넷을 돌아다니다 보니까 이번 폭우 때문에 광화문 대로가 물에 반쯤 잠기면서 이순신 장군 동상과 대조되어 “명랑대첩”이라고 (…) 하는 것도 보이고, 어디서는 하수구가 역류해서 포세이돈의 강림이라고 한다거나(…) 뭐 별의별 사진이...
GnuWin32 바이너리 충돌
윈도에서 유닉스 유틸리티를 쓰려면 (언제나 그렇지만) 상당한 삽질을 감수해야 한다. GCC 같은 경우에도 요전에 TDM-GCC 깔려다가 의존성이 꼬여서 개판이 된 적이 있었는데, 이번에는 GnuWin32가 문제였다.
나같은 경우 웬만한 프로젝트는 GNU Make를 가지고 자동화를 하는 게 보통인데 (물론 요즘 바닐라 Makefile을 그대로 쓰는 것은 좀 시대착오적인 발상이긴 한데… GNU 버전만 쓴다고 치면 좀 더 자동화할 거리는 많으므로…) 윈도에서 사용하다 보면 종종 요런 에러메시지가 날 때가 있다.
mkdir objs
process_begin: CreateProcess((null), mkdir objs, ...) failed.
…그러니까...
1 tag
현명한 기술 수용
최근 몇 년동안 내가 스마트폰이 없다고 하면 깜짝 놀라는 사람들이 종종 있었다. 뭐 결국 계기가 생겨서 사긴 했지만, 아무래도 나는 얼리 어답터(선각 수용자)로 분류되기에는 너무 반응이 늦다. 기껏해야 전기 수용자1거나 종종 후기 수용자가 될 정도? 세 개의 운영체제를 쓸 정도로 기술적 범위가 넓은 사람 치고는 업데이트도 자주 안 한다: 나는 윈도 XP 이후의 운영체제를 데스크탑으로 쓴 적이 아직 없고 (다만 이건 아직 윈도를 깔만한 머신이 없는 상황이기 때문에 머신이 생기면 아마 7을 깔 것이다) 맥도 10.5 다음 버전으로 업데이트하길 거의 포기한 상태이다. 아마 지금 상황을 볼 때 새로 산 넥서스 원도 지금은 최신 버전이긴 하지만 프로요 다음 버전 나오면 한참 뒤에 업데이트할 것이 거의 명확해...
학교에서 6년 가까이 구르다 보니까 학교에 불만불평괴로움이 지나치게 많아서 좀 그렇다. 학생을 봉으로 아는 학교, 돈 문제, 허구한 날 토목공사 벌이는 것 따위는 뭐 차치하고라도, 전산학과인 나한테 가장 와닿는 문제점은 역시 학교 사이트들이다. 학교 포탈이라고 하는 것은 ActiveX로 떡칠하고 심심할 때마다 에러 내뱉는 최악의 사이트이고, 웹메일 또한 인트라넷 메일이 얼마나 쓰레기인지 알 수 있는 대표적인 예시이며(그나마 포워딩이 되어서 다행), ERP 시스템인 CAIS는 어째 사이트보다 1998년에 만들어진 스탠드얼론 프로그램이 더 멀쩡해 보이는 기분이 들기까지 한다.
근데 이보다 더 거지같은 것은, 정작 교직원들 대부분이 이 사태가 왜 문제가 되는지 모른다는 점이다. 오늘 얘기를 하자면: 학교에...
Factorization using the Elliptic Curve Method →
가끔 꽤 큰 (100자리 안팎의) 수를 소인수분해해야 하는 때 굉장히 유용한 사이트이다. 자바 애플릿이 지원되는 브라우저라면 누구나 쉽게 사용할 수 있고, 수식 같은 것도 지원한다. 물론 이것보다 더 크고 빠른 알고리즘들도 여럿 있지만 쓰기 쉽다는 면에서는 이걸 따라갈 자가 없을 듯. 이를테면…
115637591615103956795174714557813425362709052150245086591681663986584099728509 =
318739378480534322917464111889160513903 x 362796690406943364286095010035637115603
정도의 소인수분해를 연구실 컴퓨터에서 15분만에 할 수 있었다. (미궁 개발자들한테는 미안하지만 256비트...
August 2010
8 posts
SAC OOPS 논문 뒷얘기
몇 달의 삽질을 통해 오늘 (정확히는 9시간 전에) 지금껏 교수님과 함께 열심히 쓴 논문을 SAC OOPS 2011에 submit했다.
우리 연구실 사람들이 연구하는 주제는 기본적으로는 셋 다 포트리스에 대한 것이라는 점에서는 동일한데, 세부적으로는 상당한 차이가 있다. Formal semantics를 증명 보조기로 기계화하는 쪽도 있고, 언어 코어에 새로운 기능을 집어 넣는 사람도 있는데, 나 같은 경우 순전히 언어 내부를 안 들여다 보고 내부의 겉 기능을 가지고 뭔가를 하자는 쪽이었다. (아주 의도한 방향은 아니었는데 결국 겉 기능만 가지고 안 되긴 했다…) 그래서 얘기가 나온 것이 하스켈의 QuickCheck을 포팅하면서 좀 탐색을 해 보자…는 거였는데 최종 논문이 이 쪽으로...