기반코드


프로그래밍이 어려운 이유.

1. 입자 물리학자 다음으로 많은 평균 지식습득을 요구하는 직업임(출처는 나도 찾는중) 
오늘 주식 관리 프로그램 만들며 주식 이론 공부하다, 내일 경매 프로그램 만들며 법률 공부해야 하는 직업임. 


2.  프로그램은 기본 구성 요소는 Statement, Condition, Loop 인데, 
(다른거 제쳐두고) condition이 하나 늘때마다 2^n승으로 case가 증가한다.  그런데 condition이 끝나질 않아........

간단히  man/woman, child/adult, black/white/eastern 조건을 가지는 시나리오만 생각해도 2*2*3 = 12개의 케이스가 발생한다 
그런데 이런 condition으로 동작하는 값 십여개를 가지는 모델이 수백개인 프로그램이라면?

그리고 그런 분기가 단순히 내가 만든 코드에만 있는것도 아니고, 웹서버, 어플리케이션 서버, 필터, AOP, DNS, 라우터.. 다양한 시스템 분기도 많다면? 

3. 같은 사람끼리도 언어와 문법이 다르면 그 언어로 생각하는게 어려운데, 사람의 문제를 기계의 언어와 문법으로 표현하고 문제를 풀어내는게 게 쉬울까?

Hello, How area you? Fine thank you 는 하루면 배울수 있지 .

4. 요즘 프로그래머...한번에 하나의 언어/기술만 쓰는것도 아니다. 
SQL+XML(Spring, Struts 설정등)+Java+JSP+HTML+Javascript+jQuery(CSS) 정도는 기본으로 섞어 써야 한다. 

5. 게다가 프로그램이 한군데서만 돌아가는것도 아니다. 클라이언트 사이드와 서버사이드를 오가며 이 로직은 서버에서 실행되는 코드고, 이 로직은 클라이언트에서 실행되야하고, 이 오류는 메모리 누수때문에 나는 로우레벨 오류이고, 이 오류는 구매 시나리오 프로세스 자체의 오류이고......... 하면서 , 머리속에서 컨텍스트 스위칭 해가며 로직을 만들며 검증해야 한다. 

6. 마찬가지로 오류나 에러가 한군데서만 발생하는것도 아니다. 에러가 났는데 ajax를 잘못 짜서 난 에런지, 웹서버 오류인지, 어플리케이션 서버 오류인지, 디비 오류인지, 파일 시스템 오류인지.....

etc, etc, etc 


요약: 전문직으로 성립된 직업군은 다 그만한 이유가 있다.  
부조리 한두개 까는게 아니고 직업군 전체를 까는 짓은,  과학자가  자기 주장에 "절대(absolute)"라는 수식어를 쓰는것만큼 미친짓임. 
(그럴 가능성은 절대로 없습니다. 이 이론은 절대로 옮습니다... 라고 말하는 사람이 과학자가 아니라는것 정도는 교양으로 알아둡시다) 


SSH 터널링 -L과 -R 의 이해



ssh -R 옵션은 서버가 포트 열고 대기하다, 연결되면 내용을 클라이언트에게 전달하고,   클라이언트는 next 호스트의 port로 전달한다. 

ssh -L  옵션은 클라이언트가 포트열고 대기하다가 연결되면 서버쪽으로 전달하고 서버가 next호스트의  port에 전달한다. 



이걸 이용해서 방화벽 뒤에있는 PC가 방화벽 뒤에 있는 서버에 접속하는 방법을 보이자면 

물론 Private Server가  SSH Client 1이 되어도 된다. 마찬가지로 Private PC가  SSH Client 2 가 되어도 된다... 라기보단 그게 일반적일거다. 


나꼼수에 대한 잘못된 이해.

결국 나꼼수도 말이죠

나꼼수가 좌파????? 
라는 말도 않되는 오해가 많이 퍼져있는데...

나꼼수는 사회적 루저들의 해적 방송임..

좌파는 사회적 루저만 하는것이라는 이상한 생각을 하는 사람들에게는 등호가 성립될지 모르겠지만

좌파 != 사회적 루저 
사회적 루저 != 좌파

임.

사회적 루저/사회적 약자가 저항하는건데 저항은 좌파만 하나? 사회적 루저/약자는 좌파만 있나? 
 
4.19 혁명이 좌파만에 의해서 일어났나?  이대로는 못살겠다라는 사람들이 일어난거지.

뭐든 좌우 구분하는 사람들에게는 잘 이해가 않갈지도 모르겠네... 흠 

GIT와 관련된 몇몇 이야기들



GIT 는 이런 것들때문에 좋아요 . 

GIT가 이런것때문에 좋은건 아니야(위 글 반반글) 


이클립스에서 GIT를 쓰는건 아직은 아닌듯. 
http://toby.epril.com/?p=805


GIT를 싫어하는 이유들. 




개인적으로 형상관리에서 브랜칭이 가지는 위험을 경험할수록 브랜칭을 하지 않을수 있다면 그 쪽을 선택하기 때문에 GIT의 장점이 좋은건 아니더라고 생각함. 

