노무현 전 대통령 서거 - 삼가 고인의 명복을 빕니다

Incremental Development

 어떻게 큰 변화를 얻을 수 있을지 생각하고 있다면,
매일의 작은 변화를 소홀히 하지 말아야 한다.
작은 변화가 조금씩 쌓여서 예상치 못한 큰 변화가 되는 것이다.
-마리안 라이트 에델만

by 이호연 | 2008/02/26 09:45 | Log | 트랙백 | 덧글(0)

Speed Reading

First things first
사람들이 책을 느리게 읽는 이유는 목적과 포커스(집중할 부분?)가 부족하기 때문이다. 다음은 책을 읽기 전에 생각해봐야할 질문들이다. 이 질문들에 대답할 시간을 가져라. 그 리스트는 다음과 같다.
  • 나는 왜 이 책을 읽나?
  • 나는 왜 이 책이 필요하다고 생각하는가?
  • 이 책은 내가 찾고자하는 가장 적합한 책인가?
  • 얼마다 오랫동안 그 책에 시간을 투자하려고 하는가?
  • 이 책에서 얻은 정보를 언제 활용할 것인가?
  • 속독에 대해서 이미 알고 있는 것은 무엇인가?
  • 이 책에서 나는 무엇을 기대하고 있나?
  • 어떻게 하면 나는 목표를 달성한 때를 알게되나?
좀 더 빠르게 책을 읽을 수 있고, 읽은 것을 기억할 수 있을 것이다.
언제나 항상 책 전부를 다 읽을 필요는 없다는 걸 알게 될 것이다.

Speed Reading은 단순히 책을 빨리 읽는 것이 아니라 똑똑하게 읽기 위한 방법(Smart reading)이다.
Smart Reading은,
  1. 읽을거리로부터 내가 어떤 것을 원하는 지를 결정하게 하고
  2. 가능한 한 효율적으로 읽을 수 있게 하고
  3. 그것을 필요로 할때 그 정보를 떠올릴 수 있게 한다.
...to be continued
@Teach yourself speed reading에서 발췌

by 이호연 | 2008/02/24 22:43 | 미분류 | 트랙백 | 덧글(0)

[스크랩]인간의 의미와 가치

인간의 의미와 가치
사람은 돈만 가지고 살 수는 없다.

by 이호연 | 2008/02/24 21:06 | Log | 트랙백 | 덧글(0)

The general legacy management strategy

The general legacy management strategy is:
1. Identify change points
2. Find an inflection point
3. Cover the inflection point
    a. Break external dependencies
    b. Break internal dependencies
    c. Write tests
4. Make changes
5. Refactor the covered code

출처 : Working Effectively With Legacy Code
Michael Feathers
Object Mentor, Inc.
mfeathers@objectmentor.com

by 고릴라 | 2008/02/24 19:37 | 기억보조 | 트랙백 | 덧글(0)

Where storage lives

  • Registers : fastest, inside the processor, allocated by the compiler
  • The stack : direct support from the processor via its stack pointer, extremely fast, ex)object reference(in RAM)
  • The heap : all java object live, there's price you pay for the flexibility, slower than stack(in RAM)
  • Static storage : in a fixed location, You can use the static keyword to specify that a particular element of an object is static, but java objects themselves are never placed in static storage.
  • Constant storage : placed directly in the program code, safe since they can never change, in ROM
  • Non-RAM storages : some data to be sent another medium or machine(ex. streamed objects, persistent objects)

by 고릴라 | 2008/02/21 18:17 | 기억보조 | 트랙백 | 덧글(0)

