페이지

2012년 12월 13일 목요일

Manipulating Texts in Eclipse

Manipulating texts in Eclipse

History

revisionchangesauthor
0.1initial version 2012-12-05 수 Darren Ha
0.2textBuffer.commit 2012-12-13 목 Darren Ha

Introduction

manipulating texts in Eclipse way can be hard for initial Eclipse plugin developers. I couldn't find any structured tutorial or articles. So this articles is born. any comments about the contets are welcomed! I hope it helps you too.

Getting IDocument form a IPath

A FileBuffer represents a file that is being modified over time. Fille buffers for text files provide IDocument(a content model) and IAnnotationModel(a marker model). so IDdocument is essential for manipulating texts.
ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager();
IPath path = new Path("/sample/test.h");
try{
    bufferManager.connect(path, LocationKind.IFILE, monitor);
    ITextFileBuffer textBuffer = bufferManager.getTextFileBuffer(path, LocationKind.IFILE);
    IDocument document = textBuffer.getDocument();
}finally{
    bufferManager.disconnect(path, LocationKind.IFILE, monitor);
}  

Creating and applying TextEdit

We can modify IDocument using TextEdit subclasses: e.g. ReplaceEdit, InsertEdit, DeleteEdit to apply those changed multiple times in a file, you should use MultiTextEdit which is tree container of TextEdits. MultiTextEdit::apply can produce an error if the changes made at the same location at multiple times.
MultiTextEdit::apply doesn't change file contetns immediately. to change file content you must call ITextFileBuffer::commit.
ITextFileBuffer textBuffer = ...;
IDocument document = ..;

FindReplaceDocumentAdapter finder = new FindReplaceDocumentAdapter(document);
IRegion regionReplace = finder.find(0, "textTobeReplaced", true, true, false, false);
IRegion regionInsert = finder.find(0, "//TODO", true, true, false, false);

MultiTextEdit multiEdit = new MultiTextEdit();
multiEdit.addChild( new ReplaceEdit(regionReplace.getOffset(), regionReplace.getLength(), "ReplacedText"));
multiEdit.addChild( new InsertEdit(regionInsert.getOffset(), regionInsert.getLength()));
multiEdit.apply(document);
textBuffer.commit(monitor, true);

using CDT refactoring mechanism

You can use CDT built-in refactoring framework to change texts more elegant way. the following codes demonstrate invoking rename refactoring of CDT programtically. You can invoke this by clicking Alt+Shift+R in eclipse source editor. It's cool!
If the indexer has unresolved symbols , when build is broken, the refactoring operation can fail.
IFile file = new File("/sample/test.h");
IRegion region = ...;
CRefactoringArgument arg = new CRefactoringArgument(file, region.getOffset(), region.getLength());
CRenameProcessor proc = new CRenameProcessor(CRefactory.getInstance(), arg);
proc.setReplacementText("ReplacedText");
proc.setSelectedOptions(-1);
proc.setScope(TextSearchWrapper.SCOPE_SINGLE_PROJECT);
CRenameRefactoring refactor = new CRenameRefactoring(proc);

((CRenameProcessor)refactor.getProcessor()) .lockIndex();
try{
    RefactoringStatus rs = refactor.checkInitialConditions(monitor);
    if (rs.hasFatalError()) {
        throw new Exception("checkInitialcondtion fail");
    }
    rs = refactor.checkFinalConditions(monitor);
    if (rs.hasError()) {
        throw new Exception("checkFinalcondtion fail");
    }
    Change change = refactor.createChange(monitor);
    change.perform(monitor);
}finally{
    ((CRenameProcessor)refactor.getProcessor()).unlockIndex();
}

2012년 12월 4일 화요일

자신부터 믿어야 한다.

가끔 자신이 믿지 못하는 것을
타인에게 믿으라며
말을 하는 경우가 있다.

면접을 볼때
난 이런 이유로 지원했고 그것은 이렇게 되어야 한다고 생각한다.
고 말했으나 정작 내 머리속에선 물음표가 그려질때

동료에게 그럴땐 이렇게 하라고 조언하지만
정작 내가 그렇게 해본적이 없어
물음표가 그려질때

자기자신도 믿지 못하는 말을 할땐
어떻게든 티가 나기 마련이다.
자신도 납득시키지 못한 말 혹은 논리로
어떻게 다른 사람을 납득시킬 수 있겠는가.
면접에서든 세미나에서든 동료와의 대화에서든..

허경영이란 사람.
사이코 혹은 이상한 사람으로 불릴지라도
적어도 그는 자기 자신을 확실히 믿고 있다.
믿지않으면 그런 포스는 나오지 않는다.

자기를 설득하지 못한 그 무엇을
입밖으로 내지말자. 그 말은 공허할 뿐이다.
허경영보다 못한 이가 되어서는 안되지 않겠나

2012년 11월 30일 금요일

손미나, 변신의 시작은 바로 나

어렴풋이 아나운서를 그만두고 여행을 다닌다고만 알고 있었는데 어느새 회사에 특강을 하러 왔다기에 냉큼 달려가 그녀를 보았다.
기억나는 꼭지들..

midnight in Paris 꼭 한번 봐라.
거기 나온 명대사.
자신의 현재에 만족하는 사람은 없다.

너 자신을 알라.
낯선곳 아무도 자기 자신을 알지 못하는 곳에 가봐야 진짜 내가 드러난다.
나의 경우는 스페인 어학 연수 시절에 나의 이런면을 알았다.
- 호기심이 많고
- 여러 사람과의 대화에서 리드하며 (하물며 말도 잘 안통함에도..)
- 사람이 많을수록 떨지않고
그래서 아나운서란 직업이 내게 맞을 것이라 생각해서 아나운서란 직업을 택했다.

슬라바 폴루닌의 snow show 기회가 되면 꼭 봐라
이 사람은 전직 엔지니어였고 마음속에 꿈틀대고 있는 그무엇을표현하기 위해 광대가 되고 싶어했으나 어머니가 반대했다. 아들의 요청으로 그의 5분짜리 공연을 보고 광대가 되는것을 허락했다고.



아르헨티나 빈민촌의 엑스트라 배우.
가난하다고 해서 꿈을 꾸면 안되나?
유난히 영화촬영이 많은 아르헨티나. 해서 엑스트라 모집에 신청서를 냄. 아무도 하지 않으려는 역할을 맡아서 인정받음. 그 후 많이 출연함.
그는 번 돈으로 빈민촌에 영화학교를 만들고 다수의 엑스트라를 배출 함. 국가도 하지 못한 변화로 빈민촌에 활기를.
태어나서 처음으로 쓸모가 있는 사람이라고 느껴져 너무 행복했다고 함.

내가 아나운서를 그만두고 여행을 간 것은 내가 한달만에 완성한 인생의 계획 중 하나였음.
1년은 과대평가 하고 일생은 과소평가 하는 우리
7-80살까지 보고 사는 사람은 조금 하지 않다.

중요한 갈림길에 섰을때 자신의 육감을 믿어라. 산악인들도 그렇게 한다고
아르헨티나 빈민촌에서 뒤에선 동네 깡패들이 따라오고
마침 택시가 지니가는데(택시를 타면 유괴를 많이 당함)
택시를 탈지 말지 고민하고 있으니 택시 기사가 당신이 왜 안타려고 하는지 않다.
내 눈을 봐라. 난 가족이 있고 먹여살려야 한다. 당신을 납치할 이유가 없다.
난 택시기사의 눈을 믿고 탔다. 무사했다.

프랑스에선 학교에서 등수가 없다고 한다. 놀라서 너넨 왜 등수가 없니? 라고 물으니
사람을 어떻게 등수를 매겨? 라고 한다.
등수를 매기면 하위는 좌절하고, 상위는 선두를 뺏길까봐 두려워 한다.
결국엔 평준화 되어 버린다.

프리랜서는 전혀 프리 하지 않다. 조금만 안주해도 금방 낙오되어 버리니까

인디언의 삶
1년이 13달이며
살아보고 결혼하고
사람이 죽었을때 파티를 열고
내가 내 노트북을 잃어버렸을때 인디언친구가 한말
미나, 원래부터 네 물건이었던 건 아무것도 없었어
그럼 내가 소중하게 찍은 이만장의 사진은 어떻할꺼야?
미나, 살아있음에 감사해야해. 사진은 다시 찍을 수 있잖아.

라틴국가는 우리나라와 비슷하게 한의 느낌을 안다.

박정자 선생님이 하시는 19 그리고 80 이란 연극 기회가 되면 꼭 봐라.
19세 소년과 80세 할머니의 연애사인데 보면 이해가 간다.
인생은 축구경기다. 90분을 힘껏 뛰지 않은 선수가 락커룸에서 고개를 들 수 있을까?

하루 5분 명상해봐 아침이 달라질 수 있다.

질답>
아르헨터나의 빈민촌은 위험했을 텐데 어떻게 갈 결심을 했나? 나로서도 내 책을 쓰기 위해서 리스크를 감수 한것.
앞으로의 계획? 프랑스 여행책을 낼것이다. 페루 마추피추에서 삶에 대해 다시 생각을.. 내가 성장하지 않은 상태에서 또 다른 여행책을 낸다는 것은 아무 의미가 없다고 생각했다.

2012년 11월 28일 수요일

Eclipse Wizard Tutorial

Wizard

History

revisionchangesauthor
0.1initial version 2012-11-28 수 Darren Ha

Wizard

Wizard 클래스에서 상속받아서 클래스를 만든다. IImportWizard interface를 implement하는 이유는 eclipse의 import 메뉴에 사용하기 위해서 이다. 내부 구현을 보면 IImportWizard, IExportWizard, INewWizard 모두 같은 interface이고 단지 이름만 다르다. 따라서, IImportWizard를 implement한 클래스도 new project 혹은 export wizard에서 사용될 수 있다.
public class MyWizard extends Wizard implements IImportWizard {
    @Override
    public void init(IWorkbench workbench, IStructuredSelection selection) {
    }

    @Override
    public void addPages() {
        MainPage main = new MainPage();
        addPage(main);
    }

    @Override
    public boolean performFinish() {
        // TODO Auto-generated method stub
        return false;
    }
}

Wizard Page

MyWizard::addPages에서 추가될 page는 WizardPage를 상속받아서 만들고, Dialog와 마찬가지로 createControl에서 dialog를 구성해주면 된다.
public class MainPage extends WizardPage {
    public MainPage() {
        super("main");
    }
    @Override
    public void createControl(Composite parent) {

        Label l = new Label(parent, SWT.NONE);
        l.setText("test");
        setControl(l);
    }
}  

Validating each page's input

WizardPage::setPageComplete()로 해당 페이지의 input이 조건에 맞게 들어왔는지 검사해서 next 버튼을 enable할지 여부를 판단한다. SetMessage 함수로 여러가지 메세지를 wizard 헤더 영역에 나타낼 수 있다. 아래는 Text control에 제대로 된 비밀번호를 입력했을때만 finish 버튼을 enable하는 부분임.
protected void updatePageComplete() {
       setMessage(null);
       setPageComplete(false);

       String pwd = fText.getText();

       if (!pwd.equals(PASSWORD)) {
           setMessage(MSG, ERROR);
           return;
       }

       setPageComplete(true);
   }

Launching Wizard

Wizard Extension Points

eclipse의 File>New/Import/Export에 나타나게 하려면 eclipse가 제공하는 wizard extension point를 추가해야 한다. Eclipse의 plugin.xml editor에서 extension tab으로 이동한 후 아래 extension중 하나를 추가. new project -> org.eclipse.ui.newWizards import -> org.eclipse.ui.importWizards export -> org.eclipse.ui.exportWizards 추가한 extension point의 하위에 context menu를 이용하여 wizard 를 추가. class 를 실제 구현한 클래스의 이름을 추가하여 매핑해준다.

Using WizardDialog

WizardDialog를 이용해서 언제든 Programatically wizard를 띄울 수 있다. 아래 처럼.
public Object execute(ExecutionEvent event) throws ExecutionException {
        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
        IStructuredSelection selection = StructuredSelection.EMPTY;

        ISelection sel = HandlerUtil.getCurrentSelection(event);
        if (sel instanceof IStructuredSelection) {
            selection = (IStructuredSelection)sel;
        }


        MyWizard wizard = new MyWizard();
        wizard.init(window.getWorkbench(), selection);

        WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
        dialog.open();
        return null;
    }

Tutorial Project

https://github.com/nberserk/eclipsetutorials 에 가시면 위에서 언급된 소스가 모두 포함된 eclipse project가 있습니다.

2012년 11월 18일 일요일

Our Idiot Brother

Idiot Box

Good Things Happen

Out Idiot Brother
재미있고
가슴이 따뜻해지는 그런 영화.
별 4개반.

Prain movie 멤버로서 본 첫번째 영화.
영화도 영화였지만 그들이 어떤 선물을 줄지도 내심 기대가 되었는데 역시나..
위 사진에 보이는 idiot box에는 idiot candle이 들어있고 박스를 개봉할때 idiot 글자가 날아가게 되어있다. 또한 idiot candel에는 out idiot brother 글자가 새겨져 있고 idiot candle에 불을 붙이면 idiot부분이 녹아서 없어진다. ㅋ
센스쟁이들.

주인공 네드는
바보스러울 만치 상대방의 말을 믿고
자신에게 선하게 대할것이라 믿는다.
그래서 경찰에게 마약을 팔기도 하고
감찰관에게 마약을 했다고 말하기도 하고
지하철 옆의 생판 남에게 돈을 잠시 맡기기도 한다.

그렇게 사람들을 철썩깥이 믿어서 인지
그는 항상 행복하다.
막연한 믿음에서 오는 그 편안함
나도 예전에 느껴 본적이 있는것 같다.

직장 동료에게 일을 맡겼는데 좀 처럼 미덥지 않아서
하루하루 체크하고 왜 그렇게 했는지 묻고 하니
차라리 내가 그 일을 해버리는게 빠를 것 같은 느낌이 들었다.
그로서도, 사사건건 물어보는 게 마땅치 않았을 것이고
나로서도 신경쓸일이 너무 많았다. 서로에게 피곤한 짓이었던 것이다.

해서, 다음엔 믿기로 했다.
단 가끔 뭐 도와줄것 있어요?
라고 묻기로 했다.

