글쓴이 보관물: snowall

snowall에 대하여

onecup, research department

제2

폴 포츠는 노래를 잘 못할 것 같이 생겼지만 노래를 잘 불렀기 때문에 유명한 사람이 되었다.

그리고 그 뒤로 수많은 폴 포츠가 등장했다.

“여자 폴 포츠” – 수잔 보일

“꽃게잡이 폴 포츠” – 남현봉

“껌팔이 폴 포츠” – 최성봉

“꿀따는 폴 포츠” – 김성록

그럼 이 사람들의 성장은 “폴 포츠”만큼으로 끝나는 걸까?

—-

외국 드라마를 보면 “시즌”이라는 것이 있다. 시즌 1, 시즌 2, … 이렇게 이어지면서 스토리도 이어지고 시즌 사이에 다른 준비도 하고 쉬기도 하고 그런다. 우리나라에서는 그냥 우려먹기가 된 것 같다.

—-

“제2의 아인슈타인”이라는 수식어가 꽤 멋있어 보이는 경우가 있다. 스티븐 호킹이나 에드워드 위튼에게 그런 말을 붙이는 것 같다. 그러나 호킹이나 위튼의 이론은 아인슈타인의 이론보다 더 어렵다. 그들은 아인슈타인의 이론을 기반으로 더 먼 곳까지 나아갔고, 아인슈타인이 뉴턴 이론에 덧붙인 것 만큼이나 독창적인 이론을 아인슈타인 이론에 덧붙였다.

아인슈타인은 제2의 뉴턴이 아니었다.

—-

어떤 새로운 것을 쉽게 설명하기 위하여 과거의 유사한 것을 끌어다 빗대어 말하는 것은 당연한 일이다. 하지만 그것이 그 대상의 한계를 결정지을지도 모른다.


시리즈물

모으는 시리즈물 중 구입해둔 최종 권수를 적어놔야겠다. 하도 뜸하게 출간되다보니 잊어먹고 있음.

건슬링거걸 11권

오나의 여신님 41권

스즈미야하루히의 우울 9권

총몽LO 15권

신부이야기 2권

트랜스포머3

트랜스포머3편을 보고 왔다.

심형래 감독이 헐리웃에 끼친 영향을 확인할 수 있었다.

그리고 안내상씨는 언제 헐리웃으로 진출한거지?!

고유값 구하기 문제

컴퓨터를 이용해서 기계적으로 선형대수학 문제를 풀다 보면 흔히 만나는 문제가 고유값(Eigenvalue)구하기 문제이다. 그리고 이 문제를 풀다 보면 흔히 만나는 문제가 고유값의 순서이다.

컴퓨터는 답만 맞으면 되지? 하는 철학으로 구현된 계산 방법을 이용하는데, 그러다보니 행렬을 연속적인 변수로 만들어 냈을 때 고유값의 순서가 바뀌는 경우가 있다. 내가 풀어야 하는 문제는 고유값의 순서가 바뀌면 안되는 문제이고 이 문제를 어떻게 해결하느냐가 관건이다.

다음의 알고리즘을 참고하자.


http://snowall.tistory.com/2595

그리고 만든 것이 다음 프로그램이다.

import numpy

eig = numpy.linalg.eig

matrix = numpy.matrix

absn = numpy.abs

a0 = 0

a1 = 1

a2 = 2

for t2 in numpy.arange(-6.0, 6.1, 3.0):

file = open(“data”+str(t2)+”.txt”, ‘w’)

for t1 in numpy.arange(-r, r, stepping):

test=eig(massMatrix(t1, t2))

a2 = numpy.nonzero(test[0]==test[0].max())[0][0]

a0 = numpy.nonzero(test[0]==test[0].min())[0][0]

a1 = 2*(a0+a2)%3

