[작성자:] snowall

  • 수치해석1 – 미분과 적분




    lecture_1.py

    # Elementary Numerical analysis 1

    # based on Python

    # (C) 2013. Keehwan Nam, Dept. of physics, KAIST.

    # snowall@gmail.com / snowall@kaist.ac.kr

    # Differentiation

    # 테일러 정리와 테일러 전개를 적극 사용하면 된다.

    # 수치적으로 미분은 다음과 같이 정의한다

    # df/dx = (f(x+h) – f(x))/h

    # 이 경우 오차가 h의 제곱에 비례한다. 2점 미분공식이다.

    # 오차를 줄이고 싶은 경우 대칭성을 이용해서 오차를 줄일 수 있다.

    # df/dx = (f(x+h)-f(x))/h-(f(x-h)-f(x))/h = (f(x+h)-f(x-h))/2h

    # 이 경우 오차가 h의 세제곱에 비례한다. 3점 미분공식이다.

    # 더 줄이고 싶다면 위의 3점 미분공식을 5점으로 확장할 수 있다.

    # df/dx = (f(x+2h)+f(x+h)-f(x-h)-f(x-2h))/6h

    # 하지만 이래봐야 오차는 그냥 h의 세제곱에 비례하게 된다.

    # 머리를 써 보면 5점 미분공식은 다음과 같다.

    # df/dx = (-f(x+2h)+8f(x+h)-8f(x-h)+f(x-2h))/12h

    # 이렇게 하면 오차가 h의 4제곱에 비례하게 된다.

    # 2차 이상의 미분을 계산해야 한다면, 1차 미분을 반복적으로 계산할 수도 있고, 또는 직접 2차 도함수를 얻을 수도 있다.

    # d2f/dx2 = 2(f(x+h)-2f(x)+f(x-h))/(h*h)

    # 이와 같이 n차 도함수를 직접 계산하는 공식은 테일러 전개에 의하여 손쉽게 얻을 수 있다.

    # 실제 구현은?

    # 파이썬이라면, 수치가 리스트로 주어져 있을 것이다.

    f = numpy.array([x1, x2, x3, x4, x5])

    h = 1.0e-2 # 미분에서 사용한 h값이 된다.

    # 첫번째로, 2점 미분공식을 얻어보자.

    df = (f[1:]-f[:-1])/h

    # 이 공식이 왜 작동하는지는 차근차근 생각해 보면 된다.

    # 마찬가지로, 3점 미분공식도 똑같이 얻을 수 있다.

    df = (f[2:]-f[:-2])/(2*h)

    # 5점 미분공식은 직접 고민해 보자.

    # 하지만, 항상 리스트로만 주어져 있을리가 없다. 화일에서 직접 값을 한줄씩 읽어오면서 계산해야 하는 경우도 있을 것이다.

    # 물론 화일을 리스트에 집어넣고나서 위의 방법을 쓰면 되지만,

    # 화일이 메모리에 안 들어가는, 가령 수십 GB용량의 데이터를 미분해야 한다면 그건 그거대로 막막하리라고 본다.

    data = open(“mydata.txt”, “r”)

    f = [data.readline(), data.readline(), data.readline()]

    df = []

    while data.EoF():

    df.append((f[0]-f[2])/(2.*h))

    f.append(data.readline())

    f=f[1:]

    # data.EoF()는 파일의 끝인지 아닌지 판단하는 함수이다. (구현은 셀프!)

    # 이게 왜 작동하는지는 직접 생각해 보고, 5점 미분공식으로 바꾸려면 어떻게 해야 할지 생각해 보자. 또는 2차도함수 계산이라면?

    # df.append로 리스트에 집어넣는 것이 메모리를 잡아먹을 것 같다면, df를 파일로 열어서 df.writeline함수를 사용해도 된다.

    # 다른 프로그래밍 언어라면 구체적으로는 다르게 구현해야 할 것이다. 자신이 사용하는 언어에서는 어떻게 구현할 수 있을까?

    # 파이썬의 scpiy 모듈에서 미분을 제공하는데, scipy.misc.derivative(func, x0, dx=1.0, n=1, args=(), order=3) 함수를 사용하면 된다.

    # 이 함수는 func로 주어진 함수가 x0위치에서 주어진 dx로 미분한 n차 “미분계수” 값을 알려준다. order는 3점공식인가 5점공식인가 등등이다. ‘당연히’ 홀수만 넣어야 한다.

    # 내가 정의한 함수가 수를 넣으면 수가 나오는 함수라면, 위의 함수로 주어진 점에서의 미분계수를 알아낼 수 있다. 그러나 해석적인 도함수를 알려주지는 않는다.

    # Integration

    # 용어를 먼저 알고 가자.

    # Quadrature 또는 Numerical quadrature는 수치해석에서 말하는 수치 적분을 뜻한다. 1차원 이상의 고차원 수치적분을 포함하기는 하지만, 1차원 수치적분의 뜻이 강하다.

    # Cubature는 1차원 이상의 고차원 수치적분을 대체로 뜻한다.

    # 1차원 적분을 먼저 논의해 보자.

    # 가장 간단하게는 사각형으로 근사할 수 있다. 원래 적분은 연속 함수를 잘게 썰어서 각각의 넓이를 구한 후, 더 많은 조각으로 더 잘게 썰어가며 극한을 구하는 과정이다.

    # 따라서 컴퓨터에게 수치적으로 적분을 계산을 시킨다면, 충분히 많은 조각으로 잘게 썰어서 각각의 넓이를 구한 후 다 더하도록 하면 된다.

    # 가장 간단하게 사각형으로 근사한다면, i번재 함수값을 f[i]라 한다면

    # F = sum(f[i], i=0 to N)*(b-a)/N

    # 물론 각 조각은 N등분했다고 가정했다. 조각의 길이가 구간마다 다른 경우라면 골치아파지므로 그러지 말자.

    # 위의 코드는 파이썬으로 간단히 구현할 수 있다.

    f = [f1, f2, f3, f4, ,f5] # f는 함수값들을 수치적으로 저장하고 있는 리스트이다.

    F=0

    for i in f:

    F+=i

    F/=h # h는 구간의 길이이다. h=(b-a)/N 정도로 정의하면 될 듯.

    # 대충 이렇게 쓰면 될 것이다. 만약 조금 더 짧게 쓰고 싶다면 reduce와 lambda를 쓸 수 있다. 이 두 구문이 뭔지에 대해서는 자습해보자.

    F = reduce(lambda x, y:x+y, f)*h

    # 위의 구문이 적분식이다. 이걸 midpoint rule 이라고 한다.

    # 사각형으로 적분하는 것보다, 아무래도 사다리꼴로 나누는 것이 조금 더 정확하지 않을까? 하는 마음에 만든 공식이 사다리꼴 규칙이다. Trapezoidal rule (trapezium rule)

    F = reduce(lambda x, y:x+y, f)*h – 0.5*(f[0]+f[-1])*h

    # 위의 구문이 사다리꼴 적분에 해당한다. 별 차이 없어 보이는데 아주 조금 더 정확하다. 왜그런지는 어렵지 않으니 직접 생각해 보자.

    # 이 경우 오차는 대략 구간의 크기인 h의 제곱에 비례한다.

    # 보다 정확한 근사식은 Simpson’s rule이 제공한다. 사다리꼴 규칙에서 심슨 규칙으로 진화하는 것은 미분에서 2점 공식을 3점 공식으로 바꾸는 과정과 유사하다.

    # 즉, 사다리꼴 규칙은 2점을 이용해서 그 사이의 면적을 근사했지만, 심슨 규칙은 3점을 이용해서 그 사이의 면적을 근사한다.

    # 즉, 3점으로 이루어진 2차곡선이 원래 주어진 곡선보다 위인 구간과 아래인 구간이 있게 되는데, 넘치는 부분과 모자라는 부분이 상쇄되어 보다 정확한 근사값을 얻는다. 곡선의 근사는 틀리게 되지만, 적분값은 정확해진다는 것이다.

    # 심슨 규칙은 다음과 같다.

    # F=(f(a)+4f((a+b)/2)+f(b))*(b-a)/6

    # 딱 3점, 즉 a, b, (a+b)/2의 3군데 값을 알고 있을 때 그 사이의 면적은 위와 같이 근사된다. 이 경우 오차는 구간의 크기인 b-a의 5제곱에 비례한다.

    # 파이썬으로 구현한다면 어떻게 될까?

    # 가장 간단하게 구현한다면 다음과 같을 것이다.

    f = [f1, f2, f3]

    F = (f[0]+4*f[1]+f[2])*h/6

    # 하지만 이런 경우는 점이 정말 3개밖에 없는 경우이다. 만약 그보다 많다면? 일단 정확히 홀수개 있다고 하자.

    f = [f1, f2, f3, f4, f5] # 리스트는 더 길어질 수도 있다.

    F = (2.*reduce(lambda x, y: x+y, map(lambda x:x[0]+x[1]+x[1],f[:-1].reshape(len(f)/2,2)))-f[0]+f[-1])*h/6



    # 이 코드는 간단해 보여도 자그마치 3개의 파이썬 기능이 합쳐진 콤비네이션이다.



    # 홀수개만큼 있을 때는 위의 코드를 쓰면 된다. 왜 되는지는 다시 잘 생각해 보도록 하자. 파이썬 공부 겸 아이큐테스트라고 하자. (나도 테스트 안해봄.)

    # 짝수개일 때는 어떻게 될까? 짜투리 부분의 오차를 어떻게 정리할 수 있을지는 각자 생각해 보자.

    # 파이썬에서 구현된 적분은 scipy에서 제공한다.

    # scipy.integrate(f, a, b)는 주어진 함수 f를 a에서 b까지 적분해준다. 다중적분도 다룰 수 있다.

    # 1차원 적분의 경우 위의 코드로만 적분하더라도 해볼만하다. 문제는 다차원 적분은 적분 구간을 (a, b)처럼 쉽게 쪼개줄 수 없다는 것이다.

    # 물론 잘 쪼개서 다중 반복문을 돌리면 된다. 당연히 된다. 만약 함수가 수치적으로, 즉 모든 위치에서의 함수값이 ‘진짜 값’으로 주어져 있다면 다중반복문을 돌려서 적분해야 할 것이다.

    # 하지만, 만약 고차원에서 정의된 매우 이상한 함수가 있는데, 이 함수의 함수값은 구할 수 있지만 함수값이 다 주어진게 아니라 그냥 함수만 주어져 있다면? 그리고 그 해석적인 적분은 구할 수 없는 경우라면?

    # 이때는 확률적 방법을 통해서 구할 수 있는데 그것이 바로 Monte-carlo integration이다.

    # 다차원 다중적분 및 MC는 다른 기회에 설명하도록 하겠다.

    Quadratic은 “사각형의”라는 뜻을 담고 있는데, 그래서 “제곱”이라는 뜻도 있다. 일반적으로 사각형은 2차원 평면에서 정의된 도형이고, 1차원에서 1차원으로 가는 함수는 보통 직사각형으로 근사해서 적분하게 되므로 quadrature는 2차원 적분의 뜻이 강하다. Cube는 정육면체를 뜻하고, Cubic은 그래서 세제곱이라는 뜻이 있다. 거기서 나온 Cubature는 3차원 적분의 뜻이 강하다. 3차원 이상에도 각 차원마다 라틴어 어원을 갖는 형용사들이 있겠지만 그냥 Cubature라고 부르는 듯. Curvature는 “곡률”이라는 뜻으로 cubature와는 아무 관련 없다.

  • 과학자는 무슨 재미로 일하나

    과학자의 길을 걷고자 대학원에 들어왔는데, 대량의 공부와 막막한 앞길에 그닥 재미있어 보이는 것들이 없다. 하지만 지극히 개인적 관점에서, 이런 재미로 사는 거 아닐까? 싶은 것들이 있어서 적어본다.

    1. 새로운 사실

    내 분야만 해도, 하루에도 수십 수백건의 논문이 쏟아진다. 투고된 것 말고, 통과되서 학술지에 정식으로 실리는 것들만 쳐도 수백건이 넘는다. 이 논문들을 다 읽어본다는건 말도 안되는 일이지만, 실력있는 과학자라면 이중에서 중요한 것들을 제목과 초록만 보고 어느정도 골라낼 수 있을 것이다. 그렇게 해서 남들이 발견하고 주장하는 새로운 사실들을 알아가는 것은 눈앞에서 벌어지는 과학의 역사를 보고 있는 것이다. 그렇게 작은 논문들이 쌓여서 중요한 이론이 될 테니.

    물론 재미가 없어도 새로 발표되는 논문은 따라가면서 읽어볼 필요가 있는데, 내가 지금 하는 연구를 누군가 먼저 해서 결과를 내놓았을수도 있고, 남들이 쓴 논문에서 미처 따져보지 못한 부분이나 시도하지 않은 부분을 내가 먼저 발견해서 논문을 쓸 수도 있기 때문이다.

    2. 새로운 시도

    내가 붙들고 삽질하고 있는 바로 이 주제는, 누가 돈주고 시켜서 연구하는 것일 수도 있고, 순수한 호기심에 연구하는 것일수도 있고, 둘 다일수도 있다. 아무튼 이 연구를 해야 한다는 사실은 정해져 있다. 모든 일이 그렇듯, 할지 말지 정할 수 있는 일은 그 고민으로도 재미있지만 그런걸 정할 수 없이 일단 해야 하는 일은 그다지 재미가 없는 법이다. 하지만 소소한 재미가 그 사이에 들어있는데, 원하는 결과를 얻기 위해서 무엇을 시도해 볼 수 있을지 고민하는 과정이다. 이 고민은, 마치 로또에서 어떤 번호를 찍을까 고민하는 것과 같은 즐거움을 준다. 원하는 결과를 얻는다면 연구를 마무리짓고 털어버릴 수 있으므로 당연히 즐거울 것이고, 원하는 결과를 얻지 못하더라도 최소한 무엇을 하면 실패하는지 알게 되므로 연구에 진전은 있는 법이다.

    3. 결과 분석

    실험을 했다. 그래프를 그렸다. 뭐냐 이건.

    대체로 실험 그래프는 직선이 좋다. 분석이 편하니까.

    그래서 사람들은 직선을 얻기 위해서 로그 눈금을 도입했다. 지수 눈금도 있다. 하지만 그래프가 직선이 아니라 하더라도 내가 그린 그래프는 자연 현상을 관찰한 그래프이다. 그렇다면 이 현상을 설명할 수 있는 이론이 존재할 것이고, 그 이론을 찾아내는 과정은 매우 흥미로운 작업이다.

    이론으로 설명되지 않는 실험 결과는 그냥 종이에 찍은 점일 뿐이다. 실험으로 그린 그래프와 이론으로 그래프가 일치해야 하는 이유는 하나도 없다. 그 두 그래프가 일치하는 경우는 오직 올바른 이론을 선택한 경우일 뿐이다.

    바로 그 느낌이 나를 공부하도록 만든다. 내가 얻은 실험 결과를 해석할 수 있는 이론을 내가 알고 있기를 바라며.

    4. 새로운 제안

    물론 이론은 실험을 설명하기 위하여 태어났지만, 어떤 분야에서는 이론의 발전이 너무 빨라서 아직 실험으로 구현할 수 없는 경우가 있다. 이 경우 이론은 실험을 제안할 수 있다. 과학에서 이론을 연구하는 학자들은 비록 소수지만, 자신만의 이론을 만들고 그 이론을 검증할 수 있는 실험 방법을 제안할 수 있다. 이 실험 방법은 어떤 경우에는 너무나 허황되어 헛소리처럼 들리기도 하지만, 그런식으로 만들어진 실험 장치가 그 유명한 대형 강입자 충돌장치(Large Hadron Collider)아니겠는가.

    이론가의 실력이 그 극한에 다다르면, 실험이 ?아오기 전에 선도적으로 이론의 검증방법을 제안할 수 있다. 이 경우, 정말 자기 맘대로 실험을 제안할 수 있다. 이 이론이 틀릴까봐 겁낼 필요가 없는것이다. 여기서 상상력을 발휘하며 자기 이론을 마음껏 펼칠 때의 그 즐거움은, 음악가들이 악기를 연주하고 화가들이 붓을 놀릴 때의 그 재미와 비슷하다.

    5. 격렬한 토론

    니 이론이 맞는건지 내 이론이 맞는건지 격렬하게 싸운다. 심판은 실험 결과. 어떤 이론이 더 정확하게 실험 결과를 맞추는지. 그렇게 해서 내 주장을 관철시키기 위해서 나는 더 정확한 이론을 알아야 하고, 남의 주장을 반박하기 위해서 다른 사람들의 이론도 상세히 공부해야 한다. 각 이론의 장점과 단점을 파악하고, 이론의 요점을 이해해서 실험의 어떤 부분을 설명하는지, 설명하지 못하는지 알고 있어야 한다.

    토론은 동료 연구자들과도 이루어지고, 다른 연구소의 과학자와도 이루어지고, 가끔 다른 분야의 학자와도 할 수도 있다. 이런 사람들을 설득시켜가며 얻는 즐거움이 있고, 다른 사람의 주장을 들으며 아이디어와 새로운 지식을 얻는 즐거움도 있다.

    내 이론이 맞으면 가장 재미있지만, 내 이론이 맞지 않더라도 제대로 된 이론을 공부할 수 있다면 그것도 나름 재미있는 일이다.

    음… 그러나 이렇게 미화시키더라도, 어쨌든 실력있는 과학자가 되지 못한 상태에서는 다 삽질일 뿐이다.

    정직은 과학자의 기본이고, 실력은 과학자의 미덕이다.

  • ∼infinity∼∞ HAYASHIBARA MEGUMI




    ∼infinity∼∞ HAYASHIBARA MEGUMI


    로스트 유니버스 오프닝


    瞬(またた)く流星(りゅうせい) 願(ねがい)を託(たく)して


    일순간에 지나가는 유성에 소원을 빌어보고


    3度(さんど)つぶやいた 幼(おさな)い思(おも)い出(で)


    삼세번 중얼거려 보았던 어렸을적 추억이


    おどき話(ばなし)さと 冷(さめ)た瞳(まなざし)で


    허황된 얘기라고 차가운 눈빛으로


    あきらめていたら 一生(いっしょう)つかめない


    포기해 버린다면 평생토록 잡지 못할거야


    Get back (되돌려봐)


    もう一度(いちど) 心(こころ)の奧(おく)で眠(ねむ)ってる


    다시한번 마음속 깊이 잠들어 있는


    あの日(ひ)の 願(おも)いを 時空(そら)に解(と)き放(はな)て


    그 옛날의 바램들을 저 하늘속에 풀어 놓아보자


    ☆ めちゃくちゃにがむしゃらに 空(から)っぽに


    엉망이 되어서까지, 억척스럽게, 텅 빈 곳으로


    步(ある)いたその先(さき)に


    나아가는 그 앞에


    透明(とうめい)な道標(みちしるべ)浮(うか)ぶよ


    투명한 이정표가 떠오를거야


    君(きみ)だけの 心(こころ)に


    오직 너만의 마음속에.


    限界(げんかい)の向(むこ)うは無限大(むげんだい)


    한계를 넘어서면 무한대야


    繰(く)り返(か)えす傳說(でんせつ)


    되풀이되는 전설을


    越(こ)えて行(ゆ)こう 塗(ぬ)り變(か)えて行(ゆ)こう


    뛰어 넘어가자 덧칠해 나가자


    Do your best for your sake anytime (너 자신을 위해 최선을 다해라)


    はじけたコインに 運命(うんめい)託(たく)して


    던져올린 동전에 운명을 걸고


    迷(まよ)いを斷(た)ち切(き)る それも惡(わる)くない


    방황을 멈출수만 있다면 그것도 나쁘진 않아


    見(み)えない偶然(ぐうぜん) 確(たし)かな必然(ひつぜん)


    보이지 않는 우연, 뻔히 보이는 필연


    生(い)きてくゴツなど 誰(だれ)も持(も)っていない


    잘사는 요령따윈 아무도 갖고 있지 않아.


    Get lost (버려라)


    急(いそ





    )いでる 時代(じかん)の波(なみ)に流(なが)されて


    조급한 시대의 파도에 휩쓸려


    心(こころ)を 失(うしな)う 時(とき)もあるけれど


    내 본심을 잃어버리는 때도 있긴 하지만


    ★ 先回(さきまわ)りの後悔(こうかい)は いらない


    다시 되돌아오는 후회같은 건 필요없어


    進(すす)んだその先(さき)に


    계속 앞으로 가다보면


    新(あたら)しい道(みち)が創(つく)られてく


    새로운 길이 만들어져 갈거야.


    君(きみ)にしか見(み)えない


    그건 너밖에 볼 수 없어


    潔(いさぎよ)く負(ま)けを認(みと)めるのは


    지금 미련없이 떳떳하게 패배를 인정하는 건


    明日(あす)を勝(か)ち取(と)るため


    내일 승리하기 위해서야


    かっこ惡(わる)く かっこ良(よ)く行(ゆ)こう


    보기 싫든 좋든 나아만 가자.


    You can have your way in everything (넌 어떻게든 길을 찾아낼거야.)



    인터넷에서 굴러다니는 해석을 주워다가 틀린 부분을 조금 고치고 다듬었다.

    소싯적 수백번 들으며 꿈꾸었던 노래.

    구절 하나하나가 버릴 구석이 하나도 없다.

    메구미는 어떻게 이런 가사를 쓸 수 있었을까?

    유치하기도 하고, 허세같기도 하지만. 글쎄. 후회?ㅋㅋ

  • 윈8

    여러가지 부득이한 사정으로 윈8을 설치하게 되었다.

    1. 설치는 매우 쉬워졌다.

    2. 태블릿에서 쓰기에 매우 좋아졌다.

    3. 마우스로 쓸 때는 매우 불편해 졌다. 도저히 어떻게 써야 하는지 모르겠다.

    4.

    작업표시줄에서 한글 IME아이콘을 삭제할 수 없다.

    알림영역 설정에서 끌 수 있다.



    근데 꺼놔도 부팅을 다시 하면 저절로 켜진다. 뭐야 이거 버그인가??

    5. 왜 파이어폭스 앱 모드에서 ‘뒤로가기’는 있는데 ‘앞으로 가기’는 없는걸까. 그리고 마우스만으로 탭 전환을 하려면 탭 추가 버튼을 눌러야만 하는건가??

    6. 같은 프로그램인데 앱 모드와 데스크탑 모드 사이의 정보 공유가 아예 안되는건 말이 안되는 사태다. 차라리2개의 운영체제를 동시에 사용하는 기능이라고 광고했다면 납득할 수 있을지도 모르겠다. 심지어 환경설정 내용도 공유가 안된다. 이 얘기는, 파이어폭스를 앱 모드와 데스크탑 모드 사이에서 따로 설정하라는 뜻이다. 물론 파이어폭스는 동기화 기능이 있기 때문에 설정을 공유할 수는 있지만, 그거랑 이거랑은 다른 얘기지.

    7. 결국 단축키 모르면 사용하기 불편한 데스크탑 컴퓨터를 만든 MS의 선택. Back to DOS인가.

    8. 어쨌든 파이어폭스에서 마우스 클릭만으로 주소표시줄을 열 수가 없다. 그럼 Ctrl+L을 어떻게 알아내지?

    9. 이런저런 이유로 파이어폭스 쓰기가 불편하다.

    10. 키트윅도 안 먹는다. Caps-lock 자리에 Ctrl을 쓰지 못한다면 작업 속도가 절반으로 줄어든다.

    11. 윈7로 복귀 결정.

    결국은, 어쩌다보니 부득이하게 윈8을 쓰게 되었다. 윈7로 포맷해도 되지만 그것도 또 귀찮고, 키보드로 해피해킹프로2를 사용하면 굳이 키트윅을 안 써도 되므로 당분간은 괜찮을듯. 그러나…

    12. 앱모드에서 전체 앱 목록을 볼 수 있는데, 이거 뭘 찾기가 매우 어렵다.

    13. 잠금화면은 데스크탑 모드에서는 화면보호기 이상의 의미가 없다. gpedit에서 없애자.

    14. Classic shell을 설치하면 기존의 시작메뉴를 사용할 수 있다. 여기서 몇가지 설정을 하고 Active corner를 모두 꺼버리면 윈7과 비슷해진다. 그래도 뭔가 좀 부족하지만. 윈8.1 업데이트에서 시작버튼을 다시 제공한다고 하니까 그때까진 기다려야겠다.

    15. Windows 95 스타일을 지원하지 않는다.


    터치패드 없이는 정말 사용하기 어렵게 만들었다.

  • php+mysql

    최근 piwigo라는 갤러리 프로그램을 설치하려고 했는데…

    mysql과 이상하게 php가 잘 연동이 안되어서 왜그런가 살펴봤더니 php.ini 파일에 mysql모듈을 “쓰라고!” 알려줘야 했다.

    extension=/usr/lib/php5/20090626+lfs/mysqli.so

    extension=/usr/lib/php5/20090626+lfs/mysql.so

    조금 당황스러웠지만, 2시간동안 웹을 뒤져본 결과 위와 같이 설정해 주면 된다는 사실을 알아낼 수 있었다. 여기서 중요한 것은 /usr/lib/php5/20090626+lfs/라는 경로명까지 모두 적어주어야 한다는 부분이다.

    삽질의 세계는 여전히 넓고 깊구나.

  • 마법공부

    연구 주제가 대강 결정되었다. 연구 주제는 “양자역학”

    양자역학이 얼마나 분야가 넓은데 뭔 뜬금없는 헛소리냐는 질문이 있겠지만. 진짜다.

    일단은 양자컴퓨터라는 분야로 가기로 했는데, 이 분야는 응용으로 가면 컴퓨터지만 이론 수준에서는 양자역학 그 자체이다.

    그리고 우리 연구실은 광학을 연구하므로 빛을 이용해서 양자역학을 연구할 것이다.

    그래서 교수님이 나보고 해보라고 시킨 것은 광자 1개를 광자 3개로 바꾸는 마법을 요구하셨다.

    광자 1개를 광자 2개로 바꾸는 과정은 Spontaneous parametric down conversion 과정을 사용하면 되는데, 이건 이미 많이 했다. 1개를 2개로 바꾸고 그 2개중에 한개를 골라서 다시 2개로 바꾸면 3개가 되는데 이것을 Cascade 방식이라고 한다.

    Cascade 방식을 이용해서 1개를 3개로 바꾸는 것은 제안된건 20년 전인데 구현된건 3년전이다.


    http://www.nature.com/nature/journal/v466/n7306/full/nature09175.html

    Cascade 방식으로 구현해서 네이처를 갔으니, 직접 구현하면 PRL정도는 갈 수 있지 않을까? 하는 기대를 해본다. 되든 안되든 해보면 뭔가 얻는게 있겠지.

  • 네모의 꿈






    http://news.naver.com/main/read.nhn?mode=LSD&mid=shm&sid1=105&oid=055&aid=0000259298

    SBS에서 “네모는 가라!”라고 제목을 뽑아서 보도했는데, 정작 보도된 기기중에서 네모가 아닌건 하나도 없다.

    우린 언제나 듣지. 잘난 어른의 멋진 그말. 세상은 둥글게 살아야 해.

  • 미친 보안

    방금 계좌이체하다가 놀라운 사실을 발견했다. 정말 식겁했다.



    기업은행 오픈뱅킹. 최근에 지원되기 시작해서 모든 웹 브라우저, 모든 운영체제에서 인터넷 뱅킹이 가능하도록 해준다는 전설의 웹 서비스이다.



    이건 기존에 쓰던 인터넷 뱅킹.

    분명 차이가 있다. 오픈뱅킹에는 https프로토콜을 사용하고, 그냥 기존 웹 뱅킹에는 http 프로토콜을 사용한다.

    이러니까 털리지.


    http://en.wikipedia.org/wiki/HTTP_Secure

    위키백과에 의하면, https는 1994년에 만들어지고 2000년에 규격이 확립되었다.

    “아직까지도” https를 사용하지 않는 저 기존의 인터넷 뱅킹은, 만약 악의적인 공격자가 적절히 털어준다면 ibk.co.kr도메인으로 연결했을 때 똑같은 웹 페이지에 똑같은 입력창을 갖고서 개인정보를 털어갈 수 있는 여지를 남겨두고 있다. https는 서버의 인증서를 확인할 수 있으므로, 내가 지금 연결한 서버가 “진짜 ibk의 서버”인지 확인할 수 있고, 따라서 개인정보를 털릴 위험이 줄어든다.



    이런 해킹 방지 프로그램에 의존하는 것보다 https로 인증하는 것이 당연히 더 안전한 법이다.

    당장이라도 기존의 인터넷 뱅킹 웹 페이지를 폐쇄하고 https를 사용한 오픈뱅킹으로 연결하는 것이 좋다. 하지만 ibk는 그렇게 하지 않겠지.

    다른 은행은 어떤지 모르겠지만, 다들 비슷비슷할 것이라 별로 기대도 안된다.

  • 설국열차

    오래간만에 극장에 가서 본 영화다.

    음… 원피스?

    그러나 뭔가, 좀 더 추구하는 것이 있어 보인다.

    저기로 가야 한다는 것.

    옛날에 누가 그랬더라, 황후장상의 씨가 따로 있는거냐고. 주인공은 그렇게 외치는 앞자리 사람들을 밀어내고 가장 앞칸에 도달한다.

    하지만 그도 결국은 열차 그 자체에서 나가야 한다는 생각은 하지 못했다.

    생태계의 문제, 환경 문제, 부처의 살신성인, 여러가지 이야기가 잘 섞여 있다.

  • 파프리카

    곤 사토시 감독의 파프리카.

    인셉션에게 영향을 주지 않았을까 하는 생각이 강렬하게 드는 작품이다. 물론 제작 연도나 시기나 이런저런걸 보면 그닥 관련 없어보이기도 하지만.

    어쨌든.

    꿈에 관한 이야기다. DC미니라는 장치를 이용해서 다른 사람과 꿈을 공유할 수 있다. 그런데 그게 도난당하고, 사람들이 미쳐가기 시작한다. 어떤 일이 일어나는 것인가.

    어쨌든.

    90분짜리 애니메이션이지만, 아주 흥미롭게 봤다. 원작 소설을 구해서 봐야겠다.

    그리고 주인공 성우가 하야시바라 메구미라서 더 마음에 들었다.