세 명의 사기꾼


세 명의 사기꾼
스피노자의 정신 지음, 성귀수 옮김/생각의나무

 

예전에 누가 재밌게 읽었다고 해서 산 책인데, 오늘 다시 읽었다. 자세히 읽지는 않고 대강 훑었다.

여기서 말하는 세 명은 모세, 예수, 마호메트로 각각 유대교, 기독교, 이슬람교의 대표인물이다. 책은 그냥 그 세 종교와 인물을 싸잡아 비아냥 거린다. 읽다보니 요즘 읽은 리처드 도킨스의 만들어진 신이 생각났다.

그 책에서도 저자가 일단, 그 유일신을 가진 세 종교를 대 놓고 비판하는데 우연인가? 아님 스스로 깨우쳤다 생각하는 사람들은 유일신을 상정하는 것이 기본적으로 못마땅한 것일지.

3SAT 변종들

( http://geomblog.blogspot.com/2008/03/joys-of-nae-sat.html 이 글을 보면서 생각난 김에 정리해 두는 중임)

 

어려운 문제임을 증명할 때, 그 문제를 풀 수 있다면, 3SAT도 풀 수 있음을 보이면 된다. 3SAT은 어려운 문제이므로, 그 증명하고자 하는 문제가 적어도 어려운 3SAT만큼이나 어렵다는 것을 보이는 것이다. 즉, 3SAT의 어떤 문제를 요령껏 바꾸어 어렵다고 증명하고 싶은 문제로 바꾸는 데 성공한다면, 증명하고 싶은 문제를 풀어냄으로서 3SAT을 풀수 있기 때문에, 그 문제는 3SAT보다 쉽지는 않다는 것이다.

 

3SAT의 정의는 이렇다. 3개의 참 혹은 거짓의 variable이 OR로 연결된 clause이 몇개 있는데 이 모든 clause가 모두 참이 되도록 하는 variable의 조합을 찾아라. 예를 들어 3SAT문제의 instance가 (x+y+z’)(a+b’+c)(x’+b+z) 로 주어졌다면, 여기에 참여한 literal들 x,y,z,a,b,c에 적당한 true, false를 대입함으로서 이 식의 모든 절 clause 세개가 참이 되도록 하는 것이다. 여기서 ‘은 negation이고 +는 logical OR, ()로 구분된 절사이에는 logical AND가 있다. 이 예를 참으로 만드는 조합은 x=true, b=false, z=true, 나머지는 상관없다.

 

3SAT은 너무 일반적인 형태이기 때문에 때로는 3SAT만큼이나 어려우면서 좀 더 제약된 형태를 이용하는 것이 편리한 경우가 있다. 이어지는 문제들은 그런 것들이다.

  

Planar 3SAT, 3SAT인데 plane graph로 표시 할 수 있는 것. Graph를 하나 만드는데 그 그래프의 노드는 variable과 clause이다. Variable이 어떤 clause에 참 혹은 거짓으로 참여하고 있다면그 둘 사이에 edge를 둔다. 그리고, clause끼리 연결한 loop을 그린다. 이loop과 graph의 edge가 교차하지 않게 plane에 배열할 수 있으면 그 3SAT은 Planar 3SAT이고, 그것역시 3SAT만큼이나 어렵다. 즉, 누군가Planar 3SAT이 3SAT만큼이나 어렵다고 증명해 두었다는 얘기다. Geometry가 섞인 문제가 어렵다고 증명을 할 때는 그냥 3SAT보다 Planarity가 가미된 것이 편한 경우가 많다.

  

PN-Planar 3SAT, Planar 3SAT중에서 clause들을 연결한 loop을 기준으로 안쪽에는 참으로 이용된 variable을 바깥쪽에는 거짓으로 이용된 variable을 배치하는 planar graphs가 가능한 것. 즉, 어떤 variable도 참과 거짓 두가지로 쓰이지는 않았다는 얘기.

  

1IN3SAT, 각 clause의 참인 variable이 하나만 존재하는 것.

  

Monotone 1IN3SAT, 모든 variable이 참으로만 clause에 참여한 것.

  

NAE3SAT , Not All Equal 3SAT각 clause의 literal 값이 모두 같지는 않다. 어떤 clause에 있어서 참여한 literal이 모두 거짓일 수는 없기 때문에 이 말은 하나만 참이던지, 두개만 참이어야 한다.

  

Planar 1IN3SAT, Planar3SAT 이면서 동시에 1IN3SAT인 것. 

 

Monotone NAE3SAT , Monotone이면서 NAE인 것

  

MAX 3SAT, 가능한 많은 clause를 참으로 만들자는 문제.

 

공교롭게도 Planar NAE3SAT은 더 이상 어렵지 않다.

Ubuntu OpenSSH 취약점 발견!!!

http://www.ubuntu.com/usn/usn-612-2

 

Debian (그러니 당연히 Ubuntu)에 포함된 OpenSSH패키지가 사용하는 Random Generator가 특정 암호를 다른 것 보다 자주 내보내는 문제가 있어서, 패키지를 패치하고 그 특정 암호가 쓰였다면 바꾸기를 권고하고 있다.

 

여럿이 함께 쓰는 학교 컴퓨터에서 ssh-vulnkey -a 를 돌려보니까 COMPROMISED가 몇개씩 나왔다.

게다가 몇개는 Unknown이라니 찝찝하게스리..  이것들도 새로 만들어야되겠다.

bluehost 에서 제로보드 쓰기

http://www.bluehost.com/ 1년이나 2년 계약하면 한달에 $7로 1.5 TB를 쓸 수 있다.
지금 교회 홈페이지는 비슷한 가격에 2.5GB를 주는데 그것에 비하면 거의 뭐 넘쳐나는구나.

문제는, 제로보드(version4)는 707 permission을 요구하는데,
permission을 그렇게 설정할 수는 있으나 보안을 위해서
other writable script 파일에 접근하는 경우, Internal Error를 내도록 설정되었다는 것이다.

이런 경우 해결법.
– 설치 할 때, install.php대신 install1.php를 실행한다.
– 첨부파일이 저장되는 폴더의 permission을 705로 바꿔준다. 첨부 파일 폴더가 707이 되는데, 이것도 문제가 된다.

euc-kr로 저장된 게시판 내용 utf-8로 바꿀때 팁.
 – 옛날 제로보드를 보면 mysql db의 charset은 latin1이고, 실제 데이터는 euc-kr이다.
 – iconv를 쓰면 이따금씩 INSERT문장중에 따옴표가 짝이 맞지 않아 import하다가 문제가 생기는 경우가 있다. 에러나는 줄을 자세히 보고 고쳐준다.
 – mysqldump를 하면 sql중에 insert values 문장이 여러 레코드를 한번에 넣는데 (이러면 사람이 읽기 힘듬) 옵션중에 –skip-opt를 하면 한 레코드씩 넣는다.
 – 들어갈 db를 utf8으로 해 두고, 변경된 dump를 밀어넣어준다. 이 때 중요한 건 –default-character-set=utf8 를 주어야 한다는 거.

zeroboard xe는 별 문제 없이 돌아간다.