learning 87

vim, gvimext.dll error

vim 설치가 날 괴롭히기 시작했다. 요즘 회사 컴퓨터에서 윈도우즈가 설치된 하드 용량이 넘쳐나는 관계로 윈도우즈를 새로 설치하였다. 모두 잘 설치 되었는데 VIM 이 날 괴롭히기 시작했다. 탐색기에서, 컨텍스트 메뉴 “Edit with Vim” 명령이 먹지 않고, "Error creating process: Check if gvim is in your path!" 라는 메시지가 출력되는 문제!! 드디어, 해결책 발견 사실 이 문제를 해결하려고 이것저것 많이 시도해 보았으나, 진정한? 해결책은 웹페이지 Vim On Vista - Vim Tips Wiki 에서 발견했다. If you get a gvim not in your path error with the “Edit with vim” shell ext,..

learning 2012.08.22

Java, RuntimeException 에 대한 정리

java.lang.Throwable Java 언어의 Error 와 Exception 은 모두 java.lang.Throwable을 상속하고 있습니다. 이중 Error 는 try catch 구문으로 처리할 수 없는 비정상적인, 심각한 상태를, Exception은 조금 덜 심각한 상태를 의미합니다. java.lang.RuntimeException Exception은 꽤 많은 자식 클래스 들이 있습니다. 그중에 좀 특이한 녀석이 RuntimeException 입니다. RuntimeException은 JVM 의 보통 연산 중 발생할 수 있는 Exception 을 의미합니다. 대표적인 예가 ‘divide by zero’ 이며, 이 경우, RuntimeException 의 자식인 ArithmeticException..

learning 2012.08.15

javascript, 함수의 호출과 'this'

this 는 또 다른 인자 같은 존재, 호출하는 순간, 호출하는 모양새에 따라 어떤 객체를 가르킬지 결정된다고 합니다. 함수 형태(Function form) functionObject(arguments); 이 경우, 'this'는 전역객체. 메서드 형태(Method form) thisObject.methodName(arguments); thisObject["methodName"](arguments); 이 경우는, 'this'는 thisObject. 생성자 형태(Constructor form) new functionObject(arguments); 생성자 형태에서 'this'는 새로운 객체. 여담으로, 생성자 형태에서 특별한 리턴 값이 없을 경우, 새롭게 생성된 객체 즉, this를 리턴하게 됩니다. ap..

learning 2012.06.14

perl, coffeescript, 적극적 읽기 실천, 거침없이 배우는 펄, 2장 2번 연습문제

애자일 이야기 블로그중, 프로그래밍 언어 배우기의 달인 이란 글을 읽고, 적극적 읽기를 실천해 보기로 했습니다. 튜토리얼을 읽는 것은 다른 프로그래머랑 비슷해 보입니다. 차이가 있다면 읽을 때 다음 작성할 프로그램을 염두에 두고 읽습니다. 그래서 읽다가 이쯤이면 그 프로그램을 작성할 수 있겠다 싶으면 그 자리에서 멈추고 코딩을 시작합니다. 완성을 확인하고는 다시 아까의 자리로 돌아와서 읽기를 계속합니다. 이 때에는 다음 목표 프로그램을 염두에 두면서 말이죠.프로그래밍 언어 배우기의 달인 본문 그래서 요즘 읽고있는 언어 책인 "거침없이 배우는 펄"책 2장에 한 연습문제를 풀어보기로 했습니다. 적극적 읽기와 조금 다르긴 하지만... 거침없이 배우는 펄 2장 2번 연습문제. 반지름을 입력 받아, 원주를 구하는..

learning 2012.06.14

java, 변수 초기화 영역(= Initialization Block)

초기화 코드를 넣는 Initialization Blocks Static Initialization Block 자바 코드들을 읽다 보면 다음과 같은 코드가 쉽게 눈에 띈다 class Whatever { public static final int myInt; static { myInt = 4444; } } 바로 static 초기화 블럭이다 클래스가 생성되는 시점에 초기화 되는 코드 그런데, 오늘 신기한 녀석을 StaticOverflow - Is there a best practice for writing maps literal style in Java?에서 발견했다. Instance Initialization Block Map map = new HashMap() { { put("foo", "bar"); pu..

learning 2012.04.30

CoffeeScript, prototype의 단축 표현 '::'

CoffeeScipt 에서 prototype 사용법 JavaScript Prototype JavaScript에서 prototype은 해당 클래스의 모든 인스턴스가 공유하는 메소드입니다. String.prototype.bark = function() { return "멍멍!!"; }; String("강아지").bark(); // 멍멍!! "Dog".bark();// 멍멍!! "고양이".bark();// 멍멍!! 그런데 .prototype. 이거 입력이 은근 귀찮습니다. CoffeeScript Prototype 커피스크립트에서는 :: 연산자로 .prototype.을 대신합니다. String::bark = -> "멍멍!!" String("강아지").bark()## 멍멍!! "Dog".bark()## 멍멍!! ..

learning 2012.01.30

vim, 오늘 .vimrc 에 추가된 설정 정보.

vim, 탭이나 개행문자를 보고싶어요. list mode List mode: Show tabs as CTRL-I is displayed, display $ after end of line. 즉, list mode로 들어가면, 탭문자와 줄바꿈 문자가 화면에 표시되게 됩니다. 그리고 list mode는 다음 명령으로 들어갈 수 있습니다. :set list 'listchars' list 모드에서, 탭 문자나, 개행문자를 '→' '↵' 와 같은 문자로... 나타나게 할 수 있습니다.(인코딩이 UTF-8인 경우, UTF-8 문자도 사용 가능.) 그리고 탭문자나 개행문자 이외에도 다음과 같은 문자들을 지원합니다. eol:c 개행문자 'c'로 표시 tab:xy 탭문자 첫 글자는 'x'로 이후는 탭 너비에 따라 하나 ..

learning 2012.01.13