브랜칭이 문제인건  Contineous Integration에 심각한 영향을 주기 때문인데.. 긴 글은 다음글을 참조하면 좋겠다. 


맥북 프로에서 듀얼 모니터

맥북 프로를 쓰면서 몇년간 모니터 하나만 연결해서 쓰고 있었는데 
최근에 USB VGA가  1920 해상도를 지원하는 녀석들이 나오길래 질렀습니다. 

화면 갱신률이 좀 떨어지는거는 어쩔수 없지만, 꽤 쓸만하네요. 

가격은 7만 5천원입니다. 

구성은 다음과 같습니다. 
맥북프로 
  1)  mini Display Port to DVI Converter -> 24인치 
  2) USB VGA to HDMI -> HDMI-DVI Cable -> 22인치 



미국에서는  2K 해상도 지원하는 모델로 나오긴 했지만, 모니터가 지원하지 않으니 패스. 게다가 한국 배송이 않되더군요. 이베이든 아마존이든...

국내에 있는 1920 해상도 지원 모델은 3종류인데 
1) USB -> DVI
2) USB -> HDMI
3) USB -> VGA

인데 1번은 재고가 없다고 하고 3번은 아날로그라 남은 선택지가  HDMI뿐이 없더군요. 


JEUS+WEBTOB Sucks!!!! 기술


web.xml에 error 처리를 추가하는건 servelt  스펙에 따라 

<error-page>

<error-code>404</error-code>

<location>/404.html</location>

</error-page>


처럼 선언한게 된다. 


JEUS+Webtob 에서는 이게 제대로 동작하지 않는다는 문제가 있다. 

servlet spec에서는 location에 기술된 경로는  Application Root에 상대 경로라고 되어 있는데, 
JEUS+Webtob  환경에서는 Webtob로 redirect 되어 버린다는 것.  

즉 webtob에 설정된  web root (application root가 아닌)에서 404.html 파일을 찾는 오류가 발생한다. 

이게 뭐가 문제냐면 

<location>/WEB-INF/jsp/error/404.html</location>

이런식으로 설정하면 동작하지 않는다는 것이다. 

로그를 보면 webtob로 포워드 시키고 있다. 

[WEB-3651]  forward to /WEB-INF/jsp/error/404.html


그래서  web root에 해당 파일을 두면 동작한다...... -_- 

이런 기초적인  서블릿 스펙도 제대로 구현이 안되어 있는거 보니 정말 답답하ㄷ. 


진중권 예언 생각

다음 정권이 한나라당이 아닌 정권이 들어서면 논객 복귀한다에 한표. 

영혼이 고결한 사람이 할 말이 아닌말을 너무 하셨음 진중권은. 

은하영웅전설 예약 완료입니다.

은하영웅전설 예약 완료입니다.


어쩔수 없는거죠 뭐.......

오토 마우스 기술

로지텍 G1을 오토마우스로 개조 도면
NE555 타이머를 이용하는데 이게 아마 50원인가 100원 정도 했던걸로 기억한다. 


나는 대충 20회 미만의 반복을 선호하기 때문에  10K, 0~20K 가변저항을 이용하였다. 



빵보드에 일단 테스트 중. 위에서 보는 배선은 매우 단순한 편이다. 


나중에 부품이나 배선을 모두 바꿀수 있게 하기 위해 핀홀을 사용한다. 크기는 조금 커지지만 나중에 저항이나 컨덴서, 배선등을 바꿀때 편해진다. 하지만 그럴 일이 과연 있을까? ^^  



얼치기 전자공학부 출신의 형편없는 납땜질. 
 

제일 어려운건 마우스 좌클릭 버튼을 떼어내는 일이다. 나처럼 납을 많이 쓰지 않고 기계가 아주 적게 납땝을 해서 납 흡입기로 빨아들이기가 어려운데다 3군데를 모두 녹이면서 살살 빼내야 한다. 여기서 잘못하면 버튼이 망가져서 마우스 날린다. 열받는다고 오랫동안 인두 들이대지 말고 천천히 잘 해보길  
암튼 버튼을 분리했다면 가운데 핀을 앞쪽으로 구부려 케이블과 납땜한후 최대한 납작하게 만들어주고 다시 보드에 붙인후 바깥쪽 핀들에만 납땜을 해 고정한다.  여기서 최대한 납작하게 하지 않으면 케이스 덥고 나서 버튼이 계속 눌려 있는 불상사가 발생한다. 


전원을 빼오기 위한 케이블

케이블을 너무 여유있게 잘라서 지저분하지만 대충 공간만 잡고 드라이버로 고정하면 잘 동작한다. 
버튼공간이 부족해서 케이스를 덥자마자 버튼이 눌릴수 있는데 이건 알아서 잘 하기를


실제 동작 데모.  FPS 할때는 140~170정도 놓고 사용하는 편이다 

1 2 3 4 5 6 7 8 9 10 다음