우분투 7.10 설명서를 보면서… 에 대한 트랙백과 오해

어제 썼던 우분투 설명서에 대한 글을 트랙백하였더니 블로그 주인이신 분께서 이런 글을… -_-;;;

짜집기에 불과하다고 평가절하했다고 화가 나신 듯 한데..

‘우와… 여기저기 흩어져 있는 정보를 정말 잘 모아놓으셨네~’ 라고 쓴 부분 때문인 것 같다.

그러나, 설명서를 보면 글에서 쓰신 프로그램 실행과 순서에 대한 고민 뿐만 아니라 다른 세세한 부분에도 신경쓴 부분이 많다는 걸 알 수 있다.

그런 부분에 대해서 평가절하하거나 글쓴이의 수고를 무시하려 했던 것은 당연히 아니다. 저런 글을 블로그에 꾸준히 게재하는 것만으로도 많은 수고와 노력이 들어 갔음은 나 역시 잘 알고 있다.

내가 저 문구를 썼을 때의 원래 의도는 글쓴이가 잘 정리하고 쓴 팁이나 자료들 중 상당수가 이미 인터넷 상의 페이지나 포럼, 위키 등에 이미 있던 것들이지만, 그런 자료들을 찾아다닐 필요없이 저자가 정리한 우분투 설명서를 보면 될 정도로 정리가 잘 되어있다는 의미를 전달하고 싶었다.

인터넷의 자료들을 가져와서 자기 자료인양 사용하고 권리를 주장한다는 의미가 절대로 아닌데 마치 그런 의도로 내가 포스팅을 했다는 듯 내 블로그의 글 주소를 포함한 글을 보니 조금 당황스럽다.

내 블로그의 글에 sakuragi님과의 댓글 때문인지 권리에 대한 문제도 언급하고 있는데, 내용 중 언급된 부분들을 (저자가 모든 정보를 어떠한 글이나 웹페이지의 참고없이 적었다면 할 말이 없겠지만..) 자신이 정보를 얻거나 참고한 부분에 대해 언급해 주는 것이 바람직하다고 쓴 것이 그렇게나 잘못된 것인지 반문하고 싶다.

내가 라이센스를 CC-저자 표기를 썼다는 것 외에 저자가 다른 어떤 권리를 주장했다고 말한 적도 없는데 권리를 주장한다고 이야기하고 딴지를 거는 것으로만 보는 시선이 안타깝다.

내 글은 글쓴이를 독려하는 글은 아니었지만, 그렇다고 비판하거나 딴지를 걸려고 했던 글이 아니었다. 오히려 기본적으로 제공하는 우분투 한국팀에서 번역한 도움말도 많이 사용했으면 하는 바람과 저런 글이 많이 있을 수록  좋다는 것이 내 글의 주제였다.

내 의도와 다르게 오해가 생기고 저자의 기분을 상하게 하고, 나 역시 기분이 상한 것 같아 좋지 않다.

블로그의 문구 하나하나가, 말 하나하나가 어떤 오해를 낳게 하는지 뼈저리게 느끼는 새벽이다.

p.s : 나 역시 이런 댓글은 당연히 기분이 좋지 않다. 인신공격에다 하지도 않은 이야기라니.. 내가 언제 무엇을 자랑했단 말인가.

우분투 7.10 설명서를 보면서..

우분투 7.10 설명서

쭈욱 흟어보면서 든 생각은.. ‘우와… 여기저기 흩어져 있는 정보를 정말 잘 모아놓으셨네~’ 다.

여기저기 인터넷에 흩어져 있는 우분투 관련 자료들을 체계적으로 잘 정리해놓으신 것 같다.

우분투를 처음 사용하는 사용자들이 여기저기 떠돌면서 보지 않아도 될 만큼 잘되어있다.

하지만…

우분투 한국팀인 나로서는…

많은 분의 수고가 담긴(저는 별로..ㅠ) 우분투 기본 도움말(시스템-도움말 및 지원)도 많은 사용자들이 보아줬으면 좋겠다는 바람이다.