file.write(

str(t1)+”\t”

+ str(t2)+”\t”

+ str(absn(test[0][a0]))+”\t”

+ str(absn(test[0][a1]))+”\t”

+ str(absn(test[0][a2]))+”\t”

+ str(absn(test[1][0, a0]))+”\t”

+ str(absn(test[1][0, a1]))+”\t”

+ str(absn(test[1][0, a2]))+”\t”

+ str(absn(test[1][1, a0]))+”\t”

+ str(absn(test[1][1, a1]))+”\t”

+ str(absn(test[1][1, a2]))+”\t”

+ str(absn(test[1][2, a0]))+”\t”

+ str(absn(test[1][2, a1]))+”\t”

+ str(absn(test[1][2, a2]))+”\t”

+ str(a0)+”\t”

+ str(a1)+”\t”

+ str(a2)+”\n”)

이중 massMatrix는 논문에 써야 하는 영업비밀이라 공개하기가 좀 그렇고, 3차 정사각 행렬을 되돌려 주는 함수라는 것만 알려둔다.

이런식으로 출력시키면 고유값이 끊기지 않고 부드럽게 이어져서 나온다.

이 문제는 내가 석사때도 마주쳤었는데, 그땐 복소수로 이루어진 3차 정사각 행렬의 고유값 계산하는 1000줄짜리 프로그램을 직접 만들어서 풀었었다. 내가 미쳤었나보다. -_-;

가게 여는 시간


http://kldp.org/node/124415

위의 문제를 풀어보았다.

문제: 어떤 가게가 여는 시간이 a, 닫는 시간이 b라고 하자. x를 입력하면 가게가 열었는지 닫았는지 알려주는 함수를 만들어 보자.

예: a=2시, b=15시. f(x=12)=true, f(x=1)=false, f(x=17)=false

예: a=20시, b=5시. f(x=1)=true, f(x=12)=false, f(x=23)=true

C언어라고 가정하자.

가장 빠르게 떠오르는 답은 다음과 같다.

isOpen(int a, int b, int x){

if a if a return true;

} else{

return false;

}

} else {

if a>x || x>b{

return true;

} else{

return false;

}

}

}

KLDP게시판에 많은 고수분들이 괜찮은 풀이를 올렸는데, 그중에 내가 제안한 것 두가지만 여기서 설명하도록 하겠다.

첫번째로

isOpen(int a, int b, int x){ return ((a-b)(x-a)(x-b)/abs((a-b)(x-a)(x-b))+1)/2; }

일단 ab인 경우에 bb이면 a-b는 양수이다. 이 경우에도 b 이 함수의 문제는 a=b, a=x, b=x인 경우에는 0으로 나누는 문제가 발생한다는 점이다. 예외처리를 위해서 if문을 쓸 수밖에 없게 된다.

두번째로

isOpen(int a, int b, int x){

return (x-a+n)%n<(b-a+n)%n;
}

여기서 n은 하루의 길이를 나타내는 정수이다. 이런식으로 계산하는 것이 가능한 것은 24시간을 기준으로 할 때 항상 xb일 수 있겠지만(a=b는?) 실제 개념으로는 항상 ab인 경우에는 b-a가 음수가 되는데, 그런 사태를 막기 위해서 양변에 n을 더해준 후에 %로 잘라주게 된다.

세번째로

isOpen(int a, int b, int x){

return (a-b)(x-a)(x-b)>0;

}

첫번째 답의 변형이다. 셋 중에서 제일 간단한 것 같다

.

Tremulous

요즘 Tremulous게임을 다시 하고 있다. 이 게임은 1인칭 총싸움 게임(FPS)이다.

아래 주소에서 다운로드 받을 수 있다.


http://www.tremulous.net/

이 게임은 퀘이크3엔진에 기반한 완전한 오픈소스 게임이며, 누구나 개발할 수 있고 누구나 참여할 수 있다. 회원가입이 필요 없이 설치후 서버에 접속하여 바로 전투를 시작할 수 있다. 다른 온라인게임과는 다르게, “계정”이나 “ID”라는 개념이 없이 오직 닉네임만으로 서로를 알아본다. 물론 원한다면 계속해서 다른 닉네임으로 교체할 수 있다.

인간팀과 에일리언팀으로 나뉘어져 싸우는데, 인간팀은 주로 총을 들고 원거리 사격으로 싸우고 에일리언팀은 직접 접근해서 적을 물어뜯어야 한다. 인간이 더 유리하다고 생각할 수도 있겠지만, 대체로 에일리언이 더 잘하는 것 같다. 에일리언은 매우 빠른 속도로 움직일 수 있고 인간팀은 느리다.