결국엔 믿음과 신뢰는 다른 사람을 위한 것이 아닌
나 자신을 편하게 하는 것인 것이다.

이제 타인을 믿을때는 네드처럼 믿기.

하지만, 나에게 있어 절대적인 믿음이란 아직 경험해보지 못한 미지의 영역이다.
그래서 믿음이 강한 사람들을 보면 그 실체가 무엇인지 너무 궁금하다.
강한 자아? 약간의 세뇌? 항상 믿어온 습관?

2012년 11월 10일 토요일

how to use DOM AST in CDT


update 2012/11/10:
 I created separate plugin to provide DOM AST viewer called ASTViewer. You can install it using the following update site :
https://raw.github.com/nberserk/ASTViewer/master/org.eclipse.cdt.ui.astviewer.update 

for more details information see here : https://github.com/nberserk/ASTViewer


I can't find any useful resources yet. so I share this information on my blog.
DOM AST viewer shows Abstract Syntax Tree of C/C++ program in tree manner. very useful for AST related work. I don't know Why this viewer is included in test plugin. that's why we can't use it in official CDT.

anyway, here is how to use DOM AST :
  • first get CDT source from CDT repository: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git
    you can get source code for each released version here. e.g. > CDT_8_0_2.zip
  • copy CDT_8_0_2.zip/CDT_8_0_2/core/org.eclipse.cdt.ui.tests to your hard drive
  • import org.eclipse.cdt.ui.tests
  • remove build error ( i removed all source files except org.eclipse.cdt.ui.tests.DOMAST)
  • run
  • Window->Show View -> C/C++ -> DOM AST
  • done





2012년 10월 25일 목요일

Using AST in CDT

CDT AST(abstract syntax tree)

History

revisionchangesauthor
0.1initial version 2012-10-25 목 Darren Ha
0.2getting simplified ast tree using index 2012-10-31 수 Darren Ha

Introduction

AST는 코드에서 refactoring 등의 기능을 지원하기 위해서 만든 data structure이며 트리 구조를 가지고 있다. 이것을 이용해서 JDT 나 CDT 등에서 아주 강력하고 개발자에게 많은 도움을 주는 툴들을 만들 수 있다. refactoring 기능이나 static analyzer등의 기능들. 그렇다면 CDT의 index 와는 뭐가 틀릴까? index가 전체 프로젝트의 단위에서 동작하고 각 심볼단위(function or variable)로만 동작했다면, AST는 translation unit(header file or source file)단위로 정보를 get 할 수 있고, 각 function안의 statement 한 줄 한 줄에 대한 정보를 모두 가지고 있다. detail면에서는 ast훨씬 더 정교한 데이터를 가지고 있는 셈이다. <br/>

Creating With AST

// getting ast from CDE CoreModel
Path path = new Path("hello/src/hello.cpp");
ITranslationUnit tu = (ITranslationUnit) CoreModel.getDefault().create(path);
IASTTranslationUnit ast = tu.getAST(); // it's full ast
// excludes header from ast, much simplified ast.
IASTTranslationUnit simpleast = tu.getAST(index, ITranslationUnit.AST_SKIP_ALL_HEADERS); 
tu.getAST()의 경우는 header를 포함한 모든 ast node를 리턴하지만, tu.getAST(index, ..)의 경우는 헤더를 포함할지 하지 않을지 선택할 수 있다. 헤더를 포함하고 싶지 않을 경우에 사용하면 된다. C++의 헤더 디펜던시를 생각하면, performance gain이 크다.

Visiting AST

// traversing AST
ast.accept(new ASTVisitor() {
        {
            shouldVisitDeclarations = true;
        }
        @Override
        public int visit(IASTDeclaration declaration) {
            System.out.println(declaration);
            return PROCESS_CONTINUE;
        } // visit
    });  
ast tree는 visitor 패턴을 통해서 traverse할 수 있고, ASTVisitor의 생성자에서 visit하고 싶은 대상을 정할 수 있다. ASTVisitor::shouldVisitXXXXX 의 변수를 true로 해주면 매칭되는 node를 visit하게 된다.
예로 아래의 c++ function을 ast tree로 나타내 보자. 그럼 이해가 어느정도 될 것이다.
Application*
BasicApp::CreateInstance(void)
{
    int a;
    return new BasicApp();
}
위의 소스를 ast tree로 보면 아래처럼 표현된다. 소스에 비해서 아주 자세하게 표현되고 있다.
  • ICPPASTFunctionDefinition: BasicApp::CreateInstance
    • ICPPASTNamedTypeSepcifier: Application
    • ICPPFunctionDeclarator: Application*
      • IASTPointer
      • ICPPASTQualifiedName: BasicApp::CreateInstance
      • ICPPASTParameterDeclaration
        • ICPPASTSimpleDeclSpecifier: void
    • ICPPASTCompoundStatement: {}
      • IASTDeclarationStatement
        • ICPPASTSimpleDeclaration: a
          • ICPPASTSimpleDeclSpecifier: int
          • ICPPASTDeclarator, IASTImplicitNameOwner
            • IASTName: a
      • IASTReturnStatement: return new BasicApp();
        • IASTNewExpression
          • ICPPASTTypeId
            • ICPPASTNamedTypeSpecifier:BasicApp
              • IASTName: BasicApp
            • ICPPASTConstructorInitializer

Application

ast로 이런것을 할 수 있다. 다음은 c++에서 흔히 저지르는 실수인 if (a == b) 대신에 if (a=b) 로 assignment가 되는 실수를 detect하는 visitor를 만든 예이다. 이 예제는 reference 1에서 가져온 예임을 밝힙니다.
class CheckCodeVisitor extends ASTVisitor {
    CheckCodeVisitor() {
        shouldVisitExpressions= true;
    }
    public int visit(IASTExpression expression) {
        if (isAssignmentExpression(expression) && isUsedAsCondition(expression)) {
            System.out.println("warning ..." + expression.getFileLocation());
        }
        return PROCESS_CONTINUE;
    }
    private boolean isAssignmentExpression(IASTExpression e) {
        if (e instanceof IASTBinaryExpression) {
            IASTBinaryExpression binExpr= (IASTBinaryExpression) e;
            return binExpr.getOperator() == IASTBinaryExpression.op_assign;
        }
        return false;
    }
    private boolean isUsedAsCondition(IASTExpression expression) {
        ASTNodeProperty prop = expression.getPropertyInParent();
        if (prop == IASTForStatement.CONDITION || prop == IASTIfStatement.CONDITION)
            return true;
        return false;
    }
}

DOM AST(AST viewer)

CDT에는 DOM AST라는 AST트리를 보여주는 아주 훌륭한 viewer가 있었는데, 언젠가부터 org.eclipse.cdt.ui.tests 패키지에 포함되어 버려서 현재는 소스를 빌드하지 않으면 볼 수가없다. AST 관련 작업을 해야 한다면 필수 유틸 되겠다.

2012년 10월 20일 토요일

Ben & Fitz, Team Geek


이책은 정말 시간가는줄 모르고 흥미있게 읽었다. 개발자라면 모두가 읽어야 하는 필독서 라고 감히 권하고 싶다. 특히 필자들이 직접 겪은 에피소드들의 얘기가 좋았다. 팍팍 와 닿는다.

가히 소프트웨어를 혼자 개발하는 시대는 갔다. 모든 훌륭한 소프트웨어는 팀단위로 이루어기에 좋은 팀을 만드는 것이 프로젝트 성공의 key이다. 유능한 리더는 있을지 몰라도 혼자서 모든 것을 만드는 천재 개발자의 얘기는 미신에 불과하다.

좋은 팀을 만들고 싶고, 좋은 리더가 되고 싶고, 많은 사람들이 사용하는 great software를 만들고 싶다면 꼭 팀플레이를 잘하는 팀원이 되어야 한다. 팀플레이를 잘 할 수 있게 하는 지침서 되겠다.

Team Geek

The Myth of the Genius Programmer

  • genious myth
    • Linus's real achievement was to lead these people and coordinate their work; Linux is the shining result of their collective labor. p3
  • hiding is considered harmful
    • could be reinventing wheels
    • bus factor. p7
    • hard to fail eary/fast/often
  • sw development is a team sport
  • HRT(humility, respect, trust)
  • handling criticism
    • u r not ur code. don't equate your self-worth with ur code quality. p17
    • when giving feedback, do not make him feel stupid. make the question about You. p17
  • the key to learing from your failures is to document your failures. postmortems. p19
  • leave time for learing

Building an Awesome Team Culture

  • include as few people as necessary in synchronous communication(like meetings) and to go for a broader audience in asynchronous communication(like email). p34
  • mission statement helps your team confront differences and come to an agreement.
잘 정리된 mission statement는 다른 생각을 가진 사람들과 일을 할때 결론에 도달하게끔 도와준다. 우리가 하고자 하는 것이 무엇인지 항상 잊지 않게 만듦과 동시에 의견 충돌시 guidance가 될 수도 있다.

Every Boat Needs a Captain

  • You never intended to become a leader. but somehow it happened anyway. p54
  • @deprecated manager
  • traditional managers worry about how to get things done, while leaders forge the way. p56
  • quantifying mgmt work is difficult. makint team te be happy and productive is a big measure of your job. p58
  • anti patterns
    • hire pushovers
    • ignore low performers
      • hope is not a strategy. p61
    • ignore human issues
    • be everyone's friend
    • compromise hiring bar
    • treat ur team like children
  • leadership patterns
    • lose the ego
      • cultivate collective team ego and identity
      • driving the team to consensus and helping to set the direction, the details are decided by members
      • do not try
        • to get everything to right
        • to know everything
      • apoligize when u make mistakes; absolutely u will
    • be a zen master
      • mediating ur reactions and maintaining calm is important. p68
      • if someone asks u for advice, asking questions
    • be a catalyst
      • build consensus
      • In many cases, knowing the right person is more valuable than knowing the right answer. p71
      • make them feel safe and secure so that they can take greater risks; risk is fascinating thing
    • be a teacher and a mentor
    • set clear goals
    • be honest
      • jumping in front of train. pick and choose the ones u want to stop. p76
    • track happiness
      • is there anyting you need ?
      • tracking their careers; get promoted, learn something new, launch something important, and work with smart people
      • give opportunities to improve themselves
    • Tips and Tricks
      • Delegate
      • seek to replace yourself
      • know when to make waves
      • shield ur team from chaos
        • outside ur team is world of chaos and uncertainty
      • let your team know when they're doing well
  • intrinsic versus extrinsic motivation
    • Dan claims you can increase intrinsic motivation by giving people three things: autonomy, mastery, purpose. p83
    • An engineer's skills are like the blade of knife: you may spend thousands of dollars to find engineers with sharpest skills, but if you use that knife for years without sharpening it, you will wind up with a dull knife that is inefficient, and useless

Dealing With Poisonous People

  • the hardest part of SW development is people. p85
  • It's behaviors you want to filter out, not individuials. it's naive to think of individuals as purely good or bad.
  • Identifying the threat
    • not respecting other people's time; ask something with any homework
    • ego; incapable of accepting a consensus decision
    • perfectionism can be lead to paralysis
  • Repelling the poison
    • redirect the energy of perfectionists
    • don't feed the trolls
    • don't get overly emotional; choose your battles carefully and keep calm
    • look for facts in the bile
    • focus on the long term

The Art of Organizational Manipulation

The ideal: how a team ought to function within a company

  • ur life under an ideal manager
    • pursue extra responsibility
    • take risks
    • act like an adult
    • question things
    • your manager is not clarvoyant

The reality: when ur env is an obstacle to ur success

  • bad manager traits
    • fear of failure
    • want to be inserted into every interaction u have with people
    • hoarding information
  • office politician; looking impactful than actually being impactful
  • bad organization

Manipulating your organization

  • forgiveness than permission
  • If you can't take the Path, maek the path
    • adopting open source tools
    • persuade management
    • It's impossible simply to stop a bad habit; u need to replace it with a good one.
  • Learn to manage upward
    • selling yourself
    • underpromise and overdeliver whenever possible
    • offensive work vs defensive work
  • luck and favor economy
    • earn credits, it will pay enormous dividens.
  • get promoted to a position of safety
    • the higher you can get, the more control you'll have over your destiny
  • seek powerful friends
    • connectors, old-timers
  • how to ask a busy executive for anything … via email
    • three bullets and a call to action

Plan B-get out

  • be prepared and know ur options

Users Are People, Too

  • margeting
    • perception is nine-tenth of the law
  • pay attention to first impressions
  • under promise and over deliver
  • focus on the user, and all else will follow
  • speed is a feature
  • don't be all things; too many options are bad
  • hiding compexity
    • ITunes's mp3 mgmt
    • Google's search box
    • abstractions will eventually leak; e.g. browser 404 error
      • provide APIs
  • create trust and delight
    • trust is your most sacred resource; see Netflix case
    • delight; Google's April Fools day

2012년 9월 24일 월요일

추창민, 광해

광해
별 다섯.

고리타분한 왕실을 상식으로 바꿔 보려한 한 광대의 이야기.

요즘 대선 철이라 그런지
작금의 정치상황을
보고 얘기하려 한것은 아닌지.
만약 그렇다면 제일 가까운 이는  xxx가 아닌가 싶다.

비록 정치에 대한 경험은 떨어지지만
국민을 가엽게 여기는 맘으로
모든 것을 헤쳐나가고자 하는 이.

누구나 측은지심을 가지고 있고
상식만 가지고 있다면
왕의 자리에 누가 앉든 중요하지 않다.
그 자리가 그 사람을 왕으로 만들겠지.

광대의 목소리 vs 왕의 목소리
남자의 목소리에 대한 매력의 극과 극을 보여준다.
누구나 노력을 하면 목소리도 바꿀 수 있다고 한다.
존 내버로는 주름살 제거 수술 보다는
목소리에 대한 투자가 훨씬 현명한 일이라 했다.
남자들이여 목소리에 투자하라~

2012년 9월 20일 목요일

using cdt index

using CDT index

intro

CDT는 내부적으로 우리가 자주 사용하는 code assist, Open Declaration(F3), Open call Hierarchy(Ctrl + Alt + H) 등에 사용하기 위해서 내부적으로 c/c++ 코드를 parsing 해서 그 정보를 가지고 있는데 이것을 Index라고 한다. Indexer를 사용해서 특정 변수/함수 의 definition , declaration, reference 등의 정보를 가지고 올 수 있다.