웬만한 것들은 다 있는데..

우분투 포럼 게시판의 질답란을 본 경험으로는 사용자들이 인터넷을 찾아보는 습관 때문인지 기본 도움말보다는 먼저 웹브라우저에서 검색 또는 질문만을 한다는 느낌이었다.(도움말에 있는 내용을 질문하는 분들이 참 많았던 듯 하다)

아무튼, 자료가 많을수록 사람들은 더 잘 쓸 수 있겠지.. 흐흐.. 🙂

Ctags + T(ag)list

 졸업논문 세미나를 하면서 제가 맡았던 부분인 ctags + taglist 플러그인에 대한 발표자료를 거의 그대로 옮긴 것입니다. 형식을 보시면 아시겠지만 ppt를 그대로 옮겼어요. 말로 때웠던 부분들도 글로 써두고 싶지만 귀찮아진 관계로 나중에… -_-;;;;

Ctags 소개

    여러 Source 파일들의 index(tag)를 생성하는 프로그램
    함수, 변수, 클래스 멤버, 매크로 등을 indexing함.
    생성된 tag는 여러 Text editor에서 사용가능
    현재는 exuberant-ctags라는 별도 프로젝트로 분리되었음.
    공식 홈페이지 : http://ctags.sourceforge.net

Ctags 구하기

    Source 또는 패키지 다운로드
        http://ctags.sourceforge.net
            Source 압축파일
            Source RPM
            Fedora 7 binary RPM
            윈도우즈 용 Source와 Binary

Ctags를 쓰기 위한 준비

    소스 파일이 있는 디렉토리의 최상단에서 tag 생성 -> “tags” 파일이 생성됨.

ctags -R *

    VI 설정파일(.vimrc)에 tag를 찾기 위해 다음을 추가

set tags+=./tags,../tags,../../tags,../../../tags,tags

VI + Ctags 사용 – :ts

    :ts <symbol> – <symbol>이 있는 위치를 선택하여 이동, Symbol 위에서 “g + ]” 해도 동일한 효과

:ts ctx

사용자 삽입 이미지   

VI + Ctags 사용 – :ta, ctrl-t, :tags

    :ta <symbol> – <symbol>을 찾아 이동, 소스파일의 찾을 symbol 위에서 ctrl-] 해도 됨
    :tags – 현재 tag 스택을 보여줌.

사용자 삽입 이미지

    Ctrl-t – tag 스택의 상위로(이전 위치로) 이동

taglist 소개 및 기능

    vim의 소스 코드 브라우저 플러그인
    Vim 창 안에서 함수, 클래스, 구조체, 열거형(enumeration),  매크로 정의 등을 보여줌
    Tag 창에서 tag를 선택하면, 해당 tag의 정의로 커서가 이동
    Ctags가 생성하는 tag 파일에 의존적
    공식 홈페이지 : http://vim-taglist.sourceforge.net/

Taglist 다운로드

    Sourceforge
        http://sourceforge.net/projects/vim-taglist/download

    VIM 공식 홈페이지의 스크립트
        http://vim.sourceforge.net/scripts/script.php?script_id=273

Taglist를 쓰기 위한 준비

    .vimrc 파일에 필수적으로 추가할 내용

filetype on

    .vimrc 파일에 선택적으로 추가할 내용

