October 2010
10 posts
다중 상속은 기술적인 문제가 없다.
결론부터 말해 다중상속(multi-inheritance)의 기술적인 문제는 없다. D 객체가 B 객체와 C 객체를 상속하고 있고 B 객체와 C 객체가 모두 A 객체를 상속받을 때 B와 C 객체가 서로 어떤 객체를 상속받을지 몰라 문제가 발생한다는 주장이 있다.A객체에 있던 메서드를 호출 할경우 B 객체가 상속한 A인지 C객체가 상속한 A인지 알수 없어 문제가 발생한다는 것. 이 문제를 소위 다이아몬드 문제(Diamond Problem)이라 부른다. 구닥다리 언어에서는 다이아몬드 문제가 발생하였고 다중상속의 사용을 막는 이유가 되어왔다. 왜 다이아몬드 상속이 발생했을까? 다이아몬드 상속이 발생한 이유는 메소드 해결 순서(MRO: Method Resolution Order)에 의해 메서드가 참조될...
Oct 27th
3 tags
Emacs에서 패키지 시스템(EPLA)을 쓰자.
운영체제를 새로 설치해서 Emacs에 너무 패키지가 없어 불편하다. 패키지 문제를 해결하기 위해 ELPA(Emacs Lisp Package Archieve)을 쓰기로 결정했다. 설치는 단순한데 아래의 소스를 먼저 *scratch* 버퍼로 복사한다. (let ((buffer (url-retrieve-synchronously "http://tromey.com/elpa/package-install.el"))) (save-excursion (set-buffer buffer) (goto-char (point-min)) (re-search-forward "^$" nil 'move) (eval-region (point) (point-max)) ...
Oct 25th
Tumblr의 follow 버튼이 왜 sign up으로 연결되는가?
여러 사람들의 강력한 추천에 의해 텀블러를 시작했지만 이해안되는 부분들이 많다. 오늘의 이해안되는 부분은 follow 버튼이 sign up으로 연결되는 것. 과연 비회원이 follow할려는 니즈가 많을까? 회원이 follow할려는 니즈가 많을까? PS: 어쩌다 보니 불만 사항이 점칠되었는데 나는 긍정적인 사람이다.
Oct 25th
2 notes
Putty에 대한 불만
탭과 별칭 여러 사이트에 접속하며 사이트 별로 여러 터미널을 여는 편인데 Putty에선 어떤 창을 왜 열었는지 직관적으로 알기가 매우 어렵다. 탭을 지원해서 한 곳에 모아두고 탭의 제목에 별칭을 붙일 수 있어야 한다. 윈도우 룩앤필 또 Windows 7에서 Windows Key + 화살표 기능 역시 제대로 동작하지 못하는데 키보드 한번으로 절반 크기 스크린이 안되는 것은 꽤 불편하다. 특히 와이드 스크린에서는 더더욱 불편.
Oct 21st
Thunderbird에 대한 불만
메일 계정에서 제대로 동작하지 않는다. Mozilla가 잘못한 것은 아니고 메일 계정들이 엉터리겠지만 썬더버드를 버릴 결정적인 이유가 되었음. 제목 없는 메일을 그냥 쓰레드로 묶어 버린다. 메일의 제목이 없는 경우가 흔하기 때문에 꽤나 불편함.
Oct 21st
7 tags
Ubuntu와 CentOS에 CPAN, CPANM 설치하기
CPAN을 쓰기 위해 펄이라는 도구를 쓴다는 말이 있을 정도로 펄에서 CPAN 모듈은 필수적이다. 순수한 CPAN을 쓰다가 최근에는 CPANM을 쓰는데 의존성, 로컬 파일, GIT 등의 이용에 이점이 있다. 먼저 CPAN을 쓰기 위해 패키지를 설치해야하는데 내 우분투에선 아래의 패키지가 필요했다. sudo apt-get install libyaml-perl sudo apt-get install unzip sudo apt-get install curl sudo apt-get install lynx sudo apt-get install ncftp sudo apt-get install makepatch 그리고 내가 설치한 CentOS에서는 아래의 패키지. sudo yum install ncftp ...
Oct 20th
다중 계정 사용자를 위한 Gmail URI 규칙
용도 별로 메일을 쓰기 때문에 어쩔 수 없이 여러개의 웹 브라우저를 쓴 적도 있었는데 Gmail이 다중 계정을 지원하면서 방황은 끝났다. 한가지 아쉬운 점은 Gmail에 접속하면 항상 첫번째 계정으로 메일이 연결된다는 점이다. 현재 작업 문맥이 첫번째 계정이 아닐 경우 Gmail로 접속 한 후 다른 계정을 선택하고 메일을 사용해야 해서 동선이 길어진다. 이 동선은 다음과 같은 URI의 사용으로 줄일 수 있다. https://mail.google.com/mail/u/<계정번호>/ 위의 URI에서 <계정번호>를 0부터 시작하는 숫자로 변경해야 한다. 당연한 이야기겠지만 첫번째 계정이 숫자 0이 되고 이후 계정은 하나씩 숫자를...
Oct 18th
unsigned와 sigined
최근 민장님의 블로그에서 논의된 이야기 “잘 모르겠으면 unsigned 타입은 쓰지 말지어다.”를 더 제대로 이해할려면 스펙을 보는 것이 좋다. 더 명쾌하고 논리적인 설명을 하는 경우가 많아서 개인적으로 ISO C++보다는 ISO C를 선호하는데 ISO C에서의 설명은 아래와 같다. (참고로 C++과 C언어는 세밀한 부분에서 다른 부분이 넘쳐나기 때문에 주의할 필요는 있다.) 6.3.1.1 Boolean, characters, and integers 1 Every integer type has an integer conversion rank defined as follows: — No two signed integer types shall have the same rank,...
Oct 18th
4 tags
Emacs는 개선이 필요함.
Emacs가 Vim보다 더 나은 도구라고 생각하지만 너무 낡고 개선되어야 할 점이 많다. 다음은 내가 생각하는 Emacs의 문제점. Unix-Dependent - 윈도와 같은 비 유닉스 플랫폼에서 제대로 동작하지 않는다. - Emacs가 제대로 된 “플랫폼”이 되려면 독립적인 컴포넌트를 이용해서 문제를 해결해야 한다. 낡은 UI - GTK 인터페이스는 정말 맘에 안든다. - 텍스트 기반의 도구들의 조합을 보는 것이 탐탁지 않다. 버퍼 기반의 텍스트 인터페이스가 정답은 아니다. 그랬다면 윈도 객체에 curse 인터페이스가 대중화되었겠지. - XML 기반의 쉽게 저작할 수 있는 인터페이스 도구를 제공하고 다양한 사용자 경험을 제공해야 한다. 부족한 Packaging - 언제까지 el...
Oct 12th
mac에서 clojure 쓰는 법
dalinaum@Leonardoui-iMac ~ $ port search leiningen leiningen @1.1.0 (devel, java)     A build tool for Clojure designed to not set your hair on fire. dalinaum@Leonardoui-iMac ~ $ port deps leiningen Build Dependencies:   clojure, clojure-contrib, apache-ant, maven2,                       maven-ant-tasks Runtime Dependencies: jline OK?
Oct 5th