getting IIndex

ICProject project = CoreModel.getDefault().getCModel().getCProject("hello");
CCorePlugin.getIndexManager().joinIndexer(IIndexManaer.FOREVER, null); // wait until indexing completes
IIndex index = null;
try{
    index = CCorePlugin.getIndexManager().getIndex(project);
    index.acquireReadLock(); // lock index

    IIndexBinding[] bindings = index.findBindings(Pattern.compile("main"), false, IndexFilter.All, null);
    for (IIndexBinding b : bindings) {
        System.out.print("name: " + b.getName()+" " );
        String[] qnames = b.getQualifiedName();
    }
}catch(Exception e){
    e.printStackTrace();
}finally{
    try{
        index.releaseReadLock();
    }catch (Exception e2){
        e.printStackTrace();
    }
}

Indexing 작업은 보통 main thread와 다른 thread에서 수행이 되기 때문에 joinIndexer로 인덱싱이 끝날때까지 기다린후 index에 lock을 걸고 findBinding 으로 쿼리를 수행할 수 있다.

querying

findBinding으로 IIndexBinding 을 얻고 여기서 얻은 IIndexBinding으로 아래 함수들을 불러 원하는 IIndexName을 얻을 수 있다. IIndex::findDeclarations : 함수/변수의 선언부와 구현부 IIndex::findDefinitions : 함수의 구현부 IIndex::findReferences : 합수나 변수가 사용된(use) 부분 그렇다면 함수의 선언부만 쿼리하고싶으면 어떻게 할까? IIndex::findNames(binding, IIndex.FINDDECLARATIONS)를 부르면 된다. 실제로 IIndex::findDeclarations은 IIndex::findNames(binding, IINdex.FINDDECLARATIONSDEFINITIONS)와 같다.
// finding declaration of BasicApp::CreateInstance
Pattern[] p = new Pattern[2];
p[0] = Pattern.compile("BasicApp");
p[1] = Pattern.compile("CreateInstance");
IIndexBinding[] bindings = index.findBindings(p , true, IndexFilter.CPP_DECLARED_OR_IMPLICIT, monitor);
for (IIndexBinding binding : bindings) {                
    IIndexName[] names = index.findNames(binding, IIndex.FIND_DECLARATIONS);
}  

getting index info

위 쿼리 함수들로 얻은 IIndexName으로 파일 위치나 기타 정보등을 얻을 수 있다.
for(IIndexName name: names){
    // get full path
    String path = name.getFile().getLocation().getFullPath();
    // get offset & length
    int offset = name.getNodeOffset();
    int length = name.getNodeLength();  
}

2012년 9월 6일 목요일

응답하라 1997



지금보다 절실한 나중이란없다. 나중이란 영원히 오지않을수도 있기때문이다. 눈앞에 와있는 지금이 아닌 안올지도 모르는 다음 기회를 얘기하기엔 삶은 그리 길지 않다


누구를 좋아하는 건 선택의 문제가 아냐. 가슴이 시키는 거야.

16화 - 첫사랑이 이루어지지 않는 이유.

2가지 재미난 상징들!


1.
윤재
+ 넌 어떻게 나보다 우리 형 마음을 그렇게 잘알아? 
정신과 가서 사람들 맘 좀 들여다 보고 치료좀 해주라고

준희
= 남의 마음은 잘 보는데 내맘을 잘 몰라서
내 맘부터 정리하고(포장된 박스를 테이프로 봉인한다. )

2.
준희 
+ 이게 마지막 짐입니다. 
- 아유 그래도 또한번 확인해보세요. 
항상 갔다가 한번은 되돌아 오더라고요. 
꼭 하나씩 빼먹고 오더라고요.
+ 그래요? (집으로 올라가자 윤재가 있고 그와 마지막 인사를 한다. )

후자에서 소름 돋았음.

----------
저마다의 첫사랑이 아름다운 이유는
첫사랑이 그닥 아름다웠기 때문만은 아니다.
그 첫사랑의 시절엔
영악하지 못한 젊음이 있었고
지독할 만큼 순수한 내가 있었으며
주체할 수 없이 뜨거운 당신이 있었기 때문일 것이다.
그리고 다시는 젊고 그 순수한 열정의 시절로
돌아갈 수 없다는 걸 이미 알고 있기 때문이다.

첫사랑은 무모하다.
영악한 계산없이 순수와 열정만으로
모든 것을 던져 버리고는
결국 실패한다.
하지만 그래서 극적이다.
다시는 가져볼 수 없는 체온과 감정들로 얽혀진 무모한 이야기들
첫사랑은 그래서 내 생애 가장 극적인 드라마다
그리하여 실패해도 좋다
희극보다는 비극적 결말이 오래 남는 법이며
그리하여 실패한 첫사랑의 비극적 드라마 한편쯤
내 삶 한자락에 남겨두는 것도
폼나는 일이다.

첫사랑은 시절이다.
흘러가면 그 뿐이다
이제 맞게 되는 새로운 시절엔
새로운 사랑에게 기회를 줘야 한다.

첫사랑의 체온과 순수함은 아닐지라도
그 상처로 인해 조금은 자라고 성숙해진
어른의 사랑을 기다려야 한다
기다리는 사람만이 사랑을 꿈꿀 수 있다.
---------
로맨스가 지나면 생활이 온다.
순수함은 때묻어 가고 열정은 얼어붙어 가며
젊음은 영악함으로 나이들어 간다
그리하여 순수했던 시절의 첫사랑은
이제 고단하고 지난한 일상이 된다.
마치 첫사랑은 이루어지지 않은것처럼 보이는 이유다
누구도 성공한 첫사랑의 로맨스는 이야기하지 않으니까

2012년 8월 31일 금요일

조 내버로, 우리는 어떻게 설득 당하는가

28
미모 보상(beauty dividend). 잘 생긴 사람이 더 돈을 잘 벌고 더 빨리 승진한다. 불공평해 보일수도있지만 이것이 현실이다. 비언어에 통달하기 위해서는 반드시 외모에도 관심을 기울여야 한다.

33
말 따라하기(verbal mirroring)
안타깝게도 대다수 사람들은 대화를 할때 자신만의 언어로  주로 사용한다. 대화의 효과를 극대화 하려면 상대방의 언어로 대화해야 한다. 상대방이 child란 단어를 사용한다면 나도 kid나 daughter대신 child를 사용하는 식이다.

38
깨진 유리창 법칙
어떤지역이 외관상 무질서한 모습을 보일경우 그 지역의 범죄나 반사회적 사건이 일어날 확률도 같이 높아진다는 이론

44
편안/불안 패러다임

131
우리는 대체로 권위있고 유능해 보이는 사람의 말을 잘 듣는 편이다. 비언어가 그다지 중요하지 않다고 생각하는 사람이 있다면 회의실 상점 레스토랑에 들어가 누군가를 보았을때 그의 자세에서 열의가 느껴지는지 무관심이 느껴지는지에 따라 그에 대한 인상이 얼마나 달라졌는지 떠올려보라. 자세는 멀리서보더라도 즉각적으로 그 사람의 전반적 이미지를 형성한다.

137
목소리의 힘.
만약 누군가 내게 주름살 제거 수술을 받는게 나을지, 아니며 시간을 조금 들여 목소리를 개선하는게 나을지 묻는 다면 나는 수술비로 쓸 돈을 저축해두고 목소리를 가다듬는 편이 훨씬 낫다고 대답할 것이다.

151
모든 동물은 본능적으로 뛰어난 외모를 지닌 개체를 선택한다. 가령 공작은 가장 화려한 꼬리를 지닌 개체가, 사자는 가장 큰 갈기를 지닌 개체가, 종마는 가장 위풍당당해 보이는 개체가 선택을 받는다. 태어날때부터 어떤한 선입견이 없는 상태에서도 인간은 미를 감지한다 아기가 추한 얼굴보다 아름다운 얼굴을 더 오래 응시하는 이유도 여기에 있다.

163
옷이 사람을 만든다는 격언에는 강력한 진실이 담겨있다. 사람은 자신이 입은 옷에 따라 페르소나(persona-다른 사람들 눈에 비치는 외적 인격, 가면을 쓴 인격)가 달라진다는 것이다.

166
사무실 조명과 생산성의 관계.
생산성 향상은 환경변화가 야기한 자극에서 비롯된 것. 시간이 지나 처음의 신선함이 사라지면 사람들이 변화에 익숙해져서(적응성은 인간의 특징이다) 행동변화 역시 사라진다.

167
정치인들이 쓰리 버튼이 아닌 투 버튼 정장만 입는 사실을 아는가? 흉부를 드러낼수록 더 정직한 사람으로 인식되기 때문이다.

183
편안함 보상(comfort dividend)
특정 치과의사 가족주치의를 계속 찾는 이유는 그들의 솜씨가 뛰어난 것은 물론 편안함까지 주기 때문이다.

193
조명을 많이 켜둘수록 더 많은 사람들이
주유소에 들른다는 사실을 깨달았다.
밝은 곳이 더 안전한 곳이라 생각.
편안과 안전의 동일시.

237
모든 사물은 엔트로피가 증가하는 방향으로
즉 에너지가 고갈되어 허물어지는 방향으로
변해간다는 열역학 제2법칙을 들어본적 있을 것이다.
나는 이 엔트로피의 법칙을 감정에 적용하여
그들이 자발적으로 감정을 소진시키게 했다.
잠시 기다리면 그들은 진이 다 빠져서
더 이상 감정표현을 할 수없게 된다.
그러면 나는 심문을 시작했다.

245
일에서 유머와 재미를 찾아 부정적 스트레스를 해소할 수단으로 삼아보자. (유머 유머..)

280
전화통화에 관한 법칙
침묵은 금이다. 누군가 불쾌한 얘기를 할때는 한참동안 침묵을 지키는 것도 좋다. 이 강력한 비언어는 사람들의 주의를 당신에게 집중시킨다.
한참 말을 멈춰서 상대방이 말을 하도록 하라. 대다수 사람들은 침묵을 두려워하기 때문에 그 적막함을 채우려 하다가 본의 아니게 비밀등을 발설하곤 한다.(이건 소개팅 자리에서도 비슷하다. 적막이 무서워 말도 안되는 얘기를 하다가 매력을 잃는것과 비슷한 듯)

283
어떤 경우에도 시각자료에 표시된 내용을 그대로 읽거나 되풀이해서 말하지 말라
청중이 당신의 얘기를 더 듣고 싶어하는 상태에서 프레젠테이션이 끝나야 한다. 주제 대해 모든 것을 다 쏟아낸 발표자는 호평을 받지 못한다.

289
결국 모든 준비는 자신감을 얻기위해서 하는 것이다. 자신감은 그 무엇으로도 대체할 수 없다. 준비가 충분하다는 믿음을 가지고 자신있게 면접장으로 들어가라.

2012년 8월 23일 목요일

google code jam 2010 풀이

Rotate

rotate 후, gravity 적용하는것은 그냥 하면 되고
row, column 은 돌면서 K개 연속으로 있는것 체크하면 되고
실수할 수 있는 부분은 대각선인데,
/은 ㅣㅡ (아래)순으로 돌고
\은 ㅣㅡ(위) 순으로 돌면 된다.
대각선에서 실수 할 수 있다.

그리고 시작위치와 속도 를 주면 K개 연속을 detect하는 펑션을 만들면 로직을 단순화 할 수 있다.
풀이를 보고 나서 .

  1. 실제로 rotate후 gravity적용하는 것은 왼쪽으로 밀어주면 끝이다. 굳이 rotate하고 gravity적요을 할 필요가 없다 --;; --> 생각을 하자. 젤 중요한 것은 시간 시간이다.
  2. N의 max가 50이므로 굳이 최적화 해서 할 필요없이 모든 칸을 돌면서 8방향을 체크하면 된다. --; --> N이 작으면, 최적화 하는 시간보다  bruteforce로 무식하게 하는것이 시간을 더 절약할 수도 있다. 중요한 것은 시간!

Number Game

dynamic programming 문제이고 turn개념때문에 좀 헷갈릴 수 있다.
small set은 cache로 어쩌 해결할 수 있으나 large set은 너무 시간이 걸렸다.
1억번의 빈 루프를 도는 것만 수분이 걸리는데, largeset중에 백만 x 백만 짜리 문제가 있다.-- 이거 머임?


오류들
- B는 모든 k에 대해서 이겨야 하지만 A는 한 k에 대해서만 이겨도 됨..
- turn별로 다른 cache를 사용해야 했는데 그것으로 오류.
- large set은 백만까지 가므로 기존 알고리즘으로는 한계가 있었음.


2012년 8월 22일 수요일

'공개된 삼성과 애플의 미국 내 판매실적을 보니 충격적'에 대한 반박

오늘 우연히 구글 플러스에서 이찬진님의 타임라인에서
공개된 삼성과 애플의 미국 내 판매실적을 보니 충격적
이란 글을 봤는데 그 논리가 어설퍼서 글로 남긴다. 우리 나라 국민에겐 애증의 삼성이지만 사실은 바로 알아야 하지 싶다. 막연한 마녀사냥은 이제 그만할때가 되지 않았는가 말이다.


이글을 쓴 분의 논리는 이렇다.
미국에서 삼성 스마트폰의 판매량은 애플과 비교해서 많이 작고 ASP도 애플의 60% 정도 밖에 되지 않는다. -> 그러면 그 엄청난 영업이익은 다 어디서 왔단 말인가? -> 국내 시장에서 엄청난 폭리!

 나의 반대 논리는 이렇다.
1. 삼성에게 글로벌 시장은 국내와 미국 밖에 없단 말인가? 삼성전자는 그야말로 글로벌 기업인데 전체 매출에서 국내 매출 비중은 16% 정도 밖에 되지 않는다. 유렵도 있고 아랍권도 있고 중국 동남아 남미 등등 그 외에도 많은 권역이 있다.

 2. 삼성전자는 갤럭시 S 씨리즈만 파는게 아니다. 저가 스마트폰(갤럭시 에이스, 등등)도 많이 팔기에 ASP가 애플에 비해 떨어지는 것은 자명한 일이다.