[스크랩]VM을 사용하는 이유

  • 컴파일러를 쉽게 구현하고 이식하기 위해
  • 성능을 높이기 위해
  • 시스템에 입력되는 프로그램의 특성을 제어하기 위해
  • 플랫폼 독립적인 프로그램 배포를 위해
  • 하드웨어 별 특성을 활용하기 위해
  • 메모리를 절약하기 위해
    • 스크립트 언어 VM

      자바스크립트, 펄(Perl)을 포함한 대부분 스크립트 언어는 소스를 파싱한 후에 트리 형태로 만들어 놓고 트리를 따라가면서 프로그램을 실행하는 구조였다. 이러던 것이 몇몇 스크립트를 중심으로 하부에 VM을 정의해 스크립트 실행 성능을 높이고 있고 널리 쓰이는 스크립트 대부분이 VM 기반으로 이행하고 있다.
      * 자바스크립트의 경우 공식 구현이 하나만 있는 것은 아니지만 어도비가 모질라 재단에 공여한 AVM2(ActionScript VM 2)가 그런 예다. ECMA 표준 4판에 포함될 내용을 지원하기 위한 내용을 포함하다 보니 JVM과 상당히 비슷해졌고 스택 기계 형태에 내부적으로 JIT 컴파일러를 가지고 있다.
      * 파이선(Python) 역시 스택 기계 형태의 VM을 가지고 있고 완전하지는 않지만 JIT 컴파일러 구현도 있다.
      * 게임에서 많이 사용하는 Lua의 경우 RISC와 비슷하게 레지스터 개념을 도입한 VM을 사용하며 이런 형태 탓에 성능이 뛰어 나다는 점을 강조하고 있다.
      * PHP는 Zend 엔진으로 넘어가면서 일찌감치 바이트코드 기반으로 넘어간 상태다.
      * 그 외 루비의 YARV, 펄의 Parrot 같은 프로젝트도 진행 중으로 앞으로 스크립트 언어 구현에 VM이 사용되는 것을 흔히 보게 될 것으로 보인다.


      JVM

      일반에 공개된 것은 1995년이지만 자바의 기본이 된 Oak 언어는 1990년 초에 이미 완성되었다고 한다. JVM이 최초인지는 확실하지 않으나 이전까지의 시도에 비해 특이한 점은 바로 데이터 흐름 분석(data flow analysis)과 데이터 형 개념을 활용해 실행 전에 바이트코드를 검증할 수 있게 한 점이 아닌가 한다. 여기에는 몇 가지 의미가 있는데, 우선 이전까지의 VM은 바이트코드가 잘못되어 C로 작성한 프로그램처럼 메모리를 망가뜨리거나 하는 경우에 대해 고려하지 않았지만 자바는 네트워크를 통해 움직이는 코드를 표방, 검증을 중심에 놓았다. 또 실행 전에 상당 부분의 검증을 행함으로써 실행시 성능을 깎아 먹는 안전 검사를 줄여 성능을 높이고 기계어로 변환하기 쉽도록 했다.

      원문 : http://www.ibm.com/developerworks/kr/library/dwclm/20080212/?ca=dnn-krt-20080220

    by 고릴라 | 2008/02/20 10:30 | 기억보조 | 트랙백 | 덧글(2)

    나는 이런 책을 읽어왔다

    안보고 책장에 꽂혀있는 책 해치우기 1편

    얻은것
    책읽는 방법 : 한권 정독보다는 비슷한 분야의 책을 여러권 속독하는 것이 좋다.. 전체적으로 회화적인 글읽기 후 부분적으로 자연스럽게 눈길이 가는 곳에 음악적인 글읽기 필요, 너무 어렵거나 별로 중요하지 않은 내용을 읽기위해 애쓰는 것은 시간낭비일 뿐임..

    여유있게 돈을 준비하고 책들을 훑어보아 전체적인 흐름을 본 뒤, 마음이 가는 책들을 20권에서 30권 정도 한꺼번에 구매하고
    책상위에 쌓아놓은 뒤(절대! 책장에 꽂아서는 안 된다) 읽으면서 해치운다
    절대로 처음 책읽으면서 메모하지 말고, 비슷한 분야의 여러 책들을 읽어본다. 나쁜 책을 구입해보는 것도 공부이다.

    아무리 디지털미디어가 발달하더라도 종이책은 없어지지 않고, 오히려 더 그 오묘한 책읽기의 즐거움과 '눈의 특유한 기능'때문에 부흥할 것이다.

    오토마톤 vs 휴먼콘트롤 (익숙하여 자동화된 부분에 만족하기 보다는 이상현상을 즐기고 유연하게 받아들일 수 있어야 한다)

    나는 생각한다 고로 나는 존재한다(X) -> 나는 의욕적이다 고로 나는 존재한다(O)

    by 고릴라 | 2008/02/19 09:15 | Log | 트랙백 | 덧글(0)

    추격자






    하정우.. 심드렁한 표정, 눈알 돌리기, 비웃음, 쾡한 눈빛,근육 움직임 하나하나.. 어느하나 버릴것 없는... 이 배우는 태어났을때부터 연기자로 태어난게 아닐까 싶다...(정말 그럴지도..) 용서받지 못한 자, 시간에서 보았던 캐릭터보다 오히려 이런 극악의 캐릭터가 더 맞는 옷일지도 모른다는 생각이....

    예전에 '차승원의 헬스클럽' 이라는 프로그램에서 차승원이 옆에 서있던 트레이너를 소개하면서 했던 근육이 '잘 쫄인 간고등어' 같다는 표현이 생각난다. 쌩뚱맞게.... 군더더기 없이 몰아치는 잘 쫄인 간고등어같은 영화...

    by 고릴라 | 2008/02/16 01:38 | Log | 트랙백 | 덧글(0)

    타인의삶(Das Leben der Anderen)

    HGW XX/7

    이런 소재가지고 이렇게 멋지게 영화를 만들어낼수 있다는 게 정말 신기하다
    감시에서 관찰로 관찰에서 이해로 이해에서 개입...소극적이여서 더 아쉬운.. 하지만 그럴 수 밖에 없는...

    도청과 감시와 권력의 억압 속에서 휴머니즘을 불러일으킨다는 사실이 아이러니하다

    선한사람들의 소나타
    Ulrich muche(u위에 점 두개는 어떻게 찍어야되는거지?) 기억해두고 싶은 배우 목록에 추가

    오랜만에 가슴찡한 영화를 봐서 기분이 좋아

    by 고릴라 | 2008/02/13 22:16 | Log | 트랙백 | 덧글(0)

    bad class file 오류

    방금 전까지 잘 돌아가던 시스템을
    빌드한번 잘못했다가 말아먹을뻔했다.
    bad class file이라는 듣도보도 못한 에러메세지를 뱉어내면서....으..

    얼마전에 이클립스에서 책에 있는 예제들 따라 해보다가 타이거로 바꿨던 기억이...
    문제는 금방 해결됐다.

    시스템의 jdk버전과 이클립스 자바 컴퍼일러 버전을 맞추면 된다(아마도...-_-;;).

    by 고릴라 | 2008/02/01 10:03 | 기억보조 | 트랙백 | 덧글(0)

    ◀ 이전 페이지          다음 페이지 ▶