2009년 3월 26일 목요일

통신 소프트웨어 설계 과목 중간 고사~

대학원 중간고사 마자막 시험을 망쳐버렸다.
결정적인 원인은 열심히 안해서이지만 한두살먹은 어린이도 아니고 왜 열심히 하지 않았을까? 분석해보면
가장 큰 이유는
1. 배운 내용의 무가치하다는 회의감
2. 내용이 너무 만만하다는 안일함
3. 시험 배점이 이렇게 높은 줄 모르고 적당히 하고 기말 잘보면 되겠지라는 생각
4. 늦잠;;

 담부터는 빡세더라도 도전 욕구를 자극하는 과목을 들어야지, 다시는 이딴 과목 안듣는다.
대학원에서 이런 과목이 있다는 것 자체가 회의

그렇지만 포기는 이름
기말고사 때는 열심히 해야지
그런데 과연 열심히 할 수 있을까?

2009년 3월 6일 금요일

통신 보안법

좋은 점들
1. 국가 안보 , 범죄 수사를 제외한 감청 불가
  반대 하는 이유 :
  예전에 이미 정권 유지를 위해 악용되었음.
  미네르바의 경우 처럼 논란의 여지가 있음
 
2. 국가 정보원장의 권한을 설정
그리고 이전에 어설픈 법을 개선했음


이상한 점 :
 나의 통신 내역이 감청이 되었는지 안되었는지 알권리가 있음
 실제로 강호순을 검거할 때 군포 여대생 검색한 1000 중에서 추려내었다고 하지만 1000명 정도에 통지를 했는지 의문



 통신비밀보호법개정안(한나라당이한성의원안 )
 http://sadgagman.tistory.com/attachment/499aff3743086BL.hwp


2009년 2월 17일 화요일

현재 대학원 생활 2주일 째

1. 많은 것을 알기를 바라면서 지금 재미있는 TV 프로그램을 보면서 히히덕 거리고 있음

2. 하루면 할 것이라고 생각하고 미루고 미루다가 결국 전날 밤 늦게 까지하다 담 날 제대로 된 생활을 못하고 있음
( 꾸벅꾸벅  )

3. 일찍 일어나야지 하면서 2시전에는 안자고 아침 수업들은 항상 비몽사몽 상태로 들음

4. 수업이 없는 공강시간에  하면 되겠지 하면서 막상 공강 시간들에 빈둥빈둥 시간을 때우고 있음

5. 의욕이 앞서 열심히 해야겠다는 마음을 가진지 1주일도 안가고 지금은 패닉상태에 빠졌음

6. 2주일만에 식사시간 후 대놓고 책상에 엎드리고 졸기 시작했음

7. 뱃살을 빼야지 하고 아침마다 운동하면서 야식을 항상 먹고 있음

8. 난 항상 벼락치기를 못하는 steady한 습관이 필요하다고 생각은 하면서 매번 벼락치기 하고 있음

도대체 난 먼가 ? ;;

2008년 11월 4일 화요일

vim 자동 완성

원문출처:
 http://monac.egloos.com/1936134


autocomplpop.vim : Automatically open the popup menu for completion
http://www.vim.org/scripts/script.php?script_id=1879

2007년 5월에 등장한 플러그인입니다.
autocomplpop.vim 파일을 자신의 홈 ~/.vim/plugin 디렉터리에 복사합니다. 그러면 끝입니다.

C 언어를 쓰거나, 파이썬을 쓰거나, 루비를 쓰거나 잘 동작합니다. 루비라면 apt-get install vim-ruby를 설치하면 잘 동작합니다.

엔터키를 입력하면 완성되지만 비주얼 스튜디오를 쓰던 손맛이 있어서 탭키가 익숙합니다. 그래서 ~/.vimrc에 다음을 추가합니다.

function! InsertTabWrapper()
  let col = col('.') - 1
  if !col || getline('.')[col-1]!~'\k'
    return "\<TAB>"
  else
    if pumvisible()
      return "\<C-N>"
    else
      return "\<C-N>\<C-P>"
    end
  endif
endfunction
inoremap <tab> <c-r>=InsertTabWrapper()<cr>

이 스크립트는 http://blog.blueblack.net/item_164에서 가져왔습니다. ^^;

그런데 조금 문제가 있습니다. 엔터키를 입력해도 항상 코드가 자동 완성됩니다. printf가 아니라 print만 입력하고 싶어도 자꾸 printf만 되죠. 그래서 위 코드를 다시 아래처럼 바꿉니다.

function! InsertTabWrapper()
  let col = col('.') - 1
  if !col || getline('.')[col-1]!~'\k'
    return "\<TAB>"
  else
    if pumvisible()
      return "\<C-P>"
    else
      return "\<C-N>\<C-P>"
    end
  endif
endfunction

inoremap <tab> <c-r>=InsertTabWrapper()<cr>
inoremap <expr> <CR> pumvisible() ? "<C-Y><CR>" : "<CR>"