3. 핸드폰 영역에서 삼성의 비지니스 모델은 이통사에게 파는 것이지 소비자에게 직접 파는 게 아니다. (최근 화이트리스트 제도로 가능해지긴 했지만 아직은 미미한 수준이다) 그러므로 가격 결정은 이통사의 자율이 되는 것이고 애플에 비해서 가격이 잘 떨어지는 것도 이 때문이다. 애플은 계약서에 이통사가 자율적으로 가격을 떨어뜨리지 못하게 이통사와 계약을 따로 하는 것으로 알고 있다.

2012년 8월 20일 월요일

google code jam 2009 풀이


google code jam 2009년 문제.

* AllYourBase

C#이나 Java에서
double Match.pow(double, double)
만 제공을 한다.

해서 pow(5,23) 처럼 int의 범위를 넘어가는 큰 수의 경우 pow(double,double)은 부정확한 값을 리턴 할 수 있다.
위키에 따르면
double은
sing 1 bit
exponent 11 bit
significand 52 bit
이렇게 64 bit로 이루어진다.

즉, double이 significan가 표현할수 있는 수의 범위는 2^52승이 한계라는 말이다.
헌데 pow(5,23)같은 경우는 2^53을 넘어가는 범위에 있으므로 double버전의 pow로는 정확한 값을 계산해 낼수 없다는 얘기다.

그래서 long 버전의 pow(long,long)을 구현하거나 쓰는 것이 key인 문제였다.

* CenterOfMass

double은 의외로 오차가 많다. 특히나 정밀도를 요하는 계산에서.
문제에서 Any answer with absolute or relative error of at most 10-5 will be accepted. 이것이 key이다.


* bribe the prisoners


  1. P=10000이고 Q가100일 경우 가능한 경우의 수는 100! 이므로 bruteforce로는 시간적 한계가 있음.  large set 문제는 무식하게 풀면 풀지 못함.
  2. 이런 종류의 문제를 DP 문제라고 함. 정확히 catch는 못했지만 정확한 알고리즘이 없을 경우이고, recursive이면서, 반복될 확률이 높은 경우에 cache 를 적용해서 DP 문제라고 하는 것 같음. 
  3. log를 남기는 것도 큰 퍼포먼스 감소를 가져오므로 large일때는 로그도 끌것

2012년 8월 3일 금요일

회사의 공짜 takeout

최근에 회사는 구글의 영향을 받아서 인진 몰라도 회사에서의 밥값을 모두 공짜로 지원하기로 했다. 회사는 바쁜 사람들을 위해 주먹밥이나 햄버거, 샌드위치, 과일, 죽같은 takeout도 같이 제공을 하기 시작했다. 바쁜 사람들은 takeout을 받아놓고 덜 바쁠때 먹으라는 취지다. 참 좋은 제도이다.

역으로 여러 부작용이 같이 생겼는데..
냉장고가 takeout로 가득차서 냉장고 본연의 기능을 상실하고 takeout 저장소가 되었고, 그 takeout들중 상당부분이 유통기한이 지나서 버려진다는 점이다. 유통기한이 지난 것들을 가려내는 것이 청소아주머니의 큰일이 되어버렸다.
공짜니까 먹지도 않을 takeout을 받아놓는 것이 문제인 것이다.

takeout은 일회용기에 담아서 주는데 버려지는 용기가 좀 된다. 매 끼니때마다 생기는 그 용기들은 재활용되지 않고 모두 버려진다. 한번 왜 그런지 물어본적이 있는데, 재활용 하는것보다 소각이 더 싸게 먹히기 때문이라고 한다.
이 역시 용기의 가격이 너무 싸게 책정된 비합리에서 기인한다.

가격은 실패할수 있고 그 결과는 비합리적일 수 있다.

2012년 7월 21일 토요일

Eclipse PDE source attach

http://git.eclipse.org/c/pde/eclipse.pde.ui.git
에 가면 각 릴리즈 별로 taggin이 되어 있는데 자신의 버전에 맞는 태그를 찾아서 소스를 다운 받고 이것을 Attach해주면 된다.

내 경우는 
http://git.eclipse.org/c/pde/eclipse.pde.ui.git/snapshot/R3_7_2.zip
를 다운받고 attach해주니 잘 된다.

2012년 7월 12일 목요일

김정운, 노는 만큼 성공한다


48
사람들은 자신이 선택한 일에 한해서만 책임진다. 내가 선택했다는 느낌이 있을때, 그 일의 주인공이 된다는 이야기다. 통제의 주인은 경영자가 아니라 나 스스로라고 생각할때, 회사의 일을 자신의 일처럼 하게 된다. 통제나 선택의 주인이 자신이 아니라고 여겨질 때 사람들은 자존심이 상한다. ( 애가 뭔가를 계속 하려고 할때, 5분만 하고 그만할래? 아니면 10분 하고 그만할래? 하고 물어보면 대개 10분이라고 대답한다. 하지만 10분이 지난걸 확인시켜 주면 애는 정말 그만한다. 자신이 선택한 것은 애기들도 책임진다. ㅋ)

80
정보는 의미를 수용하는 가장 최소한의 인식단위이고, 지식은 이 정보와 정보들 간의 관계라고 할 수 있다. 그렇다면 새로운 지식은 기존의 정보와 정보들 간의 관계를 새롭게 만들어 내는 것을 뜻한다. 이것이 바로 창의성이다.

152
눈과 눈이 마주칠때. 독일인은 기본적으로 미소를 띄는 반면 우리는 적개심을 드러낸다. ( 정말 왜 당연히 적개심을 가지고 왜 째려봐를 남발하게 되는 것인가. 나부터 미소를. ㅋ)

169
그 자존심 높은 프랑스사람들도 헐리우드 영화에 손을 들었다. 오직 한국영화만이 지구상에서 헐리우드 영화에 맞서 안밀리고 버티고 있다. 한국에서 영화가 유난히 잘 되는 이유는 이 땅에 자기가 정말 재미있어 하는 것이 무엇인지 모르는 사람이 너무 많기 때문이다.

174
현대를 사는 우리가 사소한 재미를 찾지 못하는 이유는 재미에 대한 환상 때문이다. 엄청난 사랑에 대한 환상을 버려야 행복할 수 있는 것처럼 엄청난 재밍 대한 환상을 버려야 한다. 그런 재미는 지금까지도 없었고, 앞으로도 업다. 그환상을 버려야 사소한 재미가 얼마나 소중한 것인지 알게 된다.

179
내 지도교수는 can't 은 없다고 주장한다. 할 수 없다고 이야기하는 것은 거짓말이라는 이야기다. can not 이 아니고 will not 이라는 것이다. 다른 일에 비해 우선순위가 밀려 내가 하고 싶지 않다는 의미이다.

190
우리의 성공 내러티브는 단순한 패턴이다. 가난한 집에서 태어나 젊었을때 엄청 고생을 하고 열심히 잠도 잘 자지않고 일해서 결국엔 성공한다라는 패턴. 그러면서 포기하지 않고 노력하면 성공한다고 한다. 그러면서 가족에겐 미안하다고 말하고..
이 이야기에는 여유와 행복이 없다. 그렇게 해서 성공하면 무엇하나. 성공은 우연일뿐이다.

253
여가 전경과 배경을 바꾸는 일
내게 너무나 중요했던 일들을 배경으로 보내고, 배경에만 흐릿하게 있어왔던 것들을 전경으로 끌어올리는것

271
지금 행복하지 않은 사람은 나중에도 절대 행복하지 않다. 성공해서 나중에 행복해지는 것이 절대 아니다. 지금 행복한 사람이 나중에 성공한다.


2012년 7월 7일 토요일

하지못한다고 말하는 용기

오늘 문득 이런 생각이 들었다. 하지못할것들에 대해서 하디못한다고 얘기하는 것은 용기를 필요로 하고 그것이 소프트웨어의 미래에 좋을것이란 생각이 든 것이다. 왜냐고? 들어보시라

이번주초에 코드 프리즈가 되었고 이번주에 알파2를 릴리즈 하기로 되어 있었다. 하지만 우리팀은 외주업체의 늦은 딜리버리로 뒤늦게 코드를 반영했고 다른 팀은 이에 대한 대비를 할 시간이 충분차않았다. 그런 연유로 다른 팀에서 이번에 해당 피처를 넣기 힘드니 양해해 달라고 했다. 울팀입장에서는 거시기 하지만 정말 릴리즈를 하고 싶다면 그 팀의 말이 백번 옳다. 그 피처를 넣기 위해선 기일이 늦춰질 수밖에 없고 일정에 맞춰 일한 수많은 다른 팀원들은 불만을 가질것이고 릴리즈일정에 대한 신뢰도 깨어질 것이기 때문이다. 해서 다음 릴리즈에도 일정상 늦었어도 이번릴리즈에 넣을 수 있다는 나쁜 희망을 가지게 되고 너도나도 일정을 만만하게 여기기 때문이다.
결국 얻는 것보다 잃는게 많다.

메니저들은 릴리즈에 임박하여 못다한 것들을 해보겠다고 하는게 능사는 절대아님을 지각하기를 ... 못할 것은 못한다고 하는게 팀원을 위해서나 팀을 위해서나 더 좋은 선택이 될 수 있음을 기억할 필요가 있다.

2012년 6월 29일 금요일

반장의 트라우마

초등학교 3-4학년 때였던 것 같다. 공부를 좀 한다는 이유로 반장에 선출되었다.(완전 시골 학교)
그때 담임은 새로 부임온 여자 선생님이셨는데 이름도 아직 기억이 난다. 기억력이 별로인 나에게 이건 거의 기적에 가까운일이다.

당시만해도 난 나서기 좋아하고 재미나게 학교 생활을 하고 있었다. 예를 들어 그림을 보고 무엇을 하는 그림인지 상상해서 얘기하는 그런 게 있으면, 난 재미난 얘기 꺼리를 만들어서 제일 먼서 손을 들었다. 그런식으로 뭔가 재미난 방향으로 수업에 참여하는 것을 좋아했다.

그런 나였는데, 반장을 하고 나서 변화가 생기기 시작했다. 여자선생님이고 처음 부임 오신분이라 노하우가 없으셔서 선생님 말이 잘 먹히지 않았었고 그런 이유로 선생님도 스트레스를 많이 받으셨던 것 같다.
어느 날 부턴가. 선생님은 나에게 회초리를 주면서 떠드는 애들을 때리라고 지시를 하셨다. 대신 애들이 떠들면 네가 맞는다는 말과 함께..
처음에는 차마 친구들을 회초리로 때린다는 것을 하지 못해 내가 맞았고
내가 맞아보니 아파서 친구들을 때리기 시작했다.
근데 그게 할짓이 못 되었다.

그런 고문이 오래 지속되었던 것 같지는 않은데 그 충격이 좀 컸나 보다.
난 이때부터 대중으로 들어가 그들과 같은 색깔을 내며 튀는것을 싫어하게 되었고 심지어 그게 나쁜 것 안좋은것으로 까지 생각을 하게 된 계기였던 것 같다.

지금 와서 생각해보니
나의 아이덴티티는 그렇게 상실 되어버렸던게 아닐까 생각한다.

2012년 6월 13일 수요일

우리의 경쟁력

이것은 나의 얘기일 수도, 더 나아가 삼성의 얘기, 혹은 우리나라의 얘기일 수 도 있겠다.

요즘 세계 IT News(TechCrunch, Engadget, Mashable ...) 들을 보면 우리의 삼성 혹은 LG얘기가 많다. 10년전만 해도 흔치 않은 일이었는데, 이제 그마큼 관심의 대상이자 궁금한 회사가 된 것이다. 대단하지 않은가.

내가 삼성에 있으니 무엇이 우리의 경쟁력이고 삼성의 경쟁력인지 동료들과 얘기를 하는데 비슷한 결론이 난다.
우리처럼 책임감있게 일하는 사람들은 이 세상 어디에도 없다고.
삼성에 들어온 사람들은 어느정도 성향이 비슷한데 다들 성실하고 책임감이 강하다.
일단 일이 주어지면 가능한 잘 마무리하려고 애쓴다. 다들 그게 당연한 것인줄 아니까.

예전에 같은 기능을 하는 소프트웨어 모듈을 개발하는 국내의 B업체와 외국계 A업체가 있었다. 보통 대기업에서는 특정 기술에 종속되지 않기 위해서 항상 같은 기능을 하는 솔루션 2개를 동시에 가져간다. 그래야 나중에 협상도 유리하게 할수 있게 backup도 되기 때문이다. 기술력은 A가 더 좋았는데 같은 요구사항을 줬을때, A는 일주일걸리는걸 B는 하루만에 처리하는 것을 봤다. 어떤것이 올바른 것이라 말하는 것은 논외로 하고 우리는 그만큼 속도에서 빠르다. 요즘처럼 빨리 변하는 시대에 시간에 맞춰 그런 일을 책임감있게 해줄수 있는 사람은 한국사람외에 또 있을까? 우리와 성향이 비슷한 이스라엘 사람들은 그럴수도 있겠다는 생각은 든다. 근데 아직 겪어보질 못해서.

이와 비슷한 예가 있다.
얼마전 구글에서 KPOP 콘서를 할때 아래와 같은 에피소드가 있었다고 한다. 거기서 부분 발췌 원본은 여기에서 보시길.

개인적으로는 세계 IT의 심장부 구글에서 콘서트를 열었다는 상징성과 함께 미국이라는 공연 선진국의 스태프와 같이 협업한 경험에 큰 의미를 둔다. 재미있는 에피소드 한 가지. LED로 장식된 큰 미닫이문 세트 두 짝을 만들었다. 문이 열리면서 가수들이 무대로 등장한다. LED가 무겁긴 하지만 한국에선 스태프 둘이 한쪽씩 붙어 문을 연다. 그런데 덩치도 큰 미국인 스태프들은 한쪽에 네 명씩 여덟 명이 붙었다. 안전을 위해 그래야만 한다고 노동조합 대장이 우기니 따를 수밖에. 그게 다가 아니다. 공연 중 이 스태프들이 소변이 마려울 수 있으니 예비로 여덟 명을 더 스탠바이 시켜야 한다는 것이다. 결국 우리는 두 명이 하는 일을 미국 스태프 열여섯 명이 하게 됐다. 서로 놀랐다. 어느 쪽이 맞는지 모르겠지만 아무튼 한국은 대단하다.