양 팀 모두 기지를 구축해야 하는데, 새로 태어나게 되는 지점인 Telenode/Egg를 만들고 동력과 생명의 원천인 Reactor/Overmind를 잘 지켜야 한다. 승패는 점수나 킬 수가 아니라 오직 적의 전멸에 의해 갈린다. 즉, Telenode/Egg를 모두 없애고 동시에 적군을 모두 없애야 승리하게 된다. 어떤 경우에는, 인간팀 Telenode를 모두 없애는데 성공했음에도 불구하고 단 1명의 인간팀 괴수 플레이어때문에 에일리언팀이 패배한 경우도 있다.

특징으로 투표 제도가 있다. 이에 관해서는 다음 글에 좀 더 자세히 설명되어 있다.


http://snowall.tistory.com/637


메인 운영자가 없는 대신 투표를 통해서 문제있는 플레이어들을 내보내고 게임 관리를 하게 된다.(물론 문제있는? 플레이어들이 더 많은 경우에는 그들이 정상이고 내가 이상한 플레이어이므로 다른 서버로 가자. 중이 싫으면 절이 떠나는 법이다.)

맵도 흥미로운 맵이 많다. 우주선이 배경인 맵이 대부분이지만, 고대의 사원, 슈퍼마리오월드같은 테마로 만들어진 맵도 있다.

그리고 “출발! 드림팀” 같은 맵도 있다.

아무튼 신나고 부담없는 FPS를 원한다면 Tremulous를 해보자.

컴퓨터 사양은 낮은편인데, 대체로 5년전에 쓰던 컴퓨터에서도 부드럽게 잘 돌아가니 걱정없다.

전세대란


http://news.hankyung.com/201107/2011071533877.html?ch=news

전셋값이 오르고 있다는 문제점을 지적한 기사이다. 그런데 그 해법으로…

해법은 공급에서 찾아야 한다. 전세난은 공급 부족이 1차적인 원인이기 때문이다.

우선 도심 주택 공급을 서둘러야 한다. 소형·임대주택 비율로 족쇄가 묶여 있는 재개발·재건축을 속히 활성화해야 한다.

라고 제안하고 있다. 그런데, 소형-임대주택 비율때문에 재개발이 안되는 이유는 건설회사에서 돈이 안되는 소형-임대주택은 개발하지 않으려고 하기 때문이다. 이 족쇄를 풀어서 재개발을 활성화 하면? 당연히 소형-임대주택보다 대형 주택이 공급된다. 그렇다면, 대형주택 공급이 늘면 전세대란이 해결되나? 절대 안된다. 전세대란은 서민이 겪고 있는데, 서민은 대형주택에 들어갈 돈이 없다. 대형주택 공급이 늘어나면 대형주택의 가격이 서민이 살 수 있을만큼 떨어질까? 결코 떨어질 리 없다. 건설회사가 미치지 않고서야 손해보는 장사를 할 리 없다. 물론 그래봐야 그 대형주택들은 많은 부분이 미분양으로 남겠지만.

따라서 공급을 늘리기 위해서는 국가에서 강제로 소형-임대주택을 건설하도록 하거나, 국가에서 직접 건설해야 한다. 그러나 그렇게 할 수 없다. 그것은 자유주의 시장경제 원칙에 어긋나기 때문이다. 그렇다면, 어떻게 하면 이 전세대란을 해결할 수 있을까? 해법을 공급에서 찾는 발상을 바꿔야 한다. 수요를 줄여야 한다. 어떻게 수요를 줄일 것인가? 전세대란의 주 수요처는 당연히 서민이다. 서민을 줄이면 전세대란은 자연스럽게 해결된다.

서민을 줄이면, 그 서민을 다 죽일수는 없으므로 필연적으로 다른 계층의 사람들이 늘어나게 된다. 따라서 서민을 줄이는 방법은 두가지로 요약된다. 서민을 빈곤층으로 만들거나 서민을 중산층이나 상류층으로 만들면 된다. 좀 더 손쉬운 방법은 서민을 빈곤층으로 만드는 방법인데, 그건 정부에서 알아서 잘 하고 있으므로 넘어가도록 하자. 서민을 중산층으로 만드는 방법은 소득을 올려주거나 집값을 낮추는 것이다. 물론 집값을 낮추는 방법을 선택하면 순환논리에 빠지므로 소득을 올리는 방법에 집중하도록 한다.