이렇게하면 코드 완성은 탭키로만하고 엔터키를 누르면 자동 완성은 하지 않고 줄바꿈을 할 수 있습니다.

이 플러그인은 현재까지 다운로드 수가 3257밖에 안 되었습니다. 이런 건 좀 널리 써줘야 해요~

팝업창의 색상 설정은 .vimrc에 다음과 같이 하면 됩니다.

hi Pmenu guibg=#666666
hi PmenuSel guibg=#8cd0d3 guifg=#666666
hi PmenuSbar guibg=#333333

autocomplpop.vim
taglist.vim

taglist 설정

출처
http://withover.com/blog/271?TSSESSIONwithovercomblog=2d4636316b3f6e581c606aee730e9506#recentTrackbacks

설치방법

1. ctags 를 설치한다.

# yum install ctags

2. 아래의 주소에서 taglistxx.zip을 다운받는다

http://vim.sourceforge.net/scripts/script.php?script_id=273 

3. taglistxx.zip의 압축을 풀면, 두 개의 파일(taglist.txt, taglist.vim)이 나오는데 폴더에 각각 복사를 한다.
.vim폴더가 없을 경우 mkdir .vim 으로 생성한다. ( 계정명 withover )

( .vim 폴더가 없을 경우 )
$ mkdir .vim
$ mkdir .vim/doc
$ mkdir .vim/plugin

( 복사되어야 할 파일과 위치 )
/home/withover/.vim/doc/taglist.txt
/home/withover/.vim/plugin/taglist.vim

4. doc 디렉토리로 이동 → vim 실행 → :helptags . 입력

$ cd /home/withover/.vim/doc/
$ vim
( vim 환경에서 )
:helptags .

5. vi 환경에서 :TlistToggle 을 입력하면 코글창을 켜고 끌 수 있다.

주의 - FreeBSD 를 이용하고 있는 경우라면, .vimrc에 아래 설정을 추가한다.

let Tlist_Ctags_Cmd = "/usr/local/bin/exctags"

옵션 .vimrc에 추가

let Tlist_Use_Right_Window = 1   “분할 창을 오른쪽에 배치”
let Tlist_Inc_Winwidth = 0           “콘솔창에서 vim 사용하기”
let Tlist_Auto_Open = 1              "vi 실행시 TagList 자동실행"

다양한 vim 플러그인

http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=&order_by=rating&direction=descending&search=search


ctag 설정


먼저 서두에 제가 작성한 글이 아님을 밝힙니다.
여기서 따옴
http://4ellene.net/tt/1198

사용하기
        
=====================================================
현재 커널 분석이 필요없으므로 일단 패스
ubuntu에서는 커널 upgrade시 /usr/src/kernel folder 이름이 바뀌므로
자칫하다가는 dummy 값을 symbolic link 해줄까봐 나중에 필요할 때 추가해야 겠음

    = > 우선 커널이 있는 폴더로 이동 합니다
           $cd /usr/src/linux/ <== ( 전 linux로 심볼릭 링크가 돼어 있습니다 안돼어 있다면
           심볼릭 링크를 만드셔도 돼고 직접 경로를 다 입력 하셔도 상관없습니다)
           심볼릭 링크 만들기 -> ln -s  /usr/src/커널폴더명 linux
           커널 폴더로 이동했으면 ctags -R 을 입력하여 tags 파일을 생성합니다
           시간이 좀 걸리는데 ls로  tags 파일이 생성 된걸 확인 합니다



<extra 기능 >

ex 모드 -> vi 에서 : 을 눌러서 명령을 입력 하는 모드를 말합니다
ex 모드에서 :tj 함수명 이나 구조체명 (왜 tj 인가 ?  tags jump 약어)
(찾고자 하는 함수명이나 구조체 이름등을 입력 하면 관력 이름 함수나 구조제..정보가 나타 납니다 )
보통 한두가개 아닌경우 스페이스바를 누르면 목록이 더나오며 d 를 누를 경우 한페이지씩..
보여 줍니다 나갈때는 q로 나갈수 있습니다 그럼 <CR> 이 나오는데 여기서 찾은 함수나 구조체
번호를 입력 하면 자동으로 점프합니다

다른 방법으로 가는 방법은 커널 소스를 vi열어서 분석하다가 함수 원형이나 구조체 이름에서
ctrl + ] 를 누르면 자동으로 태그를 찾아 갑니다
이전으로 다시 돌아 올때는 ctrl + t 를 사용 해서 돌아 올수 있습니다

ex모드 : sts 함수명 , 구조체명
위에서 설명한 tj와 비슷 하지만 한가지 다른점이 수평창분활을 해서 결과를 보여 줍니다

이외 명령이 더 있지만 실제 이거만 알아도 충분 합니다 나머지 이전으로 돌아가기 이런건..
거의 실제 사용 되지도 않습니다 위에 설명한 4가지 방법이 주로 쓰는 방법입니다.