|
The Trivial Monad라는 블로그를 읽었다. http://sigfpe.blogspot.com/2007/04/trivial-monad.html
모나드에 대한 아주 잘 정리된 글이라고 생각되어 주절주절 번역해 본다. 언어가 다소 정제되지않아 읽기에 다소 거북함을 미리 밝혀둔다. Haskell 모나드는 타입 클래스를 형성한다. 그리고 Haskell의 타입 클래스는 많은 타입들이 공유하는 핵심적인 인터페이스 이다. 그렇다면 모나드 타입 클래스는 많은 다른 타입들과 애기하기위한 공통 API이다. 따라서 다음과 같은 의문이 생길것이다: 이 API가 뭐가 그렇게 특별하지? "wrap"이라는 단어에 대응하는 적절한 표현을 찾기가 힘들어 다소 저급하게 들리는 "껍질"이라는 단어를 사용했다.
라이프해커에서 우연히 계산기(calculator)에 대한 내용을 보다가 정리를 해 보았다.
계산기는 거의 모든 GUI에 기본적으로 지원되는 프로그램이다. 윈도우의 경우 "계산기" 혹은 "calc"가 있고, gnome의 경우 "gcalctool"이 있고, KDE의 경우 "Kcalc"가 있다. 심지어 "X"조차도 계산기(xcalc)는 있다. 아마도 탁상용 계산기의 간단한 인터페이스(몇 가지 단추와 표시창)이 GUI의 기본 요소들을 적용하기에 적합하기 때문이 아닌가 생각한다. 그래픽 툴킷을 만들면 가장 먼저 작성하는 프로그램 중에 계산기가 들어갈 것이다. 이러한 전통으로 인하여 대부분의 "기본" 계산기는 GUI 인터페이스를 가지고 있다. 마우스를 사용하여 열심히 클릭하는건 괜찮다. 하지만, 탁상용 계산기의 그 조악한 인터렉션을 그대로 구현한 것은 정말 견디기 힘들다. 고급 공학용 계산기들은 LCD창을 넓히고, 입력한 수식을 에디팅할 수 있게하고, 그래픽으로 함수값을 출력할 수 도 있고 그렇게 점점 더 폭넓은 유저 인터렉션을 지원하는데 정작 그 근원이 되는 컴퓨터에서는 계산기의 원시 시대에 고안되었던 방식을 그대로 사용하고 있다. 정말 아이러니가 아닐 수 없다. 물런 아주 고급의 수학 도구들은 정말로 강력한 인터체이스와 도구들을 가지고 있다. Mathmatica나 matlab를 보라. 그 강력한 내장언어, 멋진 그래픽, 다양한 도구들.... 하지만 내가 말하는 것은 그런 수백만원짜리 수학/공학 도구가 아니다. 그냥 일상에서 사용하는 그런 프로그램을 말한다. (물론 "일상" 이라는 것이 사람마다 다르겠지만) 웹 기반의 계산기들은 그런 면에서는 조금 특이한 위치에 있다. 그 시작이 주로 검색 엔진의 인터페이스에서 시작했기 때문에 (내가 아는 바로는 구글이 그 처음이 아닌가 한다) 마우스 보다는 키보드에 가깝다. 기본적으로 명령어행(command line)을 사용하는 계산기와 같은 인터페이스이므로 탁상용 계산기 인터페이스를 사용하는 GUI 계산기보다 강력한 면이 있다. 내가 주목한 점은 바로 이 점이다. 구글 구글의 계산기는 사칙연산과 함수를 지원한다. 2진수와 상수도 지원한다. 단위 변환도 지원한다. 2진수를 다루는 기능은 꽤 유용하다. 보기 ) 0x7f + 0b10010101 사실 프로그래밍이나 하드웨어 설계하는 경우는 자주 이진수/십육진수를 다뤄야 하는데, 윈도우에서 그걸 처리한다고 생각하면 짜증이 난다. 숫자를 입력하고, 십진에서 십육진수로 바꾸고 다시 다른 십육진수를 더한 후 다시 십진수로 바꾸고... 짜증나는 변환의 연속이다. msn 마이크로소프트의 서치 박스도 강력한 계산 기능을 가지고 있다. 사칙연산과 함수를 지원하는 것은 구글과 동일하다. 단위 변환은 지원하지 않는 것으로 보인다. 이진수/십육진수도 지원하지 않는 것으로 보인다. 나름 강력하다. 문제는 한국사이트는 아니라는 점이다. 한국 사이트는 껍데기만 "Live"운운하지 아직도 옛날 모습 그대로인 것 같다. (솔직히 사용해 보지 않아서 잘 모르겠다). msn의 계산 기능중 가장 강력한 것은 아마도 수식을 풀어준다는 것일 것이다. 단순히 계산만 하는 것이 아니다, 예를 들면 2차 방식정을 입력하면 그 해를 구해 준다는 것이다. (이건 라이프해커에서 발취한 예제이다. 라이프해커도 다른 블로거에서 인용한 내용이다.) 보기) ((122.78+(x^2))/190)=.93 Frink frink는 계산을 위한 언어와 도구를 지칭한다(고 되어있다). 따라서 이 웹 인터페이스는 가볍지 않다(느리다는것이 아니라 가벼운 마음으로 사용하기 힘들다는 뜻이다.) 사실 별로 권하고 싶지는 않다. 나도 별로 살펴보지 않았으니까. 그냥 참고삼아 (라이프해커에 있으니까) 포함시켰다. 하지만 흥미있는 도구임은 사실이다. Calc5 ![]() 이건 좀 가볍다. 검색 인터페이스는 아니지만 그래도 복잡한 언어 운운 안해도 된다. 무엇보다 좋은 점은 그래프를 그려 준다는 점이다. 간단히 함수의 경향을 본다든가 하기에도 좋고, 좀 잘 사용하고 싶다면 도움말을 보며 공부할 수 도 있다. msn은 도무지 어떻게 사용하는 지 알 수 가 없어서 일단 해보고 안되면 말고 식으로 사용해야 한다. 어쨌던, 웹에서 고급 공학용 계산기와 같은 그래프를 볼 수 있다는 점은 꽤 유용하다. 몽땅 외국사이트들이다. 그럼 국내는? 불행히도 내가 아는 바는 없다. 네이버가 간단한 사칙 연산은 해 주는데 함수만 들어가면 잼병이다. 드림위즈도 마찬가지다. 네이트는 아에 계산이 뭔지 모른다. 더 실망스러운 것은 msn과 마찬 가지로 야후!도 www.yahoo.com에서는 계산 기능이 있는데 한국 야후에서는 안된다는 점이다. 한국을 물로 보는 것일까? 다 우리들의 문제다. 별거 아닌것 같지만 이런 기능을 지원하고 안하고는 "기본"의 문제라고 본다. 여러가지 기본이 있겠지만, 그 중에서도 "공학적인 사고"의 기본에 대해 생각해 본다. 더 이상 들어가면 문제가 복잡해 질 테니 이만 멈춰야 겠다. 적다보니 사이트 소개도 아니고 짬뽕이 된 느낌이다. 이만...
즐겨찾기는 언제가 골치꺼리였다. 잊어버리기 싫은 사이트 정보는 일단 즐겨찾기에 추가하고보는 서핑 스타일이라 언제가 쉽게 크지고 정리되지않고 정리하기 귀찮고. 무엇보다도 브라우저의 즐겨찾기 메뉴가 길어져서 보기 싫다.어쩔수 없이 웹으로 옮겨놓게 된다. 한RSS를 사용하는 관계로 즐겨찾기도 함께 사용한다. 하지만 뭔가가 부족하다고 항상 느낀다. 사용하기 편하다고만은 할 수 없는 그 사용자 인터페이스. RSS는 개인적으로 만족하고 있다. 특히 vi의 키보드 명령과 동일한 단축키는 정말 마음에 든다. 마우스 한번 사용하지 않고서도 모든 블로그를 볼 수 있으니까.
어쨌던, 이번에 Yahoo에서 "Yahoo! Bookmarks"라고하는 서비스를 (베타 상태) 알게되었다. 장소는 여기. 일단 유저 인터페이스는 마음에 들었다. 그래봤자 한국에 들어오면 야후 메일처럼 온갖 광고로 떡칠되겠지만. 일단 국내판이 아닌 베타는 깔끔하다. 한RSS에서 내보내기로 즐겨찾기 목록을 내보내고, 이를 야후북마크에서 가져왔다. 한RSS의 내보내기는 크기가 큰 즐겨찾기를 잘 처리하지 못하는 것 같다. 조용히 뒤쪽에 있던 항목들을 잘라버렸다. 흠... 아직도 정적인 한계를 자료구조를 사용하는 코드가 있군... 일단 요즘 유행인 소위 Web 2.0 운운하는 사이트들 처럼 "끌어다 놓기"가 된다. 이거야. 내가 원하던게 바로 이거야. 한RSS에서 북마크 정리할때 귀찮았던 작업이 조금은 쉬워졌다. 복수의 북마크로 선택가능하다. (이건 야후 메일과는 좀 다른 방식이다. 선택 마크를 클릭하면 선택이 된다. 그냥 마우스로 선택하게는 하지 않고있다.) 일단은 이놈과 좀 살아봐야겠다.
마소에서 새로운 콘솔 폰트가 나왔다.
PowerSehll blog에서 발견했는데, 다운로드는 Visual Studio 2005가 설치된 경우 다음에서 가능하다. download the Consolas font for free. 콘솔 폰트로 등록하는 방법은 마소의 Q247815에 나와있다. 일단 실해하면 Widnows Fonts 디렉토리에 Consola라는 이름의 폰트가 몇 개 깔린다. 복사해서 다른 컴퓨터에 깔아도 된다. 단 콘솔 폰트에 등록하는 절차를 꼭 밟아야 한다. 관련된 애기들은 여기 에 있다.
리눅스 터미널 서버 프로젝트(LTSP)를 알게되었다. 한 10년 전에 유행하던 X-터미널과 디스크 없는 워크스테이션(diskless workstation) 개념이 다시 살아났다. 리눅스와 함께. 핵심은, 터미널 서버에 터미널(혹은 씬-클라이언트)의 OS 파일을 두고 터미널이 부팅시 이를 받아서 부팅하게하고(BOOTP를 통해서), X를 사용하여 리모트 로그인을 하게 하는 방식이다. 세상은 돌고 도는가 보다. 다시 터미널이 뜨고 있으니. 어쨌던, 이제는 X-터미널도 구할 수 없고, 워크스테이션은 아무리 하드가 없는 넘이라도 비싸고, 그렇다고 Sun-Ray는 선에서 혼자 사용하는 거고, WBT는 말이 터미널이지 WinCE가 내장되어있어 사실상 X-터미널과 비슷하고 이래 저래 맘에 드는게 없었는데 그래도 LTS가 개중 마음에 든다. LTSP용 터미널을 팔기는 하는데, $300 내외이다. 물런 수입하면 관세가 더 붙는다. 아무리 환율이 싸다고 해도 30만원+는 여전히 그렇다. 비슷한 가격에 작은 크기의 하드웨어가 없을까? 불행히도 우리나라는 거의 대부분 PC용 이외에는 팔지 않는다. 그것도 덩치 크고(ATX), 시끄럽고(1G이상, 따라서 냉각팬은 필수), 못생긴(지금은 괜찮은 모양도 좀 있다만) 보드와 케이스뿐이다. 그러던 차에 Mini-ITX 보드를 알게 되었다. 주로 자동차용 카피씨(car pc)하는 사람들이 찾는 모델이었다. 국내에서 구입가능한 보드의 크기로는 가장 작아서 이를 이용해 미니 컴퓨터를 꾸미기로 했다. 하드는 필요없고, 당연히 플로피, CD-ROM도 필요없다. VGA는 내장이고, 당근 사운드도 내장이다. 최근에 VIA에서 생산한 C3 시피유를 사용한 값싼 보드를 택하면, 추가로 메모리만 구하면 된다. 다행이 아직 버리지 않고 있는 고물 컴퓨터에서 메모리를 재활용 했다. 물런 모니터와 키보드와 마우스도 재활용이다. 메모리를 제외한 보드와 케이스 가격은 약 27만원. 물런 이 가격이면 인텔 셀러론 1.8G정도는 구입할 수 있다(메모리와 하드와 CD-ROM까지 함께). 대신에 시끄럽고 크기가 크다. 현재 집에 설치한 리눅스 서버와 리눅스 터미널로 동시에 2명이 사용할 수 있다. 실험적이었지만 대만족이다. | |