세상 어디에도 우리처럼 이렇게 열심히 일하는 사람들은 없다. 그것에 대해서는 자부심을 가져도 될만하다. 하지만 계속 이런식으로 우리가 계속 성공할 수 있을 것인가? 라고 묻는다면 아니올시오다.
세상은 변하고 있기에.

2012년 6월 5일 화요일

김상득, 슈슈


남자의 목숨은 호흡기가 붙들고 있느것 보다 끈질기며, 남자의 의지는 수치와 그래프가 보여주는 것보다 강하다.

체조선수의 마무리 포즈는 '착지가 다소 불안했지만 여전히 멋진 선수라는 사실을 기억해줬으면 좋겠다'는 선수의 마음이 담긴것.

2012년 5월 12일 토요일

이한, 완득이

이번에 국회의원이 된 이자스민씨가 완득이 엄마로 나온다.
완득이와 완득이엄마 이를 도와주는 선생님 사이의 이야기다.
다문화가정이 많다는 얘긴 많이 들었지만 아직 주위에서 많이 보진 못했는데, 시골에서는 아주 흔한 풍경이라고 하더라.

해외 여행을 하면 백인들 중 인종차별하는 애들이 몇몇 있는데 그럴때 마다 단순 여행임에도 아주 주눅이 들곤했었다. 100명중 한명이 그런다고 해도 1%밖에 안되는 수치지만 당사자에게는 큰 임팩트로 다가온다.
다양성을 포용하고 배려해줘야 하는 우리다.
그런 면에서 한나라당은 참 똑똑했다. 이자스민씨를 대표로 내세워 다문화가정의 표를 얻었으니 이런 면만 봐도 민주당 보다 훨 낳지 않은가. 사상이 다가 될 수 없다. 그들을 받쳐주는 브레인들이 있어야지.

동주는 선생님 본연의 가르치는 역할은 등한시하지만 인간적이며 따뜻하다.
전혀 밉지 않다.

우리나라 교육의 문제점도 일갈한다.
- 니네 벌써 학원에서 다 배우고 왔잖아 ? 뭘 더 가르쳐 주냐?
- 야자는 야간 자율학습의 준말인데 좀 잘못된거 같지 않아요? 야간 강제학습이지. 야강!

완득이 연애편지. 완득이가 쓴것이라고 믿을 수 없다. ㅋ
요즘 내가 보는 모든게 너를 닮았다. 구름도 닮았고 꽃도 닮았고 달도 닮았다.

2012년 5월 2일 수요일

JYP

난 jyp가 좋다.
내가한참 라디오에빠져있을때 박진영의 인생상담코너를 좋아했다. 그의 답은 언제나 명쾌했고 깊이가 있었다.
멋진 사고방식과 춤 노래 거기다 타고난 얘기꾼이었던것이다.

그 수많은 문답중 하나.
고딩 :
어떻게 진로를 정해야 할지 모르겠어요.

JYP :
많은걸 해보세요. 그래야 자신이 무엇을 잘하는지 무엇을 좋아하는지 알 수 있거든요.
우리는 너무 자기 자신을 몰라요. 인생에서 아주 중요한 것임에도 말이예요.
단, 좋아하는것과 잘하는 것을 일치시키는게 중요해요.
자 두명의 친구가 있어요.
둘다 가수가 되고 싶어하지만 한명에겐 재능이 있고(A) 다른 한명(B)은 그렇지 않아요.
재능이 없어도 열심히 하면 되지 않느냐고 생각 할수 있어요.
하지만 B가 더 많은 연습을 하는데도 불구하고 A가 항상 더 인정을 받아요. 그게 한달이 가고 1년이 가고 몇년이 가고 몇년째가 되어도 B가 계속 가수가 되고 싶어 할까요?
그래서 자신이 무엇을 잘하는지 무엇을 하고 싶은지 알아가는게 아주 중요하다고 생각해요.
청소년 여러분 많은걸 경험해 보세요. 그래야 무엇을 좋아하고 잘 하는지 알수 있으니까요

그 당시 내게 많은 생각거리를 던져주는 말이었다.

그 JYP가 어제 힐링 캠프에 나왔다. 하나도 놓칠수 없지.

시간.
저는 시간을 절약하는게 너무 중요해요.
그래서 밥도 음료수와 과일 견과류등으로 15분정도에 끝낼수 있게 준비하고요.
옷도 5분만에 입을수있게 정리가 되어있어요.
하루 스케쥴을 보면
8시 기상
8시 5분, 콘솔 서랍에 있는 비타민 섭취 및 견과루 섭취.
15분 아침 식사, 과일 2종류, 하루야채, 두유 등..
곶감을 너무 좋아하는데요. 단 것이니 하루에 하나만 먹고 있어요.
30분 스트레칭
30분 발성
2시간 헬스
이렇게 17년을 해왔다고 한다.
나태해질때면 한쪽 벽에 붙여놓은 대형 콘서트 사진을 보면서 마음을 다 잡는다고 한다.
팬들에게 미안하니까..
(아주 간단한 것 같지만 인간의 심리적 약점을 파악하고 적재적소에 대비를 잘 해놓은 것이다)

사람들은
예술하는 사람들은 자유롭게 살아야된다고 하는데 그 말을 이해할수 없어요. 몸을 잘관리해서 컨디션이 좋아야 영감도 잘 떠오르거든요.

자유
처음에 돈이 많으면 자유로울줄 알았다. 26세에 20억을 벌었다.
잠깐 행복했다가 돈이 전부가 아닌것 같더라.

그래서 명예를 목표로 잡았다.
제작자로서 god를 키웠고, 미국으로 무작정 건너가서 Maze와 월스미스 캐시에게 곡을 팔았고 그 곡들이 모두 빌보드 top 10에 들었다. 아시아에선 유일했다.
1등을 하는 사람이 명예로운것이아니라 새로운 길을 개척하는 리더가 그런것 같아요.

명예까지 얻었는데 그래도 허전하더라.
그래서 주위 어려운 사람들한테 베풀기 시작했다. 그랬더니 정말 행복하더라. 99%까지.

헌데, 채워지지 않는 1%가 있었다.
지금의 내가 되기 위해 내 힘으로 한것이 아닌 것들이 많다.
- 한국/ 우리 부모님 밑에서 태어난것.
- 억지로 피아노를 배운 것
- 2년동안 미국에서 산거
- 마이클 잭슨을 만난거
- 영리하게 태어난 것
- 좋은 작곡가들을 만난것
- 아날로그와 디지털의 경계에서 태어난것.
....

위에서 누가 나를 지켜보고 있는 것이다.
그것이 누군지 일주일에 하루동안 연구하고 생각해본다.
성경, 불경, 코란, 등의 책을 읽고 있다.

Untouchable

언터처블
별 4.5개


같이있으면 내가 기억하기 싫은사실이 연상되어서 싫은 사람이 있다.
필립에게 드리스 전의 수 많은 간병인이 그랬다.
그들은 자신이 불구라는 사실을 너무나 명확히 의식하며 필립을 대했고, 반면 드리스는 필립 그대로를 있는 그대로 대한다.
해서 필립은 드리스가 맘에 들었던 것이다.

미술품 풍자
드리스는 말도 안되는 미술품이 고가로 팔리는 것을 보고 자기도 자기만의 그림을 그린다. 이 그림을 보고 필립은 자신의 친척에게 그림을 고가로 판다.
예술이란 그런 것이다.
같은 그림을 내가 그리면 무가치
앤디워홀이 그리면 기십억.
필립같은 애호가가 이거 유명한 신인작가가 그린건데 하면 기천 유로.


2012년 5월 1일 화요일

윤종빈, 범죄와의 전쟁:나쁜놈들 전성시대

범죄와의 전쟁
별 넷




최민식의 연기가 너무 리얼해서 최민식이 싫어지려고 까지 한다.
어쩜 이렇게 능글맞게 야비하게 잘 소화하시는지..
어매이징한 배우님이시다.

최익현씨는 로비스트로 그려지고 있는데 브로커가 맞지 않나 싶다.
비리 공무원들을 구워 삶아서 원하는 바를 이루는..
정책 입안까지 해야 로비스트지..

경주최씨 충렬공파 몇대손.
최익현과 최형배를 이어주는 끈은 혈연이었다. 그 작은 끈으로 최익현은 대부가 된다.
대부가 된후 그 허세는 하늘을 찌르는데
정작 최형배와 사이가 틀어지게 된 것은 그 허세때문이 아니라 라이벌 조폭 짱과의 화해를 주선하는 자리에서 최형배를 무시하는 말을 했기 때문이다.
하하
대부를 하루아침에 내팽개친 이유치고는 너무 유치하지 않은가 말이다.
그 부분이 최형배의 캐릭터를 아주 잘 보여주고 있다. 그는 유치하며 무식하다.

최익현과 최형배의 술자리에서 누구나 소시적 절친과 한번 해봤을법한 얘기를 한다. 다만 그 스케일이 우주까지 가진 않았지만..
최익현 :
 우주의 기운이 우리 둘을 감싸고 있다 아이가.
남자 둘이 의기투합하면 이런 기분이지.

혹시 진양하씨 사직공파 이신가요? 저랑 비지니스좀 해봅시다.

윤종빈감독은 79년생에 비스티보이즈 감독이었다.
이 감독좀 어둡고 다음 작품이 왠지 기대되네.

2012년 4월 28일 토요일

정지우, 은교

은교.
별 4개 반

젊음.
젊음은 젊은 자체로 아름다울 수 있다.
젊음의 가격은 얼마나 될까?
그것은 당신이 얼마를 당신손에 쥐어주면 당신의 젊음과 돈을 맞바꾸겠느냐에 대해 생각해 보면 된다. 1억? 10억? 100억?
얼마면 바꿀수 있을것 같은가?
젊음의 가격은 상상이상으로 비싸다. 노화는 위대한 발명이지 않은가.
그래서 이적요는 울부 짖는다.
너희의 젊음이 너희 노력으로 얻은 것이 아니듯,
 내 늙음도 내 잘못으로 받은 벌이 아니다. 

나이 70을 연기하는 박해일의 너무나 젊은 목소리는 약간 거슬렸다.
감독은 왜 박해일을 캐스팅했을까? 실제 70즈음의 배우가 그역을 연기하는 것은 너무나 추해보일것을 예측했던게 아닐까?

공대생.
서지우는 공대생이었다.
별이 다 같은 별이 아님을 아는데 10년이 걸렸고,
은교에게
 거울은 다 똑같은 거울이라고 말했다가
공대생이 뭘 알겠어? 란 핀잔을 듣는다.
공대생에게 투박한 이미지를 씌워 버렸다.
이거 공대생으로서 너무 맘 상하네. 공대생도 공대생 나름이지. 흥.


섹스
섹스는 왜 하는가? 에대한 한가지 유력한 모범답안을 제시했다.
은교 : 왜 이러는 거예요. 저 좋아서 이러시는 거예요?
서지우 : 아니 그냥 외로워서.
은교 : 여고생이 왜 남자어른과 섹스하는지 알아요? 외로워서 그래요


시.
별은 다들 아름답다고 생각하지만 그것은 누구도 정해주지 않았다.
이제 갓 사귀기 시작한 어떤 남자의 눈에 별은 희망 따뜻함이지만,
오늘 해고를 당하고 들어가는 어느 가장의 눈에 별은 원망 혹은 미움의 대상이 될 수도 있다.
마찬가지로 집안 형편이 넉넉치 않았던
이적요에게  연필은 아픔이었다.

시는 자신만의 시선으로 사물을 볼때 만들어지는 것이다.
그런면에서는 독특한 희진양이 시를 쓰는 것은 잘 어울린다고 생각한다. 옛날 한때 희진양이 그랬었지.

나 너무 특이한 것 같지 않아요?

그래서 난 그랬지.
그런 면이 시를 쓰는데 있어서 너를 차별화시키는 점이 될꺼야.


2012년 4월 19일 목요일

Moving from C++ to Java

10년을 C++만 하다가, 최근 몇년을 Sciprt를 하다가 이제서야 Java에 손을 대기 시작했다.

Java의 첫 느낌은 spec이 정말 깔끔하다는 것.
C++에서 복잡하고 모호한 것들을 잘 정리한 언어라는 생각이 들었다.
Eclipse IDE도 괜찮고.

- data types
Java에는 unsigned가 없다.
char는 기본이 2byte & unicode체계다.

- access modifier
public/protected/private 개념은 c++과 동일.
그외에 default가 있다. default는 package내에서만 visible하고 다른 패키지에서는 접근하지 못한다.

- multiple inheritance
Java에선 multiple inheritance는 지원하지 않는다. C++에서 복잡하고 모호했던 부분이었는데 잘 cut한것이란 생각이다.
단 interface는 multiple inheritance 가능.

- interface
C++에선 pure virtual등을 사용해서 했었는데 interface는 더 강력하게 intefacing을 해준다.

- fully Object Oriented
java는 모든 클래스는 강제로 Object를 상속받게끔 되어 있다.
custom Object Serialize는 mfc의 그것과 비교해 너무 쉽지 않은가 말이다.

- thread synchronize
synchronized keyword를 비롯해서
Object에 있는 wait/notify/notifyAll등을 통해 매끄럽게 sync를 지원해주니 개발자로선 편하기만 하다.

- package
c++은 모듈화라고 해봤자 dll단위였는데 이것도 문제가 많이 있었다. dll간의 디펜던시 문제는 아직까지도  문제를 불러 일이키고 있다.
Java는 훨씬더 깔끔하게 package별로 재사용될수 있는 매커니즘을 제공해주고있다.

- deploy
C++ 라이브러리를 제공할때는, dll과 헤더를 보내줘야 한다.
반면 java는 패키지하나면 땡이다. 더구나 그 패키지에 소스 패키지까지 포함 할 수 있다.

Java 매력적인 언어이지 않은가..




2012년 4월 14일 토요일

버스커x2

박진영의 트윗을 보고 우연히 듣게 되었는데 이 그룹 예사롭지 않은 느낌이다.
앨범의 모든 곡들이 좋아서 계속 듣게 된다.
그랬던 앨범은 신승훈/서태지가 마지막이었던것 같은데... 참 오랜만이구나.