let Tlist_Ctags_Cmd=”/usr/bin/ctags“
let Tlist_Inc_Winwidth=0
let Tlist_Exit_OnlyWindow = 1
let Tlist_Auto_Open=1

    더 많은 정보는 매뉴얼(http://vim-taglist.sourceforge.net/manual.html) 참고

Taglist 화면(:TlistToggle)

사용자 삽입 이미지

Taglist 단축키

    <CR> – tag의 정의로 이동
    <SPACE> – tag 의 prototype을 표시
    u – tag 목록을 갱신
    x – tag list 창을 확대/축소
    + – 플딩 열기 (* – 모든 폴딩 열기)
    – – 폴딩 접기 (= – 모든 폴딩 접기)
    [[ 또는 <BACKSPACE> – 이전 파일의 시작위치로
    ]] 또는 <TAB> – 다음 파일의 시작위치로
    q – taglist 창 닫기
    <F1> – 도움말

MS에서 웹하드 5G를 무료로 쓰래요.

저는 쓸데없는 이메일 구독이 꽤 많은 편입니다. ㅋㅋ

전자신문도 구독 중인데 몇 개월을 읽지 않다가 오늘자 뉴스레터를 읽어봤더니 아래와 같은 기사가 있네요.

한국 MS “무료 웹하드 쓰세요”

MS의 스카이드라이브(http://skydrive.live.com/)에서 5기가 웹하드를 무료로 38개국에서 제공한다는 기사인데 사용자로서는 꽤 반가운 기사입니다. ㅎㅎ

뭐 지금까지 써온 방법- E-Mail 등을 이용해서 개인 자료를 보관하던) -도 나쁘지 않지만 전용 서비스를 이용하는 것도 좋은 방법이겠죠.

관심있으신 분들은 한 번 둘러보시는 것도 괜찮겠습니다. 흐흐

제목보고 낚인 글.. 고흐 VS 고갱 – 둘도 없는 친구이자 경쟁자

네이버에 들어갔다가 제목을 보고 낚인 글.

미술에 대해 잘 알지 못하는 나이지만, 고흐와 고갱이 둘도 없는 친구이자 경쟁자란 생각은 절대 들지 않는다.

오히려 고흐는 고갱에게 무시당하는 존재 같은 느낌이다.

글쓴이 역시 그런 것들을 알고 쓴 듯한데.. 왜 저런 낚시성 제목을 붙인 것인지..

제대로 낚인 기분에 왠지 씁쓸하고 기분이 나쁘다.

게다가 가장 아래에는 저런 제목으로 유명해진 것에 대해 감격하기까지.. -_-;;;

그림에 대해서 잘은 몰라도.. 고흐는 좋아하기에..

그냥그냥..

작년에 신입회원으로 참여했던 멤버십 OT! 이번엔 자치회로 갑니다^^

작년엔 삼성 S/W 멤버십 신입회원으로 OT를 참가했었는데..

올해는 자치회장이란 이름을 달고 멤버십 OT에 참가합니다. ㅎㅎ

참~ 시간 빠르네요! 신입회원들이 열심히 OT 준비 중인데 지켜보는 것도 재미있고~

걱정인 것은 가서 5~10분 정도 발표를 하라는데~ 뭘 해야 하나~ 걱정입니다.

전국 멤버십 신입회원들이 다 모이기 때문에 꽤나 많은 인원일 텐데 떨지나 않을는지.. 흐흐

암튼! 28~30일까지! 재밌을 것 같습니다!

DAEMON Tools Lite 4.11 한글 패치

pk5.dll
직접 만든 DAEMON Tools Lite 4.11 한국어 패치입니다.

이전 버전 중 어느 버전부터 옵션에 “Language”가 지원되었는지 알 수가 없어서 어느 버전에서부터 되는지는 알 수 없습니다.

설치법은 일반적으로 C:\Program Files\DAEMON Tools Lite\Lang 폴더에 해당 파일을 복사해 넣으시고 DAEMON Tools를 종료했다가 실행시키면 다음과 같이 “Option”/”Language” 에 “한국어” 가 나타납니다. 그럼 클릭해 주시면 되겠죠~
사용자 삽입 이미지
그럼 다음과 같이 메뉴들이 한글로 나타나는 것을 보실 수 있습니다^^
사용자 삽입 이미지
Pro 버전 것까지 번역해 놓으려다가 귀찮아서 해놓진 않았습니다. Lite 상에서 나타나는 것들은 다 한글로 나오길래 말이죠. ㅎㅎ

[#M_만든 과정은 여기를..|접기..| 처음에는 ResHack으로 ENU.DLL의 String Table의 스트링들을 바꿔치기 할 셈이었습니다. 근데 안쪽의 언어 설정을 수동으로 다 바꾸고 스트링들을 바꾸기엔 너무 귀찮더라구요;

그래서 Visual Studio 6로 ENU.DLL을 열어서 저장하려는 순간! 죽더군요-_-

Visual Studio 2005에서는 저장이 되는데.. DAEMON Tools 포럼에 가보니.. 공식 툴을 제공하더군요-_-..
사용자 삽입 이미지그렇게 만들었답니다. 포럼에 가보니 한국어 공식 번역자가 있던데.. 활동하고 계시진 않은가 봅니다._M#]

VI 실전에서 사용했던 테크닉 정리 by SWSSM 17기 구도훈

예전 수원 멤버십에서 신입회원 세미나 당시에 도훈이가 했던 내용인데 유용하게 정리된것 같아 blog에 따로 정리해 둡니다. 허락은 받지 않았습니다. 😛

SWSSM 17기 구도훈 2007.11.2 실전에 사용했던 테크닉 정리

1. 시작

이번 세미나에서는 vi를 다루려고 합니다. 기초적인 부분은 생략하기로 하고 코딩 시 유용한 것에 대해서 언급하려 합니다.
실제로 vi를 돌려서 어떻게 사용하는지 알아 볼 텐데 , 쓸만한 것은 체크를 해서 자기 것으로 만들었으면 좋겠습니다.

2. 화면 분할/이동, 버퍼이동

vi 고수처럼 보이게 만드는 화면 분할입니다.
모니터를 한 개 혹은 두 개 이상 쓰더라도, 가끔씩은 화면을 분할 할 필요가 있는 것 같습니다.
여기서는 윈도우를 어떻게 분할하는지 설명합니다.

윈도우 수직분할(vs)
윈도우 수평분할(sp)

윈도우 간 이동 CTRL-w + ( i, j, k,l)
윈도우 끄기 CTRL- q

윈도우 height 조정 CTRL – w – (+,-)
윈도우 width 조정 CTRL – w – (<,>)
윈도우 사이즈 같게 CTRL – w – =

다른 윈도우 화면에 놔두면서, 현 윈도우 최대한 크게 CTRL – w – |

버퍼 보기(ls)

해당 버퍼로 이동 예):1b
따라 해보기) 40vs .