서민의 소득을 어떻게 올릴 수 있을까? 서민은 자영업자이거나 피고용인이다. 자영업자의 소득을 올리는 방법은 경기부양이다. 단, 경기부양책은 잘못 사용하면 인플레이션이 더 빠르게 오기 때문에 적절하게 사용해야 한다. 피고용인의 소득을 올리는 방법은 임금인상이다.


http://franchisor.tistory.com/entry/%EC%9D%8C%EC%8B%9D%EC%A0%90-%EA%B2%BD%EC%98%81%EA%B3%BC-%EC%A0%81%EC%A0%95-%EC%9D%B8%EA%B1%B4%EB%B9%84-%EB%B9%84%EC%9C%A8






https://encrypted.google.com/url?sa=t&source=web&cd=17&ved=0CEAQFjAGOAo&url=http%3A%2F%2Fwww.investkorea.org%2FInvestKoreaWar%2Fwork%2Fik%2Fkor%2Flr%2Flr_down1.jsp%3Ffilename%3D20050811093108_1.hwp%26path%3D20061205&rct=j&q=%EC%82%AC%EC%97%85%EC%B2%B4%20%EC%9D%B8%EA%B1%B4%EB%B9%84%20%EB%B9%84%EC%A4%91&ei=OUwgTpwBzsetB4yjoIAC&usg=AFQjCNFzgDDuCM57V63feURPN4bzfTKGCw&cad=rja

이런 링크를 참고한다면 인건비 비중이 20%정도 된다는 사실을 알 수 있다. 만약 임금을 5%인상



[각주:

1

]



하게 된다면 단순 계산으로 인건비 비중은 21%로, 약 1%정도 올라가게 된다.

예를 들어, 삼성전자를 생각해 보자.





http://www.ytn.co.kr/_ln/0102_201102070014414076



삼성전자의 매출액이 154조원인데, 여기서 1%는 약 1조5천억원이 된다.


http://www.ohmynews.com/NWS_Web/view/at_pg.aspx?CNTN_CD=A0000768192


삼성전자의 고용인 수는 대략 8만명 정도인듯 한데, 계산을 쉽게 하기 위해 10만명이라고 가정하자. 1조5천억원이 10만명에게 균등분할된다고 하면 1500만원이 된다.



[각주:

2

]


연봉이 1500만원 인상된다면 충분하지는 않겠지만 서민들이 전세대란을 탈출하는데 꽤 도움이 될 수 있는 금액이라고 생각한다. 물론 모든 회사가 삼성전자처럼 매출을 낼 수는 없으므로 이 돈의 절반도 안되는 수준의 임금인상이 가능할 수 있다. 그러나, 그정도 돈이라도 인상된다면 어떻게 되지 않을까?

자, 결국 논의는 다시 최저임금으로 돌아오게 된다. 그 얘기는 다음에 해보도록 하고, 어쨌든 나는 정부가 서민을 차곡차곡 줄여나가고 있는 건 맞다고 생각한다.



[각주:

3

]



  1. 올해 최저임금은 약 6%올라갔다. 이 비율을 반영하여 5%정도 올라간다고 쳐 보자.

    [본문으로]
  2. 물론 인건비인 20%를 10만명으로 나누게 되면 삼성전자 평균 연봉이 3억이라는 무시무시한 결과가 나온다. http://www.zdnet.co.kr/news/news_view.asp?artice_id=20110630144546 이 기사를 보면 삼성전자 평균연봉은 대략 1억원정도 된다. 그 얘기는 결국 인건비 비중이 20%가 안된다는 뜻이다. 그리고 삼성전자는 한국 대표 기업이니까 말해본 “예제”일 뿐이다. 욕하자고 얘기한거 아님.

    [본문으로]
  3. 그 결과 어느 계층이 늘어나고 있는지는 잘 모르겠지만.

    [본문으로]