보컬 목소리가 좋고
노래에 배어있는 감성이 좋고,
음악을 즐기고 있는 그들이 좋다.

그들은 어디까지 성공할 수 있을까?

* 버스킹이 길거리 공연이라는 것을 처음 알았다.

2012년 4월 5일 목요일

EclipseCON 2012

3월 말에 5일정도를 reston, Virginia에서 열리는 Eclipsecon 2012 에 다녀왔다.

이것은 이번 출장에 대한 결산이라고나 할까.

1. 여유.
엘리베이터를 탈때나, 문을 열고 닫을때 100% 외국인들이 내게 먼저 양보를 했다. 난 한국에서의 행동이 배어 있어서 적절한 타이밍으로 비켜나오는 정도인데 그들은 그렇지 않았다. 항상 상대방을 배려하는 여유가 있었다. 또 적당한 유머까지.
분명 우리가 배울 점이다.

2. Open
바야흐로 오픈소스는 대세가 되었다. 
좋은 개발자가 되려면 유명한 오픈 소스의  commiter 임을 증명하면 된다. 세계가 인정해주니까.
특히 많은 독일 애들(Jubula, xtext ...)이 눈에 띈다. 독일애들은 영어도 잘하네. --;;

3.출장 모랄.
회사는 이번 출장으로 나에게 돈을 얼마나 투자했는가. 
비행기 250, registration fee150, 호텔 100, 차렌트 50, 출장여비 50
600이다.
객관적으로 가등급 부럽지 않은 수준이다.
내자신에게 동기를 부여하고, 내가 전해들은 것들을 잘 전달하자.

4. Neverlost
처음 렌트를 해서 차를 몰아봤다. 걱정을 좀 했었는데 neverlost덕분에 잘 돌아다녔다. 
점과 선으로 표시되는 네비인데 전혀 불편하지 않았다. 이 조그만놈에 미국 전체지도를 구겨 넣을려면 당연한 선택이 아니었을까 싶다. 울 나라 네비는 오버인지도 모르겠다. roi가 낮다. 점과선으로 빠릿빠릿하게 만들어서 가격으로 승부하면 가망성이 없나?

2012년 3월 24일 토요일

interview - 2012

오늘 interview 후기.

오늘 결론적으로 내가 범한 실수는 어떤 절실함을 어필하지 못했고, 스펙 채우기 식의 칸 채우기로 인한 마이너스 효과를 봤다. 안적어도 되는것인데 오히려 마이너스 효과!.

말문이 막혔던 질문들
1. 게임이 그렇게 좋았고 기술도 있었는데 방과후 프로젝트로 다른것을 해보지 않았나요?
2. 세분중(다 아는 사람들) 한분을 뽑아야 한다면 누굴 뽑아야 할까요?
3. 제안한 게임을 사람들이 좋아할까요?

a1, 사실 게임을 그렇게 좋아하진 않았는데, 그게 티가 나버린 질문. ㅋ
a2, 별달리 답을 할게 없어서 침묵.
a3. 아뇨라고 답했어야 했는데.. 어떻게든 살려보려고 하다 보니 횡설수설이 되어 버렸다. ㅋ

교훈, fake는 통하지 않는다. 진실만을 말하자.

2012년 3월 14일 수요일

리차드탈러 캐스선스타인, nudge(넛지)


우리는 매일 선택을 하며 산다.
무엇을 선택하느냐에 따라서 때론 웃고 때론 울기도 한다.
하물며 우리가 잘했다고 믿고있는 선택들도 실제론 그렇지 않은 경우가 많다.

아래 예들처럼 사람의 특성들을 이용해서 넛지를 가함으로서 소비자들이 현명한 선택을 내리게 할 수도 있고 그 반대도 가능하다.
아주 재미난 책이다.

다음의 예들은 흥미진진하다.

  • 14,
    학교 급식시 자유배식 진열대의 음식배열 순서를 바꾸는 것만으로 특정 음식의 소비량을 25%씩이나 올리거나 내릴 수 있다. 급식 책임자는 이 결과를 바탕으로 식당의 수익을 극대화 할 수도 있고 학생들의 건강에 이로운 방향으로 음식을 배열할 수도 있다.
  • 18,
    암스테르담에 있는 스키폴 공항의 남자화장실 변기에는 조그만 파리가 그려져 있다. 이것으로 변기 밖으로 튀는 소변의 80%를 감소시켰다.
  • 47
    a)현재 얼마나 행복한가? b)데이트를 얼마나 자주 하는가? 두질문이 이 같은 순서로 제시되었을때 두 질문의 상관관계는 11%다. 그러나 두 질문의 순서를 바꾸면 상관관계는 62%까지 높아진다. (와우, 인간의 선택은 context에 영향을 많이 받는다)
  • 48
    사람들은 선택안이 $50, $75, $100, $150 으로 제시되었을때보다는 $100, $250, $1000, $5000 로 제시되었을때  더 많은 액수를 기부할 것이다.
  • 62
    100달러의 손해를 감수하기 위해 필요한 이익은 200달러정도라고한다. 이런 손실기피는 때로 커다란 이익이 되는 교환의 기회가 주어졌을때 그것을 막는 넛지로 작용한다.
  • 65
    Framing, 100명중 90명이 산다 vs 100명중 10명이 죽는다
    중대한 수술을 앞둔 환자에게 전자로 질문을 하면 수술을 받을 확률을 높이고, 후자는 반대로 수술을 받지 않을 확률을 높인다.
  • 79
    부임첫해에 박사과정을 마칠수 있다는 조건으로 A는 대학에 고용되었다. A의 행동하는 자아에 의해서 논문을 끝마치는 고된일을 미루고있었다. 그때 친구가 개입해서 A가 친구에 $100짜리 수표 몇장을 써주고 만기을 이후 몇개월의 첫날로 정하고 매달 말일까지 박사논문의 한 다원씩을 갖다놓지 않으면 친구가 수표를 현금화 하는 것이었다. 4개월후 A는 논문을 완성했다. A가 교수가되면 받게 되는 혜택은 $100가 훨씬 넘음에도 불구하고 $100짜리 수표 혀금화라는 인센티브가 효과를 발휘했다.


16
choice architect: 사람들이 결정을 내리는 배경이 되는 '정황이나 맥락'을 만드는 사람

40
 자동시스템(Automatic System)과 숙고 시스템(Reflective System). 자동시스템이 비행기가 흔들리고 있어. 난 죽을거야 라고 말할때 숙고시스템은 비행기는 아주 안전해라고 반박한다.
자동시스템은 수많은 반복을 통해 훈련될 수 있다. 골프선수들을 생각해보라.

21
넛지는 선택설계자가 취하는 하나의 방식으로서, 사람들에게 어떤 선택을 금지하거나 그들의 경제적 인센티브를 크게 변화시키지 않고 예상가능한 방향으로 그들의 행동을 변화시키는 것이다. 넛지 형태의 간섭은 쉽게 피할 수 있는 동시에 그렇게 하는데 비용도 적게 들어야 한다. 넛지는 명령이나 지시가 아니다. 과일을 눈에 잘 띄는 위치에 놓는 것은 넛지다. 그러나 정크푸드를 금지하는 것은 넛지가 아니다.

26
대부분의 사람들은 대부분의 경우에 자신에게 최대한 이익이 돌아오는 선택을 하거나, 또는 적어도 다른 누군가가 대신해준 선택보다는 나은 선택을 한다고 가정하지만 이는 명백히 잘못된 가정이다. 많은 영역에서 소비자는 초보이며, 무언가를 팔려고 안달하는 노련한 전문가들에게 둘러싸여 있기에 잘못된 선택을 한다.

56
대부분의 농구팬들은 어떤 농구 선수가 지난번에 슛을 성공시켰다면, 심지어 연달아서 몇번의 슛을 성공시켰다면 다음 슛도 성공할 가능성이 높다고 생각한다. 그리고 이들에게 패스하는 것이 좋은 전략이라고 생각한다. 하지만, 이것은 통념에 불과한 것으로 그 다음 슛까지 성공시킬 확률은 높을리가 없고 오히려 더 낮은 편이다. 실제로 그렇다. 수많은 연구자들이 이 연구결과가 틀렸다고 확신하며 hot hand를 찾아 나서기도 했지만 아무도 찾아내지 못했다.

59
비현실적 낙관주의:대다수 사람들이 자신을 평균이상이라 생각한다.

74
자기통제의 문제를 해결하는 한가지 방법은 개인이 반 자율적인 두개의 자아로 구성된다고 생각하는 것이다. 원시안적인 계획하는 자아(Planner), 근시안적인 행동하는 자아(Doer). 전자는 숙고시스템, 후자는 자동 시스템

90
이콘들로만 이뤄진 세상이 있다면, 그곳에서는 실용적인 이유를 제외하고는 결코 치마길이가 올라가거나 내려가지 않을 것이며 단순히 스타일의 문제로 넥타이의 폭이 좁아지거나 넓어지지도 않을 것이다. 참고로 넥타이는 원래 냅킨으로 사용되었고 모종의 기능을 가지고 있었다는 얘기다.

115
향후 6개월안에 새차를 구매할 의사가 있습니까? 라는 간단한 질문만으로 구매율을 35%나 높일수 있는것으로 밝혀졌다.

123
적절한 피드백이 제공되지 않으면 연습조차도 완벽을 만들어 내지 못한다. 골프 퍼팅연습시, 공이 어디에 멈추는지 볼 수 없는 상황이라면 하루종일 연습해도 실력향상은 없을것이다. 안타깝게도 인생의 수많은 선택들은 공의 종착지도 모르는채 퍼팅연습을 하는 것과 같다. 우리가 취한 선택안에 대해서만 피드백을 받을뿐 우리가 거부한 선택에 대해서는 피드백을 받지 못하기 때문이다.

129
비합리적은 소비자들을 보호하기 위해서 경쟁이 존재해야 하지만 간혹 그러한 경쟁이 존재하지 않는 경우도 있다.  200달러짜리 휴대폰을 사면 1년은 무상 보증기간이고 20달러를 내면 무상 보증기간을 2년으로 연장해주는 딜이있다. 고장날 확률이 1%라고 가정하면 딜의 혜택은 2달러에 불과하지만 20달러를 요구한다.

147
약을 먹는빈도뿐만 아니라 규칙성 또한 중요하다.  매일먹는 약보다, 이틀에 한번 먹는 약을 놓칠 확률이 더 크다.  마찬가지로 매주 열리는 회의는 2주에 한번씩 열리는 회의보다 더 쉽게 기억할 수 있다.  피임약은 3주동안 매일 복용한 다음 1주일간은 약을 먹지 말아야 한다. 이 문제를 해결하기 위해서 피임약은 28정짜리 특별용기에 담겨 판매된다. 각 칸마다 숫자가 적혀있고 매일 숫자대로 복용하면 된다. 22일~28일째의 약은 약효가 없는 위약이다.

202
자사주의 1달러는 가치면에서 뮤츄얼 펀드의 1달러의 절반에도 못 미친다. 근로자들은 자사주보다 분산 투자된 뮤추얼 펀드에 투자할때 훨씬 더 큰 이익을 볼 수 있다.

213
신용시장에서 공정거래로 명성을 쌓아야 한다는 인센티브를 가진 사람들은 부유한 의뢰인을 상대하는 모기지 중개인이다. 반면 가난한 사람들을 상대하는 중개인들은 종종 부당하게 돈을 버는데 더 큰 관심을 보인다. 실제로 모기지 중개인들이 제공하는 대출은 직거래 대부업자들이 제공하는 대출에 비해 약 600달러 더 비싸다.

219
자동차 구매에 관한 연구 결과, 여성과 아프리카계 미국은들은 온라인으로 차를 구입할때에는 백인남성과 거의 동일한 금액을 지불하지만 대리점을 통하는 경우에는 소득 등의 다른 요인을 감안하더라도 더 높은 금액을 지불하는 것으로 나타났다.

248
각종펀드들은 과거의 수익만을 중점적으로 광고할 뿐, 결코 미래의 수익에 대해 긍정적인 전망을 내놓치 않았다. 그럼에도 과거 수익률은 투자자들의 포트폴리오 선택에 강력한 영향을 미쳤다.

363
사람들은 어렵고 복잡하며 발생빈도가 낮은 결정에 대해, 그리고 적절한 피드백이 제공되지 않아서 학습할 수 있는 기회가 거의 없을때 넛지를 필요로 할 가능성이 높다





2012년 3월 4일 일요일

Bennett Miller, Moneyball(머니볼)



베넷 밀러, 머니볼
별 넷

야구라면 국가대항전만 좋아하는 나임에도 technically 어렵지 않게 볼 수 있을 만큼의 야구 영화였다.

푸어구단 오클랜드 단장인 Billy(Pitt)가 리치구단들(양키스)과 대결하기 위해 선택한 것은 기존의 게임의 법칙을 벗어난 방식이었다. 당시 팽배해져있는 게임의 법칙은 잘 한다고 생각되는 선수들을 그에 합당한 돈을 주고 스카우트해서 데리고 와서 시즌에서 이기는 방식이었다. 돈이 많은 구단이 계속 잘할 수 밖에 없는 그런 야구말이다.

Billy는 이게 맘에 들지 않았던 모양이다. 그리고 바꿀 수 있다고 생각한다. 그들과 같은 방식으로 대결하면 오클랜드는 승산이 없다고 생각한 Billy는 명문대 경제학과 출신의 Peter를 스카웃 한다. Peter는 지금 우리가 선수들을 평가하는 방식이 전적으로 맞는 것은 아니라며 과학적 통계에 기반하여 선수들을 평가하면 숨은 좋은 선수들을 싼 가격에 데리고 올 수 있다고 생각했다. 그 중에서도 출루율이란 기록에 주목한다.Billy(Pitt)도 이 방식을 전적으로 믿고 자신의 야구 인생을 걸고 새로운 게임의 룰에 기반한 야구를 시작하게 된다.