3. mark 사용하기

현재 파일의 커서 위치에 마크를 해놓고 언제든지 다시 돌아올 수 있다.

마크된 리스트 보기 :marks
마크하는 방법 m{a-zA-Z}
해당 마크로 이동 ‘{a-zA-Z}

단 a-z 와 A-Z에는 차이가 있다.
‘a – ‘z 소문자는 현재파일안에서, ‘A – ‘Z 대문자는 파일들간에
A-Z 에 프로젝트에서 자주 사용하는 소스 파일을 맵핑 해놓고 바로 찾아갈 수 있다.

vi에서 특정 파일에 저장하는지 A-Z 마크내용은 vi를 재실행해도 볼수 있다.
아래의 내용을 .vimrc에 추가하면 현재 에디팅 되는 파일위치로 path가 자동 이동된다.
if(has(“autocmd”)

” Change to the directory the file in your current buffer is in
autocmd BufEnter * :cd %:p:h

endif ” has(“autocmd”)

4. 레코딩

vi를 사용하다 보면 단순 반복 작업을 할 때가 있습니다. 이때 레코딩 명령을 이요하면 유용합니다.
레코딩 시작과 끝은 q로 시작합니다

1. 레지스터에 레코딩 하는 법
명령 모드 상태에서 q 로 시작
q누르고 레지스터에 저장 가능(vi 레지스터에는 0-9a-zA-Z)
명령 모드 상태에서 q 로 끝

2. 레지스터에 저장된것 불러오는 방법
@누르고 저장된 레지스터입력
@@ 방금전 불러온 레지스터에서 불러오기

5. ctags와 같이 vi 활용하기

ctags에 여래개의 .c .h의 함수/변수/정의/선언 내용을 기록해놓고 vi에서 활용함.

따라해보세요 )
1. tags 파일 생성(c와 h파일에 해당)
ctags -R *.[ch]
2. vi가 tag파일 읽어올수 있도록 ~/.vimrc에 세팅
set tags=./tags,tags
set tags+=/usr/src/linux/tags
set tags+=../tags
set tags+=../../tags
set tags+=../../../tags
3. 사용하기
tags 파일 참조하여 함수/변수/정의/선언 위치로 이동 g], ctrl+]
돌아오기 ctrl + t
태그 스택 보기 – tag
4. 기타
cscope도 vi와 연동해서 사용합니다만 ctags랑 약간 차이가 있으니 한번 돌려보세요.

