[작성자:] snowall

  • 이명박 대통령께

    대통령님.

    경제는 맘대로 해도 좋으니까, 제발 전쟁은 나지 않게 해주세요.

    당신은 신이니까 그렇게 할 수 있을 거예요. 믿어도 되겠죠?

  • 전세계에서 13등

    일전에 소개한 Young programmer’s challenge 문제를 모두 풀었다. 1시간 조금 넘는 시간동안 25개의 어려운 문제를 풀었다.

    25개중 11개를 맞추었고, 배점에 따라 108점을 얻었다.

    아직은 참가자가 많지 않아 13등이기 때문에, 미리 자축하고 싶다. 나중에 등수 떨어지면…울어버릴지도.


    끝난거였다. -_-

    전체 참가자가 59명이니까, 난 나름 상위권인가…;;

    어차피 전체 멤버가 349명밖에 안되니, 그닥 세계적인 수준이라고 하기엔…좀…

    그건 그렇고, GMT 1600PM부터 시작한다는건 아시아권에는 너무 잔인하다. 한국 시간으로 새벽 1시라니…-_-;

    (한국은 GMT+0900이다)

    현재 50등까지 공개되어 있는데, 인도 애들이 엄청 많다. 아무튼 나랑 비슷한 점수를 받은 친구들은 나랑 실력이 비슷하다는 거겠지? -_-;

    랭킹은 여기서


    http://www.youngprogrammer.com/ranklist.php?id=3

  • 공각기동대의 명대사

    Ghost in the Shell – Stand Alone Complex

    Episode 5에서 17:21 지점

    아라마키 과장

    “우리들 사이에서 팀플레이같은 허울좋은 말은 애초에 없었지. 있다면 그것은 Stand play에서 나오는 생겨나는 팀워크 뿐이다”

    웃는 남자

    I thuoght what I would do was, I would pretend I was one of those deaf-mutes

    내가 할 수 있었던 것은 귀머거리에 벙어리인 척 하는 것이라고 생각했다.

    고다 카즌도

    고다 : 만약 내가 범인이라면, 의체화 이전 동정이었다는 인자를 조합하겠지

    바토 : 뭐라고!

    고다 : 민중을 위한 영웅으로 순교하겠다는 각오를 꼽는다면, 이건 빠트릴 수 없는 요소다. 무엇보다 그런 인재가 몇명이나 나타날지는 모험이었지만

    바토 : 이자식,

    나쁜 것도 정도가 있는거야


    고다 : 그런가. 정확히 말하자면 나도 동정이야. 자네와의 이야기, 즐거웠네.

    (그들은 마법사가 되었다…)

    무네이 히토시

    아라마키 : 그럼 지금까지 당신들 정치인들은 무엇을 했습니까? 스스로의 몸과 허영심을 너무 우선한 나머지 실제 사안들을 뒤로 미뤄온 책임은 누가 진단 말입니까?

    무네이 : 내가 그 책임을 지고 있다고 자부한다

    아라마키 : 인권을 무시하고 윤리를 침해하고서라도 말입니까?

    무네이 : 그것도 어쩔 수 없다고 생각하네

    코시키

    쿠사나기 : 사고방식은 오만하고 독선적이지만 관료로 놔두기 아까울 정도로 부지런하군.

  • 1984

    나는 1984년에 태어났다.


    http://www.hankyung.com/news/app/newsview.php?aid=2009011511581&intype=1&nv=1

    그도 1984년에 태어났다.

    난 전문연구요원, 그는 수령…

    …뭐지?!

  • 천재들의 세계

    Project Euler의 홈페이지를 잘 살펴보면 통계 페이지가 있다.


    http://projecteuler.net/index.php?section=statistics

    통계 페이지의 위에는 국가별 통계가 있다.

    남한에서는 179명이 참여하고 있다. 북한에 2명 -_-; 놀라운 일일 따름이다…

    그리고 국가별 통계 밑에 보면 언어별 통계가 있는데, 정말 이렇게 많은 컴퓨터 언어가 있다는 점에 놀라게 된다. 그리고 한가지 특기할만한 사항은, Pencil/Paper가 있다는 점(!) 설마 Pencil이나 Paper라는 언어가 있을 것 같지는 않고, 직접 손으로 풀었다는 뜻으로 보인다. 사용자 평균 등급을 보면 10%를 차지하고 있다.

    가장 많이 쓰는 Python/C/C++/Java 등의 등급이 잘해야 13%이고 10%정도에 머물러 있는 것을 보면 놀라울 따름이다.

    그래서 그렇게 푸는 사람들이 누가 있는지 살펴봤는데, 전부 다 푼 사람도 있다. 진짜일까!? 뭐…그게 진짜로 손으로 다 풀었는지 어쨌는지는 나로서는 알 수 없는 노릇이지만, 사실이라면 정말 대단한 것 같다. 내가 앞발로 만든 C 프로그램을 컴퓨터가 두시간씩 걸려서 풀어준 문제도 있는데, 그걸 손으로 풀었다면, 천재이거나 엄청난 끈기의 소유자이거나, 둘 다이거나…

    흥미로운 점은 – 그중에 5위에 한국인이 있다는 점. 현재 195문제로, 바로 어제 새로운 문제를 풀었다고 한다.

    음…난 이제 겨우 30문제 풀었는데. 나머지 200여문제는 언제 풀어보려나 모르겠다.

    아무튼. 천재들을 바라보고 따라갈수록, 나도 그만큼의 실력을 갖추게 되는 거겠지. 이렇게 생각하든 저렇게 생각하든, 논리적인 결과는 같을테니.

  • 화면 감시 프로그램 – 힌트 요청…

    블로그에 질문을 올리는 것도 가능하다. (응?)

    나는 다음과 같은 코드를 작성하였다.

    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim bounds As Rectangle

    Dim screenshot, backup As System.Drawing.Bitmap

    Dim graph As Graphics

    Dim x, y, z, w As Integer

    x = 0

    bounds = Screen.PrimaryScreen.Bounds

    screenshot = New System.Drawing.Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb)

    backup = New System.Drawing.Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb)

    graph = Graphics.FromImage(screenshot)

    graph.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy)

    Do While True

    backup = screenshot

    graph = Graphics.FromImage(screenshot)

    graph.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy)

    Dim i, j As Integer

    For i = 1 To 10

    For j = 1 To 10

    y = System.Math.Abs(CInt(backup.GetPixel(i, j).R – screenshot.GetPixel(i, j).R Mod 256))

    z = System.Math.Abs(CInt(backup.GetPixel(i, j).G – screenshot.GetPixel(i, j).G Mod 256))

    w = System.Math.Abs(CInt(backup.GetPixel(i, j).B – screenshot.GetPixel(i, j).B Mod 256))

    x = x + y + z + w

    Next

    Next

    If Not (x = 0) Then

    MsgBox(x)

    Exit Do

    End If

    Loop

    End Sub

    End Class

    앞발로 짠 코드이므로 가독성이나 그런건 전혀 신경 안쓰고 막 두들겼다.

    이 코드가 하는 일은 다음과 같다.

    1. 모니터 화면의 특정 영역을 감시한다. (이 예제 코드에서는 0,0에서 10,10까지의 왼쪽 상단 모서리)

    2. 특정 영역에 변화가 생기면

    3. 알림 팝업을 띄운다.

    이걸 왜 만드는가…

    그것은, 월급 400만원 받는 사람이 모니터를 뚫어지게 바라보고 있다가 특정 영역에 변화가 생기면 마우스를 클릭하는, 그런 일을 하고 있기 때문이다. 그 사람에게 다른 일을 시키기 위해서 이 부분을 자동화 시켜야 한다.

    물론…이 프로그램을 만든다고 해서 절약된 돈 400만원의 일부가 나에게 성과급으로 돌아올 것인가…그건 전혀 기대할 수 없다.

    아무튼.

    요점은, 위의 코드를 실행하는 Form1에는 버튼이 하나 있고, 그 버튼을 클릭하면 저 프로그램의 코드가 작동을 시작하도록 되어 있다.

    문제는 저 코드를 실행시키면 예상대로 무한루프에는 빠져 들어가는데, 화면이 변해도 감지를 못한다는 점이다. 무한루프 자체에 너무 빠져버린 듯…

    그래서 – 화면을 감시하는 프로그램은 대체 알고리즘이 어떻게 되어 있는 걸까?

    일단은 그런 알고리즘을 찾는다는 핑계로 인터넷 서핑을 하고 있었다. 정신을 차려보니 네이버 뉴스와 올블로그를 돌아다니는 나를 발견, 급히 이 글을 작성해 둔다.

  • 질문은 잘 하자

    http://oops.org/?t=lecture&sb=beginner&n=1

    다른 사람에게 질문을 던지고 싶은 사람이라면 누구든지 위의 글을 반드시 읽어볼 것을 권한다. 김정균 님이 작성하신







    HOWTO For Beginners

    이다.





    아까 누가 메신저에 등록해서…

    그분과의 대화를 저장하였다.

    사실 대화하면서 많이 답답했다. 포트포워딩이 왜 필요한지 말도 안하고 포트포워딩을 해달라고 하였으니…

    만약 내가 왜 할거냐고 안 물어봤다면 나의 대답은 다음과 같았다.

    1. 리눅스 설치하세요.

    2. 터미널에서 sudo apt-get install iptables 를 입력하세요.

    3. iptables 설정하세요

    물론 내가 iptables를 개뿔 아는게 있을리 없지만, 이건 그 이전에 매우 기본적인 것에 대한 내용이다. 일단 이 분은 리눅스가 무엇인지 모르고 계셨기에… 아니, 그보다는 운영체제라는 것에 대해서 모르고 있었던 것 같다. ”

    윈도에서 큐파일이라는 프로그램을 이용하기 위해 포트포워딩을 해야 한다

    “는 것을 질문했어야 제대로 된 답이 나올텐데, 앞쪽을 잘라놓고 ”

    포트포워딩을 해야 한다

    “는 것만 질문 하면 그 어떠한 전문가라도 iptables 를 쓰라고 할 것이다.

    http://www.google.co.kr/search?q=%ED%8F%AC%ED%8A%B8+%ED%8F%AC%EC%9B%8C%EB%94%A9&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ko:official&client=firefox-a

    구글에서 검색해보면 iptables를 이용하는 방법이 가장 처음에 나온다. 어쨌든, 나야 뭐 질문도 많이 해봤고 대답도 많이 해봤기에 답답함을 이겨내고 원초적인 부분을 파내서 이분이 원하는 답을 해주긴 했지만. 뭔가 안된다는 질문은 아무런 대답도 얻을 수 없는 공허한 질문이다. 뭐가 안된다는 건지 알려주지 않으면 답이 나오지 않는 법이다.

    그래서, 질문을 잘하는 것이 좋은 대답을 얻는 비결이다. 우문에는 우답밖에 나오지 않는다.


    더보기

  • 매트릭스의 이상한 점

    영화 매트릭스 – 너무나 유명해서 더이상 그 스토리를 말한다고 해도 스포일러가 아닐 정도일 것이다.

    매트릭스의 기본 설정은, 기계들이 엄청나게 많은 인간의 뇌를 조작하여 그들이 모두 매트릭스 안에서 꿈을 꾸도록 한다는 것이다. 그리고 그 꿈은 현실과 똑같다.

    현실에서, 우리는 아기를 만든다. 그렇다면, 매트릭스에서는 그 과정을 도대체 어떻게 처리하는 것일까?

    인공 보육실이 있다 치고, 인공 자궁에서 아기를 만든다고 치자. 그럼, 그걸 공장에서 기계적으로 생산하는 것이 아니라 “꿈” 속에서 아기가 만들어질 때 마다 새로운 실제의 아기를 만들어서 꿈 속에서 그 아기가 태어나는 시점에 실제의 아기와 연결시켜주고, 그 속에서 실제의 아기가 꿈을 꾸기 시작하도록 만드는 것인가?

    매트릭스에서 이 문제를 어떻게 해결했는지가 정말 궁금하다. 객체지향적으로 말하자면, 새로운 Human 객체를 생성해서 Parent로부터 상속을 해 주는 과정에서 생성자를 어떻게 처리하는가, 그것이 문제인 것이다.

    물론…

    너무 깊이 들어가면, 다치겠지만.

  • 젊은 프로그래머에게 내미는 도전장(?)

    Project Euler에서 이메일이 한통 왔다.

    Next Live Quiz Competiton on:


    17th JAN. 2009
    4:00 PM -GMT

    10:00 PM -BAN 9:30 PM -IND

    Fix your local data and time here:

    View

    Current Time: 11th January 2009 11:42:52 AM UTC

    Countdown: 6 Days 4 Hours 17 Min 8 Sec

    Quiz covers the follwoing topics:

    C/CPP programming puzzles

    c aptitude questions

    Algorithm

    Data Structure

    Simple Math

    IQ

    Total questions:

    Not fixed yet


    Time:

    Not fixed yet


    For any query regarding the contest, feel free to mail me: slimonbd@yahoo.com (also IM)

    흠…

    재밌을 것 같아서 일단 신청했다. 못하면 말지 뭐. ㅋㅋ

    알고리즘과 자료구조와 IQ에서 망칠 것 같다. 다른 분야라고 자신있는건 아니지만. -_-;

    신청은 다음 URL에서 하면 된다.


    http://www.youngprogrammer.com/live_quiz.php