초반에는 감독과의 불화등으로 연패를 거듭하지만, 점점 Billy와 Peter의 계획대로 팀이 상승세를 타고 오클랜드는 역사상 처음으로 20연승이라는 대기록을 세운다. budget에 비하면 엄청난 선전을 한 것이다. 하지만 항상 시즌의 마지막 게임에서 패배하는 한계를 보이기도 한다. Billy는 보스턴(리치구단)으로부터 거액의 스카웃제의를 받지만 오클랜드에 남는다. 그는 머니볼의 한계를 바꿔 보고 싶었고 그럴 수 있으리라 믿었기 때문이다.

Billy의 딸이 기타로 노래를 불러주는 씬이 있었는데 나도 저런 딸한테서 저런 노래를 듣는다면 너무 행복할 것 같다는 생각을 했다. 포근/따뜻한 느낌.
유튜브를 찾아보니 역시나 있어서 링크를 건다. 제목은 The Show!


2012년 3월 2일 금요일

황농문, 몰입

열반, 해탈, 무아지경
모두 과학적으로 설명할 수 없는 어떤 정신적 경험을 나타내는 말이다. 그런 것들이 몰입으로 경험할 수 있다고 주장한다. 몰입으로 자신의 가치관까지 변화하고 행복감을 느낄 수 있다고 얘기한다. 뭔가 종교얘기가 나와야 할 대목에서 순수 정신적인 몰입만을 얘기한다. 어떻게 보면 종교에서의 어느 경지에 이르는 것과 몰입해서 이른것은 서로 같다. 믿음이 다를 뿐인 것이다. 종교는 종교의 믿음으로, 저자는 순수 학문에의 믿음으로.

그의 이론에 충분히 공감하고
우리 뇌/정신력/멘탈의 한계는 어디까지란 말인가.

21
뉴턴은 어떻게 만유인력의 법칙을 발견했느냐는 질문에 내내 그 생각만 하고 있었으니까 라고 간단하게 대답했다고 한다.

46
(무엇을 하든 ) 제품이 아닌 작품을 만들듯 하라. (네 이름표가 달린 작품! 그럼 좀 더 동기부여를 할 수있다.)

47
프로가 되려면 자신이 연구하는 분야가 세상에서 가장 중요하다는 믿음이 있어야 한다는 것이다. 그 믿음이 있어야 비로소 자신의 인생을 던져서 그 일을 하게 되고 그래야 일이 재미가 있고 경쟁력도 생긴다.
275 그런 믿음이 없으면 어떤일을 하건 엉덩이를 뒤로 뺀채 고개만 내밀고 적당히 하는 시늉만 하게 된다. 재미를 느끼기 힘들고 몰입하기 힘들다.

99
이처럼 자신은 생각을 하고 있었는데 주위 사람들은 잠을 잤다고 하는 것이 어떤 문제에 몰입하다가 경험하는 선잠의 특징이다.

111
수면중에는 낮에 경험한 것을 해마에서 재정리하고 통합한다고 알려져있다. 즉, 해마에서 다른 기억과 관련성을 검토하고 중요한 경험은 장기기억으로 보내 기억할 수 있게 하고 중요하지 않은 경험은 잊어버리게 한다. 그 기준은 정보가 입력될때의 감정의 강도와 정보의 반복 횟수이다. 아무런 감정이 없거나 약한 정보는 폐기하고 강한 감정을 가진 정보는 장기기억으로 보내서 저장한다. 이러한 예는 어릴적에 강한 충격을 받은 사건들을 평생 기억하는 데서 쉽게 알 수 있다. 또 강도는 약하더라도 정보가 반복해서 입력되면 장기기억으로 저장한다. 왜 반복학습이 효과적인지 잘 설명해준다.

154
결국 우리가 얻는 거의 모든 즐거움과 쾌감의 근원은 도파민이라 할 수 있다.

159
marathoner's high 라는 현상이 있다. 마라톤을 하다보면 지극히 힘든 상태를 경험하게 되는데, 이 고비를 넘기면 다시 충만한 자신감과 힘이 생겨서 계속 달릴 수 있다는 이론이다.이는 우리신체의 마이너스 피드백이 고통을 무마하기 위해 뇌속 에서 엔돌핀을 분비하여 기분을 고양시키는 현상이다.

162
어떤 동물도 목적없이 움직이지 않는다. 목적지향은 동물의 본질이다. (하하 이말 참 멋지다. 하물며 인간이 목적없이 삶을 살아서야 되겠는가)

192
천천히 생각하기.
연구하는 것을 즐겁게 논다고 생각하세요. 책과 함께 놀고 시간과 함께 노는 것입니다. 숙제와 업무도. 직장 상사를 만날때도, 거래처 사람을 만날때도 그것을 즐기세요. (게임이라고 생각하는 것과 비슷하다)

196
수천억의 재산을 가지고 있는 70세의 재벌이 어떤 젊은이에게 서로의 인생을 완전히 바꾸자고 제안한다면 이 젊은이는 어떤 반응을 보일까? 대부분의 젊은이는 이 제안을 거절할 것이다. 그러면 젊은의 가격은 몇천억아니 그 이상의 가치를 가지고 있다. (젊음의 가격! 와우 멋진 표현이다. )

244
중대한 업무를 촉박하게 끝내야 하는 비상사태에서는 모든 것을 잊고 업무에 몰입하는 경우가 종종있다. 이것이 바로 위기에 의해 경험하는 수동적 몰입이다. 이런 수동적 몰입은 스트레스를 동반하므로 능동적 몰입을 추구하는 것이 장기적으로 유리하다.

266
규칙적인 운동을 통해 충전한 사기는 점점 더 커지고 소멸되지 않는다.

285
고대에는 사람들이 글을 읽을 때 소리를 내지 않고 읽는 묵독이 가능하다는 것을 생각하지 못했다고 한다. 어느 수도사에 의해 이것이 가능하다는 것이 확인되면서 12,13세기에 묵독이 확산되어 이제는 인류 모두가 묵독을 활용하고 있다.

2012년 2월 20일 월요일

kbs 행복의 비밀

우리는 가진것을 늘리거나 원하는 것을 줄여 이미 가진 것을 즐김으로서 행복할 수 있다. 하지만 우리는 종종 우리가 무엇을 원하는지 잘 모른다.
내가 무엇을 원하는지 알고 원하는 길을 걸어가며 그 과정이 즐거울때 우리는 행복하다.
일상의 구조는 매일매일이 행복해야 1년, 10년, 80년도 행복할 수있다는 것을 가르쳐준다.
그러나 때로 행복은 시간을 뛰어 넘는다. 내가 가치를 느끼는 순간 지루함과 고통은 갑자기 즐거움으로 변한다.
행복은 내 손안에 작은 새다.




2012년 2월 16일 목요일

Tony Hsieh, Delivering Happiness

토니 셰이, 딜리버링 해피니스

토니의 소시적 지렁이 사업, 핀버튼 사업, 대학에서의 피자 가게, 오라클 재직시 했던 홈페이지 제작 사업, 링크 익스체인지, 엔젤 투자, 자포스까지의 사업여정 그리고 행복에 대한 이야기.

너무나 재미나게 읽었다. 반면 R은 흥미를 못 느끼겠다고 했다. 내가 IT쪽에 이해도가 있기 때문인 것 같다.
별 다섯개.


28
나는 돈을 버는 것에 대해 늘 공상하곤 했다. 나에게 돈이란 어른이 되었을때 원하는 것을 뭐든지 할 수 있는 자유를 뜻했다. 또한 나만의 회사를 운영한다는 것은 창조적으로 살 수 있고, 궁극적으로는 내 마음대로 인생을 살 수 있음을 뜻했다.

55
내가 원하는 것은 연봉이 높고 일이 그다지 어려워 보이지 않는 직장이었다.
(그래 내가 항상 정답이라고 생각했던 것이 때론 정답이 아닐 수도있다. )

88
이제까지 가장 행복했던 시절을 정리해보니 어느 경우도 돈 덕분이었던 적이 없었다. 나는 무언가를 구축하고 창조적으로 활동하며 무언가를 고안해낼때 행복을 느꼈다.
우리 인간들은 사회와 문화에 길들여져 아무 생각없이, 정말 너무나 쉽게, 더 많은 돈이 성공과 행복을 가져올 것이라고 자동적으로 믿어 버린다. 사실 궁극적인 행복은 그저 인생을 즐길때 뿐인데 말이다.  (4000만 달러의 20%인 80억을 포기하고 익스체인지를 퇴사한다. 1년만 버티면 다 받을 수 있는 돈이었는데!)

102
리밋 홀덤 포커에는 수학적으로 정확한 확률로 게임을 하는 방법이 있다. 홀덤 포커의 수학을 이해하는 자가 그렇지 못한 사람들을 상대로 포커를 치는 것은 우승확률이 2배 더 높다. 동전을 한번 던전다면 내가 질수있지만, 천번을 던지면 나의 승률은 훨씬 높아진다.

104
포커게임에서 가장 재미난 것중 하나가 옳은 결정과 한판의 결과를 혼동하지 않는 절제력을 배우는 것이다. 많은 사람들이 이 둘을 혼동한다. 예를 들어, 세번에 한번 앞면이 나오는 동전이 있다고 치자. 이전의 결과와 상관없이 항상 동전 뒷면에 거는것(옳은결정)이 수학적으로 맞는 말이지만 동전 앞면이 한번 나오면(한판의결과), 태도를 바꾸어 앞면에 거는 것이다.

108
포커를 치는 도박사에게 가장 중요한 것은 테이블의 선택이다. 테이블을 바꿔야 하는 시점또한 테이블 선택의 범주에 포함된다. 경험이 있는 도박사의 경우, 칩을 많이 가지고 있지만 녹초가 된 아홉명의 보통 사람들과 포커를 칠때 열배나 더많은 돈을 벌수 있다는 것을 책에서 읽었다. 돈은 별로 없고 집중력이 높은 훌륭한 도박사들 아홉명과 칠때와 비교해서 말이다.

110
포커든 사업이든 인생이든 당장 하는 일에만 정신이 팔려 몰두하기 쉽고, 따라서 테이블을 바꿀 수 있는 선택권이 있다는 사실을 잊기 십상이다. 심리적인 타성을 극복해야 하기 때문에 힘든 것이다. 의식적으로, 의도적으로 노력하지 않으면 관성의 힘이 언제나 이기는 법이다.

121
건물 7층 40평 규모의 로프트와 8층의 펜트하우스 로트를 구입. 여기서 절친들을 위한 파티를 개최. 그 후 친구들도 잇따라서 같은 건물의 로프트에 입주.
(이 친구 내가 하고싶어하던것을 해냈다. 한 아파트에 친한 친구들 다 모여 사는것. 얼마나 꿈같았을까.)

159
한대륙의 가장 높은 산을 정복하는 것은 인생을 살면서 성취해야 하는 일의 목록에 있는 일중 하나였다. 돈이나 물건을 소유하는 것보다는 경험을 쌓는 것이 더 소중하다는 내 인생철학과도 어울리는 일이었다.

208
유료광고에 쓸 돈을 대신 고객 서비스와 고객 만족에 투자하여 고객이 우리 대신 입소문으로 마케팅을 하게 하자는 것이 우리의 철학이었다. 그 방편으로 무료 배송과 무료 반품처리를 가능하게 했다. 또한 대부분의 웹사이트는 고객문의에 대한 정보는 링크를 다섯 번은 찍고 들어가야 하지만, 자포스는 모든 페이지의 맨위에 고객문의 전화번호가 있다. (이 방식은 통했다. 고객들이 입소문으로 스스로 광고를 해줬으니까. 결과적으로 최적의 PR이었던 것이다.)

211
대부분의 콜센터는 평균 처리시간이라고 알려진 기준에 의해 상담원의 능력을 평가한다. 따라서 상담원들은 통화시간이 길어지면 걱정을 할 수 밖에 없다. 재포스는 통화시간을 재지 않고 다른 제품을 판매하려고도 하지 않는다.

329
연구에 의하면 사람들이 성취가능하다고 생각하는 그런 행복감이란 상당히 빨리 사라진다고 한다. 복권 당첨자들의 당첨 직전에 느꼈던 행복감과 1년후 느꼈던 행복감을 비교하는 연구가 있었다. 그 연구에 의하면 당첨자들의 행복감의 수준은 예전으로 돌아가 있었다.
내가 추구하는 목표가 과연 나를 행복하게 만들어 줄수있는지 자문해보길 바란다. 독자의 궁극적 목표가 행복이라면 행복학에 대해서 배우고 공부해서 이미 밝혀진 연구결과를 인생에 적용해 봐야 하지 않겠는가








2012년 2월 14일 화요일

반전 결혼관

자기가 반한 남자/여자와 결혼 하는것 vs 반하지 않은 남자/여자랑 결혼 하는것
어떤 것이 맞는 것일까?

반하지 않은 남자/여자랑 결혼 해야 한다. 왜냐하면

  1. 반하면 이성을 잃어 정확한 판단을 할 수 없기에 반하지 않은 남자를 선택하는게 이성적인 선택을 할 수 있다.  긴 인생을 함께 할 사람을 정하는 중대사에 이성이 작용할 수 없다면 너무 낭패 아니겠는가. 연애 감정이란 합리적으로 설명할 수 없는 것이니까. 어쩌면 연애는 결혼하고는 애초에 맞지 않는 것일 수도.. 
  2. 반한 남자와 결혼하면 차차 정열이 식어가는 슬픔을 맛봐야 하지만 반하지 않는 남자와 결혼하면 식을게 없다. 처음부터 정열이란 것은 없었으니까
  3. 그/그녀의 바람기에 괴로워할 필요가 없다. 왜냐 질투하지 않기 때문이다. 그런 무익한 번민에서 자유로 울 수 있으니까.
밤은 짧아 걸어 아가씨야 란 책 45 페이지에 나오는 얘기.

2012년 2월 12일 일요일

요시다 슈이치, 요노스케 이야기

우리가 매순간 내리는 작은 결정 하나하나에 우리의 인생이 얼마나 달라질 수 있는가. 요노스케는 도쿄에 있는 학교에 가면서, 삼바 동아리에 들면서, 운전면허 학원을 다니면서 쇼코를 만났고, 쇼코를 통해 이상형 가루키?를 만난고, 베트남 난민을 만난다. 쇼코는 이때의 충격으로 봉사활동을 하게 되고, 요노스케는 옆집 사람이 빌려준 라이카 카메라로 보도 사진작가가 된다.
작은 것인들 사소하지 않다. 우리네 인생에선!

