Media Log



2014 RubyConf 에서 마츠와의 질문 답변 시간에 어떤 청중 하나가 루비에 매크로를 지원할 생각이 있냐고 질문하자,


My short answer is NO.

A slightly longer answer is...NO WAY! (청중들 폭소)


마츠는 C언어의 매크로를 생각하고 대답한 것이 틀림없는데(나를 포함한 웃은 사람들도), 마츠의 대답을 듣고 아무말 없이 돌아서서 뒤로 나가던 그 질문자도 그런 의도였는지는 지금 다시 생각해보면 확실하지가 않다.


저작자 표시 비영리 동일 조건 변경 허락
신고

submit

좋은 프로그래머가 되려면 컴퓨터가 명령어를 실행시키는 데 걸리는 시간, 메모리에서 데이터를 가져오는 데 걸리는 시간(캐시 히트 또는 미스가 날 때를 각각), 디스크에서 데이터를 읽어오거나 탐색하는 데 걸리는 시간을 잘 알고 있어야 한다.
그 답은 아래 표에 나와있다. (출처 http://norvig.com/21-days.html#answers)

execute typical instruction

1/1,000,000,000 sec = 1 nanosec

fetch from L1 cache memory

0.5 nanosec

branch misprediction

5 nanosec

fetch from L2 cache memory

7 nanosec

Mutex lock/unlock

25 nanosec

fetch from main memory

100 nanosec

send 2K bytes over 1Gbps network

20,000 nanosec

read 1MB sequentially from memory

250,000 nanosec

fetch from new disk location (seek)

8,000,000 nanosec

read 1MB sequentially from disk

20,000,000 nanosec

send packet US to Europe and back

150 milliseconds = 150,000,000 nanosec


나는 도대체 나노초가 어느 정도인지 감도 잘 오지 않는다. 그래도 뭐 외우라면 외워야지.
저작자 표시 비영리 동일 조건 변경 허락
신고
  1. 초보 at 2012.03.25 11:46 신고 [edit/del]

    락 거는 게 메모리 접근 보다 빠르다는게 놀랍네요.
    저는 매우 느릴거라고 생각했는데...

    Reply
    • Favicon of http://www.benjaminlog.com BlogIcon 김재호 at 2012.03.26 12:07 신고 [edit/del]

      Mutex lock이 뭘 말하는건지 잘 모르겠지만 뮤텍스 커널 오브젝트를 생성하고 획득한다던지 하는 내용은 아닌 것 같습니다. CPU가 제공하는 LOCK 명령어를 저렇게 쓴 건 아닐까 싶네요.

submit

그는 결코 틀리는 법이 없어.
자신이 만났던 가장 위대한 해커이자 비아웹의 절친한 동료였던 로버트 모리스를 보고 하던 말.
저작자 표시 비영리 동일 조건 변경 허락
신고

submit
이스트소프트 블로그에 반가운 글이 올라왔다.
한 때 흠모했던, 내게 많은 영향을 주었던 어떤 분의 이야기.

프로그래머 민영환 부사장을 만나다.
 
 

저작자 표시 비영리 동일 조건 변경 허락
신고

submit

마이크로소프트가 OS 업그레이드시 고의로 기존 응용 프로그램들이 동작하지 않도록 만든다는 비난을 받을 때면 나는 정말 화가 난다. 만약 어떤 프로그램이 윈도우 95에서 실행되지 않는다면 나는 이를 개인적인 실패로 받아들였다. 나는 수 많은 밤을 새어가며 윈도우 95에서 응용 프로그램들이 제대로 동작할 수 있도록 써드 파티 프로그램들의 버그까지 디버깅했다.

저작자 표시 비영리 동일 조건 변경 허락
신고

submit
이거 당황스럽군요.

몇 일전 Going Native 2012 키노트 발표에서, 적절한 자료구조와 알고리듬을 사용하라는 이야기를 하던 중 준비한 프리젠테이션 자료가 한장 빠진 것을 깨닫고서는.

비야네의 예기치 못한 방송사고(?)에 긴장해서 지켜보다가 그의 대처에 폭소하여 쓰러질 뻔했다.

저작자 표시 비영리 동일 조건 변경 허락
신고

submit

뭔가 의심이 갈 때면 프로세스 모니터를 실행시켜 확인해 봐라.
데이비드 솔로몬은 그의 제자였던 마크 러시노비치에게 종종 이 말을 했다고 하는데, 마크 러시노비치는 이를 마치 하나님의 말씀처럼 신봉했다고 한다. 심지어는 자기 딸이 학교 숙제를 가져와서 아빠 이거 모르겠어요 할 때도, "프로세스 모니터로 확인해보거라." 라고. -_-; 아마 딸도 컴퓨터공학을 배우나 보다. 마크 러시노비치를 닯았다면 예쁘겠지.

나도 이 말을 잘 지키고 있다. 프로세스 모니터는 사람들이 잘 모르는 디버깅 도구 중 가장 유용한 하나이다.
저작자 표시 비영리 동일 조건 변경 허락
신고

submit

윈도우즈를 잘 이해하기 위해서는 레지스트리와 친해져야 한다. - Jeffery RichterWindows via C/C++ 중에서

한 때 이 글을 읽고 레지스트리를 다루는 책을 도서관에서 몽땅 빌려서 읽었던 적이 있다. 어느 정도 숙달이 되어 레지스트리 에디터를 열면 빛의 속도로 트리를 탐색해 나갈 수 있었는데, 작년에 회사를 그만두고 2달여를 집에서 쉬다가 다시 새로운 회사에 들어갔을 때 나의 이 능력이 마법처럼 사라져 버렸다는 것을 깨닫게 되었다. 아쉬운 일이다.
저작자 표시 비영리 동일 조건 변경 허락
신고

submit

그가 쓴 해커가 되는 방법이라는 글에서, 훌륭한 프로그래머가 되려면 얼마나 걸리냐는 질문에
얼마나 재능이 있고 열심히 공부하는지에 따라서 다르다. 만약 충분히 노력한다면 1년 반에서 2년 정도 사이에는 꽤 훌륭한 수준의 기술을 갖게 될 수 있다. 하지만 그게 끝이라고 생각해선 안된다. 훌륭한 프로그래머가 되기 위해서는 10년 정도가 걸린다.
만약 진정한 해커가 되고 싶다면 끊임없이 학습하고 기술을 다듬는데에 남은 인생 모두를 투자해야 한다.

저작자 표시 비영리 동일 조건 변경 허락
신고

submit

유명한 리누스 토발즈와의 논쟁에서,

리누스 토발즈가 모놀리딕 커널을 계속 옹호하고, 이식성은 나중에 신경써도 된다고 말하자

당신이 제 학생이 아닌 것이 다행입니다. 그러한 설계로는 아마도 좋은 학점을 받지 못할 것입니다.
1991년 지금 시점에서, 386에서만 돌아가는 이식성 없는 새로운 OS를 설계하는 것은 당신에게 F를 안겨 줄 것입니다. 다만 기말 시험을 잘 본다면 이 과목은 통과할 수 있습니다.
잘은 모르겠지만 그래도 확신하건데, 아마도 이 논쟁은 타넨바움의 머리 속에서 가장 지워내고 싶은 기억 중 하나일 것이다.
저작자 표시 비영리 동일 조건 변경 허락
신고

submit

파이썬 프로그래머가 자바 프로그래머보다 똑똑하다. - 위대한 해커에서
이 말을 하고 그는 전 세계의 수 많은 자바 프로그래머들에게 엄청난 욕을 먹었다.
이후에 이에 대해 약간의 변명을 하기도 했다. 변명도 재미있다. 일리있다.
저작자 표시 비영리 동일 조건 변경 허락
신고
  1. 초보 at 2011.12.14 18:27 신고 [edit/del]

    저 분이 폴그레이엄 이신가요?
    너무 멀쩡하게 생기셨는데요.

    ps. 하신 말씀에는 전적으로 동의합니다.

    Reply
    • Favicon of http://www.benjaminlog.com BlogIcon 김재호 at 2011.12.15 00:31 신고 [edit/del]

      글 쓸 때는 아주 직설적인데 대화하는 모습을 보면 매너도 너무 좋고 푸근한 사람 같아보이더라구요. http://www.youzin.com/blog/?p=3024 이것도 한번 보세요.

submit


개발자들은 스타일에 관한 이야기를 하는 것을 좋아합니다. 이 문제는 마치 "무엇이 진정한 하나의 에디터일까"에 대한 이야기처럼 자주 입에 오르내립니다. 마치 이견이 있는 것처럼 말이죠. 답은 이맥스입니다. - Effective STL에서 컨테이너들의 범위 멤버 함수를 사용하는 것은 단일 요소 멤버 함수를 사용하는 것보다 모든 면에서 좋기 때문에 이견이 있을 수가 없다는 것을 설명하면서.
나는 비록 Vim을 더 좋아하지만 스캇 마이어스의 이 말을 듣고 이맥스를 배우고 싶다는 욕구가 미친듯이 몰려왔었던 때가 있었다. 비록 실패로 끝나고 말았지만.
저작자 표시 비영리 동일 조건 변경 허락
신고

submit

앤드류 타넨바움이 그에게 유닉스를 다시 만들 수 있다면 무엇을 다르게 만들고 싶으냐고 질문하자
creat를 create로 바꾸고 싶다.
책을 보면서 너무 웃기긴 했는데 한참 웃다가 무슨 뜻일까 곰곰히 생각을 해봤다.
유닉스 설계는 지금 다시 봐도 세련되어서 딱히 바꾸고 싶은 것이 없다는 뜻일까, 아니면 10년이 넘는 시간이 지나도록 creat라는 작명이 다른 결정들을 다 제쳐두고 후회할만큼 계속 가슴을 후벼파서 한 말일까.

아무래도 후자라고 생각한다.
저작자 표시 비영리 동일 조건 변경 허락
신고
  1. Favicon of http://barosl.com/ BlogIcon 랜덤여신 at 2011.12.19 00:29 신고 [edit/del]

    엌ㅋㅋ 전 creat가 특이해서 괜찮던데 말이죠. 이왕 굳어진 것 한 글자라도 절약할 수 있으니 더욱 좋고요. 아버지의 생각은 좀 달랐군요.

    Reply
  2. Favicon of http://talkprogram.tistory.com BlogIcon 로로님 at 2012.01.17 00:19 신고 [edit/del]

    ㅋㅋㅋㅋㅋㅋㅋ뿜엇네요 ㅋㅋㅋ

    Reply

submit


나는 TeX의 마지막 버그를 1985년 11월 27일 발견해서 제거했다고 믿는다. 그러나 아직도 코드 내에 약간의 버그라도 있다면 그것을 처음으로 발견해서 알려준 사람에게는 기꺼이 20.48 달러를 드리겠다. 이것은 이전 금액의 두 배이다. 나는 이 상금을 매년 두 배로 늘릴 계획이다. 나는 정말 자신이 있다.

저작자 표시 비영리 동일 조건 변경 허락
신고
  1. 크누스형님 at 2011.12.05 17:22 신고 [edit/del]

    캬아 정말 대단한 자심감이네요ㅋ 존경스럽습니다

    Reply

submit


훌륭한 프로그램을 짜려면 똑똑한 머리, 감각적인 눈, 그리고 묵직한 엉덩이가 있어야 한다. 이 규칙들은 눈과 머리만으로는 결코 이해할 수 없다. 직접 부딪혀 봐야 비로소 몸에 스며드는 것을 느낄 수 있을 것이다. - TCPL 특별판 67 페이지에서

저작자 표시 비영리 동일 조건 변경 허락
신고
  1. fullc0de at 2011.12.20 23:23 신고 [edit/del]

    오~ 이말 정말 와닿네요.. ㅎㅎ

    Reply

submit



그 해 여름 나는 단 두가지 일만 했다. '아무것도 하지 않는다.'와 '719페이지 분량의 '운영체제:디자인 및 실행'을 읽는다.' - 리눅스 그냥 재미로 에서
저작자 표시 비영리 동일 조건 변경 허락
신고
  1. kwon at 2011.12.05 20:50 신고 [edit/del]

    새로운 카테고리가 생겼네요~~~
    단 두가지만 했다니... 멋지네요.. 부럽고 존경스러운 토발즈씨(?)~~

    Reply

submit