6. make 사용하기

컴파일 – :make
컴파일 결과보기:cw
!! 결과 창에서 에러 라인 선택하면 해당소스의 해당 라인으로 이동함.

90. 나머지 유용한것들

folding zf, zo
다음 괄호({},(),[])찾기 %
함수 프로토 타입 혹은 define내용을 한 줄로 보기 [i
현 파일 내에서 함수/변수/정의/선언 위치로 이동 gd,gD
현재 커서 밑에 있는 파일 에디트 – gf
이전 버퍼로 이동 ctrl-6
자동완성 ctrl + p
glibc 레퍼런스 – 함수위에서 2K(system call), 3K(standard library)
현재 라인에서 글자찾기 f(F) – 예를 들어 3을 찾는 다면 3f
대소문자 전환 u,U
정렬하기 -선택하고 sor(sor!)
현재커서위치에 있는 값 증가시키기 CTRL – A
아스키 코드 보는 방법 – ga
쉘 명령 사용 – 예제 !pwd
잠깐 쉘로 빠져 나오기 ctrl – z, 복귀는 fg
복사 붙이기 할때 사용해보세요. set paste
검색 시 대소문자 구분 무시 – set ignorecase

정말 모를 때는 help

99. 끝

추가 팁

마우스 스크롤이나 선택 복사를 하고 싶다면
:set mouse=a
특정 줄부터 줄까지 단어를 바꾸고 싶다면
:#,#s:/old/new/g
커서가 위치한 곳의 단어 찾기
Shift + 8
터미널에서 줄이 길어서 안보이면
:set wrap
Tab대신 space 사용
:set expandtab
Tab문자 간격
:set ts=8
Shif width
:set sw=8
한번에 다중 윈도우에 각각의 파일 열면서 시작하기
sp로? vim -o a b c
또는 vs로? vim -O a b c

makefile 견본

makefile 견본

.SUFFIXES : .c .o

CC = gcc

INC =
LIBS =
CFLAGS = -g $(INC)

OBJS = tbl.o
SRCS = tbl.c

TARGET = table

all : $(TARGET)

$(TARGET) : $(OBJS)
    $(CC) -o $@ $(OBJS) $(LIBS)

dep :
    gccmakedep $(INC) $(SRCS)

clean :
    rm -rf $(OBJS) $(TARGET) core

new :
    $(MAKE) clean
    $(MAKE)

자주 쓰는데도 항상 까먹는  makefile!-_-/

PROGNAME = calctest
SRCS = $(wildcard *.c)
OBJS = $(patsubst %.c, %.o, $(SRCS))

CC = gcc
CFLAGS = -Wall
LDFLAGS =

$(PROGNAME): $(OBJS)
    $(CC) $(LDFLAGS) -o $PROGNAME $^

clean:
    rm -f $(PROGNAME) $(OBJS) depend

depend: $(SRCS)
    $(CC) $(CFLAGS) -MM $^ > $@

-include depend

참고 : http://www.viper.pe.kr/docs/make-ko/make-ko_8.html