부담없이 읽기 좋았고
별 셋

----------------------------

82
요노스케가 이제 어떡할래? 라고 물었다. 고등학교 시절이라면 "이제 어떡할래?" "글쎄, 할것도 없네" " 그럼 갈까?" "가도 할건 없는데" 라면서도 이래저리 시간을 보냈기 때문에 요노스케로서는 그 말을 먼저 꺼냈을 뿐인데, "글쎄 할게 없네" 라고 대답해야 할 오자와가 "미안, 난 다른 약속이 잡혀 있어서" 라는 말을 꺼냈다. ... "이제 어떡할래?" 이하 생략을 혼자서 할 수 밖에 없었다.

121
- 요느스케군 학생이야?
+ 네
- 그렇구나. 자 그럼 좋은 남자 되길
+ 좋은 남자?
- 그래. 내가 반할 만한 남자

160
나중에 들은 얘기지만, 그때 사쿠라의 마음을 움직였던 말은 계속 좋아했어라는 첫 고백이 아니라 '취한 척하는 건 취하지 않았을때 오사키를 훨씬 더 좋아하기 때문이야'라는 알 듯하면서도 알 수 없는 요노스케의 아리송한 설명 쪽이었던 것 같다.

198
같은 시기에 엄청난 부잣집 아가씨가 반대로 그 녀석한테 푹 빠졌고.. 그 녀석말이야. 튜브를 허리에 차고 그애 오빠의 크루저에 탔다는 거야. (부잣집 아가씨를 꿰 찰려면 저런 철판은 있어줘야 한다. ㅋ )

300
요노스케는 멍한 표정으로 전화박스에서 나왔다. 다리가 휘청거렸다. 상대가 나타나지 않는 상황은 참고서 <포파이>에도 <브루투스>에도 나오지 않았다. (이상형과의 약속을 앞두고 온갖 준비-식당예약,옷, 호텔 위치 파악, 동선등등-를 다해놓고선 정작 그 이상형은 감기를 핑계로 나타나지 않았다.)

348
사무라이라고 해도 그 종류야 하늘과 땅 차이가 나겠지만, 별택이 이 정도 크기라면 하늘쪽이
틀림없었다.

384
말이라는 게 참 편리해서 그렇게 말하고 나니 그렇게 전해지는 모양이다

451
돈이란 건 빌린쪽이 아니라 빌려준 쪽이 서먹서먹해지는 거예요




웨스트보 부부, 채식하는 사자 리틀 타이크

동물원 가면 항상 보는 사자였는데 채식하는 사자가 존재할 꺼라고는 상상하지 못했는데 정말 그런 사자가 있구나. 성선설이니 성악설이니 하지만 백지에 어떤 그림을 그리느냐가 중요한 것같다. 사람이나 동물이나.

96
사자는 무척 예민한 동물이다. 밤중에 타이크가 일어나 긴장할때가 있다. 몇초후에는 공작들이 또 몇초후엔 개들이 짖는다. 그리곤 잠시후에 목장옆으로 차가 지나가는 소리가 들린다.

162
타이크는 갓난 시절부터 좋아하는 사람과 싫어하는 사람의 구별이 명확했다. 게다가 한번 싫다고 느끼면 바뀌는 경우는 거의 없었다. 더 재미있는 것은 타이크가 싫어했던 사람들을 지켜보면 결국 믿어서는 안되는 사람임이 판명되곤 했다는 것이다. 사람에게는 없는 직관이 있는게 분명했다.

212
9년동안 살았으니 사자의 평균수명이 다했다고 야생에서도 이정도 살면 장수한 것이라 했다.

백만달러를 준대도 다시는 사자와 살지 않겠다. 그만큼 사자와 사는 일은 긴장을 절대 늦춰선 안 될 힘든 일이다.


2012년 2월 10일 금요일

scheduling tasks with sshsudo

sshsudo

sshsudo

1 background

I am administering 20 build servers and i got notice form utility team that there will be power outage during the weekend. so i have to schedule power off before it to block potential physical damage to PC. before i just logged into each PC and scheduled poweroff for 20 times but this time, i want to be productive because i'm lazy.
to shedule a task at a specific time i can use at.
sudo at -f off.sh 12:00 12 Feb

2 the problems

the problem is i type in password 2 times when connects to a computer vis ssh and invokes sudo.

3 sshsudo

this tool is just awesome! sshsudo resolve the problems completely. even send the script to a destination.
sshsudo -r BA-L1,BA-L2,BA-L3,BA-L4,BA-L5,BA-L6 at -f off.sh 12:00 12 Feb
it rocks!

2012년 1월 26일 목요일

작은 소리로 아들을 위대하게 키우는 법

대부분 아들과 잘 지내는 편인데, 간혹 소리를 지르게 된다. 보통 내 입장에서 이해되지 않는 행동을 할때 그러는 것 같은데..
어떻게 엘레강스하게 아들을 타이를 수 있을지 고민하다 이 책을 읽게 되었다.
이책은 오직 아들에 관한 케이스만 얘기하고 있으니 혹시 딸을 두신 부모라면 참고하세요.

29
아이가 정해진 놀이법이 아닌 다른 방식으로 놀려고 할때 참견하거나 훈계를 하지 말라.

34
남자아이를 야단치는 효과적인 방법 그것은 논리에 맞게 말하는 것 뿐이다. 남자는 머리로 이해해야만 말을 듣는 동물이다.

51
많이 경험하고 실패하면서 몸으로 배운 아이일수록 성장한 뒤에 엉뚱한 짓을 저지르지 않는다. 아이는 계단뛰기 놀이를 하면서 자신이 몇 계단에서 점프할 수 있는지 한계를 체득한다. 위험하다고 하지 말라고 하면 훗날 자신의 한계를 모르기 때문에 낭패일 수 있다.

60
진위가 분명하지 않은 일이 일어났을때, 부모는 '반드시 사실관계를 확인해야 믿겠다'는 태도를 보여야 한다. 아이가 출처를 알 수없는 물건을 가져왔을때 아이가 '철수네 엄마가 사줬다'고 한다면, 엄마는 '어머 그랬니? 그러면 철수네 엄마한테 고맙다고 전화를 해야 겠구나.' 라고 말하면 된다. (와 이것은 박수다.)

81
학원의 본질은 기업이며, 많은 학생을 모집하려면 일류 학교 합격자를 많이 배출해야 한다. 그래서 학원은 모든 수강생들의 성적을 한단계 높이려고 노력하는 것이 아니라, 두각을 나타내는 몇몇 학생에게만 합격할 수 있는 기술을 가르킨다. 이것은 이른바 '성적별 반편성'이다.

101
국어실력은 모든 학문의 기초다. 글짓기와 음독으로 국어실력을 키울 수 있다.

123
좋은 과외교사 고르기. 좋아하는 대학 취업정보실에 모집공고를 내고, 전화 예절과 친밀감이 좋은 사람을 몇 골라서 직접 면접을 보자. 1차 면접은 부모와 2차면접은 아이와 함께. 교통비도 주면서

131
목적없이 공부 하면 권위주의지가 된다.
그들이 열심히 공부하는 목적은 오로지 좋은 학교에 들어가기 위해서다. 이 모든 즐거움을 희생한 끝에 바라던 일류 대학에 합격했다고 치자. 이들은 어떤 사람이 될까? 유일한 자랑거리는 오로지 학벌 뿐이다.

205
미래의 이상적인 남성상은 여성에게 배우잣감으로 인정받는 남자이고, 이는 최소한의조건이다. 

끝말잇기

아들과 차를 타고 갈때면 끝말잇기 놀이를 자주 한다.
아들에겐 재미난 놀이와 교육이 되고
난 졸음운전을 피할수 있기 때문에
이것이야말로 진정한 고효율의 놀이죠.
그런데, 이번에 아들에게서 나온 단어가 좀 재미나서.


커피
피 줄줄

응? 뭐?
피 줄줄

피줄줄? 그게 뭐야? 그런게 어딨어
왜사람죽을때 하는 피줄줄

끝말잇기는 단어로만 해야 해. 그런건 없어
있어, 있다구

...





2012년 1월 16일 월요일

꿈 - 2012

올해 설이 다가오나 싶어 레미에게 물었다.

+ 레미야, 너 커서 뭐가 되고 싶어?
- 응 바로 바로 요리사.
+ 너 몇일전에 제빵사 되고 싶다고 하지 않았어
- 제빵사 너무 어렵대서 요리사로 바꿨어.
+ 왜 요리사가 되고 싶어
- 너무 좋고 멋지고, 요리사는 뭐든지 다 만들 수 있어서
+ 요리사가 되려면 뭘 해야 할까?
- 응. 요리하는 법을 배워야해.

뿌리 깊은 나무

워낙 좋은 평이 많아서 드라마가 종영된 후부터 보기 시작했다.

1. 뛰어난 스토리
책을 원작으로 해서 그런지 스토리가 탄탄했다. 처음부터 끝까지 다음 편을 궁금하게 만드는 힘이 있었다. 더구나, 인기 있는 드라마는 으례 억지로 늘이기 몇편을 추가하는 경향이 있었는데 그것을 하지 않았다. 그것 만으로 칭찬받을만 하지 않은가. 재미도 미드 못지 않다. 스토리가 탄탄한 드라마는 충분히 글로벌에서도 통할 수 있다는 생각을 하게 됐다. 이제 미드와 대등해지려면 자본력이 받쳐줘야 겠지만 충분히 가능성을 봤다고 생각한다. 부지런한 우리는 한류를 누릴 자격이 있다.

2. 특이한 왕. 세종(한석규) 캐릭터
기존의 임금의 특을 깬 캐릭터를 만들어 냈다. 지랄이란 욕도 하고, 신하와의 농담도 정겹게 던질 수 있는 왕이다. 또한 신하와 사대부로부터 끝없는 견제를 받는 왕의 고뇌를 잘 보여주기도 하고 무엇보다 조선의 백성을 사랑한다.
그는
"칼이 아니라 말로 베어 버릴 것이다." 라고 했다. 그만큼 논리와 토론에 능했던 왕!

3. 한글.
한글의 위대함은 막연하게 그럴것이다란 추측만 있었을 뿐인데, 한자만 존재하던 세상에서의 한글 창제. 그 불가능할것만 같던 일을 해낸 우리 선조들. 우린 자긍심을 가질만하다!
세종왈, 
"글자를 알면 백성도 힘이 생긴다. 밥이 나오지는 않지만 밥을 더 많이 만드는 법을 알게 될 것이고 양반이 되지는 않지만 양반들에게 그렇게 힘없이 당하지만은 않는다."

4. 소이
한번 보면 모든 걸 외워 버릴 수 있는 능력을 가진아이. 
다들 이 소이의 능력을 부러워 하지만, 정작 자신에게는 저주라고 한다. 소중한 사람들을 잃은 기억을 아주 생생히 기억하고 잊혀지지 않으니 하루하루가 지옥이라 한다. 인간에게 왜 망각이 필요한지 생각해 볼수 있는 대목.

5. 다른 믿음. 다른 소신
어렸을땐 선과 악의 세계가 명확했다. 주로 사람을 괴롭히고 세상을 파괴하려는 쪽이 악이었고 악을 막으려는 쪽이 선이었다. 어렸을때 명확하던 그 이분법은 크면서 보니 현실과는 많은 괴리가 있음을 알았다. 결국은 서로 다른 믿음을 가진 조직이나 개인간에 갈등이 생기기 마련이다.
우리는 대부분 세종의 편에서 드라마를 봤겠지만, 정기준도 나라를 사랑하는 맘은 똑같았다. 단지 그 방법과 지향하는 바가 달랐을 뿐이다.


근데, 대체 카르페이는 왜 정기준을 위해서 싸우는거냐?
궁.금.하.다.

2012년 1월 13일 금요일

오늘 아침에 있었던 황당한 사건!

일어나 시계를 보니 이제 막 알람이 울리려는 시간, 알람을 무장 해체시키고 샤워를 했다. 아침의 샤워는 항상 상쾌하다. 로션을 바르고 머리를 말리고 부랴부랴 밖으로 나가서 출근 버스가 오는 곳으로 향했다. 그런데, 뭔가 이상하다. 분명 시간을 맞춰 나왔는데, 출근버스를 기다리고 있어야 할 사람들이 보이지 않는다. 버스를 놓친건가? 핸드폰을 꺼내서 시계를 보는데.
아뿔싸.
7시 20분이 아닌 5시 20분이다.
시계를 잘못 봤던 것이다. 2시간 씩이나.

황당한 마음을 뒤로하고 급히 집으로 돌아왔다. 5시간 잔 것에 비하면 너무 정신이 멀쩡해서 책을 읽을지 다시 잠을 잘지 고민을 하며 집으로 들어왔다. 헌데, 7시가 아닌 5시라는 것을 자각하는 순간, 나의 머리는 일의 인과관계를 설정하고 나에게 일어나야 할 자연적인 현상을 정당화 한다. 5시간밖에 못잤으니 너의 몸은 피곤함이 당연하다고 생각하고, 난 피로하다고 느낀다.

이 낳선 피로감의 출처는 어디인가? 나의 머리인가? 나의 몸인가? 나의 믿음인가?
가령 내가 평소에 난 5시간만 자도 충분해 라는 믿음을 가지고 있다면 나의 몸은 그 믿음에 맞게 transform 될 수 있는가.

그래서 믿음,소망,사랑중 제일은 믿음이라 했던가?
요즘 내가 보고 듣는 위인들은 모두 자기만의 믿음이 확고했던 사람들임을 확인한다. 같은 일을 해도 믿음을 가지고 하면 결과는 많이 달라질 수 있다.

하지만 의식적으로 믿어보려고 노력하는 것과 절대적으로 믿고 있는 것의 차이는 크다.
의식적으로 믿어보려는 것을 절대적인 것으로 만들 수 있다면 내가 못할 것은 없겠다.
요즘 점점 생각을 하면 할 수록.. 결론은 원초적 질문으로 수렴한다.

나는 누구이고
나는 무엇을 원하고
나는 행복한가 하는 질문들..
또 내가 가져야 할 믿음은 무엇인가.