2015년 3월 22일 일요일

가장 따뜻한 색 블루

이 영화의 아름다움은 아주 선정적이고 자극적일 수 있는 소재를 
오히려 아주 일상적이고 담담하게 다루었다는 데 있다.
그냥 수많은 사랑 이야기 중 하나로 느껴졌다.
그래서 나는 여자와 여자의 사랑이라는 어색하고 불편한 소재 안에서
그들의 사랑을 발견할 수 있었다. 
그리고 그들의 이별도.

한 마디로 가장 따뜻한 색 블루는 그냥 평범한 사랑이야기였다.
그리고 이건 이 영화에 대한 찬사다. 

- The End -

지식의 쓰임

가장 가치 있는 지식의 쓰임은

새로운 지식을 만들어내는 것이다.

단지 알기 위해서 지식을 배워왔으나

그것은 아무 것도 아니다.

힘겹게 지식을 만들어내야 한다.

아주 허술한 것이라 할 지라도 계속 만들어내야 한다.

그것이 사람을 사람답게 하는 것이다. 



#가장 따뜻한 색 블루

2015년 3월 19일 목요일

Gradient descent

Gradient descent (in 3D matrix) in a nutshell:
From a random point in 3D, finding a bottom or bottoms, by gradually moving downward. 

How:
repeat {
     θj := θj − α (∂J(θ)/∂θj)
}    (simultaneously update for j = 0 and j = 1)

What it means:
If current standpoint is on / this shape of slope, go left and if \, go right.  
This is just common sense. Assume you are climbing down the mountain. It the slope is / shape, you go left, and go right otherwise. As simple as that. 
 

2015년 3월 17일 화요일

(나는) 알고리즘을 왜 배우는가

사실 내가 알고리즘 강의를 듣기 시작한 이유는 데이터 사이언스 강의의 선수과목이기 때문이다.
그 외에는 이유가 없었다.
알고리즘이 뭔지도 고민해보지 않고 시작한 강의.

1강을 겨우 마무리한 이 시점에 왜 알고리즘을 배워야하는지 정리해 볼 필요가 있다.

내 생각에 알고리즘을 배워야 하는 이유는 노가다가 아닌 우아한 방법으로 빠르고 가벼운 프로그램을 만들기 위해서다.

많은 문제들은 노가다로 해결 가능한 경우가 많다. 고등학교 수학 문제들만 해도 그렇다. 
'아,, 이거 노가다하면 풀긴 풀 수 있는데, 시험 시간이 모자라는데,,,ㅠㅠ' 
다들 이런 생각 한 번쯤 해보지 않았는가.

그런데, 완전 우아하게 문제를 풀 수 있는 방법이 생각날 때가 있다. 
'와우! 엄청 빨리 풀렸어! 이제 다른 문제 좀 살펴봐야겠어!!'
자원을 아끼면 다른 더 중요한 곳에 자원을 쓸 수 있다. 

그래서 내가 알고리즘을 배우는 이유는 가볍고 우아한 프로그램을 만들기 위해서다.
해결책이 간단할수록 오류도 적게 나지 않는가. 

알고리즘. 그것은 우아한 프로그램을 위한 날개.

2015년 3월 16일 월요일

열정과 일중독

오늘의 대화 주제 중에 하나. 열정과 일중독.

친구(친): 열정적인 것과 일중독은 다르다는 친구의 말.

나: 열정적인 거랑 일중독이랑 뭐가 달라?

친: 음, 뭐라고 설명하긴 힘든데, 두 방향은 아주 다른 결과를 낳는다고 생각해.

--- 여러가지 이야기 ---

나: 아, 이제 알겠어!

열정적인 것은 하고 싶어서 하는 거고, 일중독은 하지 않는 것을 참을 수 없어서 하는 거야.
나 같다. 뭔가 하지 않으면 불안해서 참지 못해, 대학 시절 방학에 뭔가 해야만 한다는 강박에 사로잡혔던 것. (지금도 대학 시절 중이긴 합니다만)

하고 싶은 것을 열심히 하는 것은 참된 기쁨을 주지만

무언가 하지 않으면 불안해서 열심히 하는 것은 공허함을 줄 뿐이다.

인생을 참된 기쁨으로 채워야겠다.

- 오늘의 일기 끝

2015년 3월 14일 토요일

typedef in C

typedef struct node
{
        void* dataPtr;
        struct node* link;
} NODE;

Q1: why use 'node' when 'NODE' is the name?

-> node is part of an old type name, 'struct node'. It is not a new type name.


  • this is the typedef syntax: typdef oldTypeName newTypeName
  • struct node{ ... } = OldTypeName
  • NODE = NewTypeName

  • it's possible to define NODE without node!
typedef struct
{
    void* dataPtr;
    struct* link;
} NODE;

    Pointer to void in C

    void* p  (or void *p) :

    • p: variable(name)
    • *p: implies p is a pointer
    • void: to what data type the pointer points to (since the data type is void, no need to assign any value to void)
    • void *p: pointer to void (pointer's name is p)

    int i = 7;
    • i: variable
    • int: i's data type
    • 7: i's value
    • int i = 7: integer i has a value of 7

    p = &i:
    • assign to p the address of i