반응형
노란 표지에 큼지막한 글씨의 "Are your lights on?"의 번역서가 2006년에 나왔더군요. 번역서 제목은 "대체 뭐가 문제야?"입니다. 이 책의 저자는 컨설팅의 비밀를 쓰신 제랄드 와인버그 씨가 공동 저자로 참여한 책인데요. 간단히 말하면 "문제"에 대한 책입니다. 책은 가벼워서, 들고 다니며 읽기에 좋습니다.

우리는 일상에서 늘 문제와 접하고 있습니다. 그러나 우리가 문제 자체에 대해 깊게 생각하는 일은 쉽지 않습니다. 왜냐하면 우리는 문제를 풀기에도 바쁘기(또는 바쁜 것처럼) 느껴지기 때문입니다. 이 책은 우리에게 "무엇이 문제인가?"라는 질문을 던짐으로써, "문제"에 대해 넓은 시각을 획득하게 합니다.

책의 각 장이 모두 주옥같은 교훈을 담고 있지만, 가장 마음에 들었던 장은 폴란드에 있는 할머니를 만나려 하는 여자 분의 이야기가 담긴 장이었습니다. (몇 장인지는 정확히 기억이 나지 않네요.) 제일 감동적이었고, 도움이 많이 되는 장이었죠.

이 책 또한 컨설팅의 비밀처럼, 이야기를 통해 글의 전개를 풀어 나가는 방식을 취하고 있습니다. 그래서 책 내부에는 이야기와 관련된 익살스런 삽화들이 수록되어 있죠. 그래서 책을 읽는 내내 즐거운 이야기를 듣는다는 마음으로 읽을 수 있었죠. 문제와 마주치는 사람 누구든 한 번 읽어 보실 것을 권하고 싶은 책입니다.
대체 뭐가 문제야 상세보기
도널드 고즈 , 제랄드 와인버그 지음 | 인사이트 펴냄
문제 해결에 관한 창의적 사고를 길러주는 6가지 질문. 이 책은 복잡한 문제 해결과정일수록 해결보다 문제 정의가 중요함을 일깨워준다. 저자는무엇이 문제인지를 먼저 인식하고 그것을 분명하게 정의하는 것이 진정한 문제 해결능력이며 창의적 문제 해결의 기본임을 설명한다. 그리고 주인공들의 일화를 통해 이 책이 제시하는 6가지 질문에서 해결해야 할 문제가 무엇인지 알려주고, 문제해결 상황에서 맞닥뜨리는 수많은 난관

반응형
반응형
책을 받은 지 3개월이 넘었고, 학기말이다 뭐다 하면서 그동안 CSS 마스터 전략을 제대로 읽지 못했어요. 그래서 이번에 한 번 부지런하게 읽어봐야겠다고 생각해서 한 번 쭉 읽었습니다. 모든 부분을 자세히 이해하면서 넘어가려면 끝까지 못 읽을 것 같아서, 그냥 끝까지 책을 한 번 두루 살펴 보았죠.

우선, 책을 쓴 사람은 기본적인 컴퓨터 활용능력과, (X)HTML에 대한 어느 정도의 지식이 있는 사람을 대상으로 한 것으로 보입니다. 1장에서 다시 짚어 주기는 하지만, 진도의 상승폭이 상당히 빠르기 때문이죠. 이미지, 링크, 레이아웃 등으로 CSS 사용의 범주를 기준으로 나누어서 설명하는 게 특징입니다. 이런 방식은 나중에 CSS에 대해 참고하고자 할 때, 편리하게 작용하겠죠. 비록 인터넷 익스플로러 버전 6 이하에서는 CSS의 기능(속성선택자도 그 중 하나)을 완벽하게 지원하지 않지만, 속성선택자를 이용해 외부링크, PDF 아이콘을 동적으로 만들어 주는 게 신기했습니다. 리모트 롤오버 기능도 인상 깊었습니다. 어떻게 활용하느냐에 따라 넘길 수 있는 사진첩도 만들 수 있고, 상단메뉴 위에 올리면 부속메뉴가 나오도록 할 수 있고. 학교 도서관 홈페이지에서는 자바스크립트를 이용해서 이런 처리를 하는데, 파이어폭스에서는 제대로 작동하지 않았습니다. 그 때 이런 기능을 사용하면 대안적으로 해결할 수 있지 않을까 생각했어요.

뒷 부분에는 핵과 필터에 관한 내용이 나옵니다. 처음에는 그 의미를 이해해 보려고 했지만, 상당히 어려웠습니다. 브라우저 간의 호환성을 어떻게 지킬 것인가에 대한, 사람들의 고민과 그 결과가 담겨 있습니다.

부록에는 앞에서 배운 내용을 기초로 하여 준-실전용 페이지를 만드는 연습을 합니다. 이 부분에서는 레이아웃을 단 형식으로 배치하는 것이 인상깊었습니다. 음수 마진 값을 적절히 활용하는 사례에 대해 조금 더 구체적으로 볼 수 있었습니다.

에이콘 출판사에서 나온 방탄웹과 실용예제로 배우는 웹표준은 아직 읽지 못했는데, 기회가 된다면 이 책들도 읽어보고 싶네요.
CSS 마스터 전략(고급 웹 표준 사이트 제작을 위한) 상세보기
앤디 버드 지음 | 에이콘출판 펴냄
CSS 활용서. 이 책은 CSS 기본 개념을 정리해 의미 있는 마크업 작성의 중요성, 코드를 잘 구조화해서 유지보수가 용이하게 하는 방법, CSS 레이아웃 모델의 동작원리 등을 다룬다. 다양한 예제통해 실무에 바로 적용할 수 있는 실전 기법을 익힐 수 있도록 했다. 《CSS 마스터 전략》은 CSS 기본에 대한 핵심 정리와 이미지, 링크, 리스트 처리나 폼, 데이터 테이블 같은 핵심적인 CSS 기법을 다루고, 핵, 필터, 브라우저 버그

반응형
반응형

1.2-1 응용프로그램: 웹 브라우저, HTML을 읽어와서 태그에 맞게 해석하여 화면에 출력하는 알고리즘이 필요하다. HTML 태그를 읽어와서, 정규식 등을 이용해 파싱하고 이 엘리먼트에 대응하는 출력 형식을 판단한 후 화면에 나타내는 기능.


1.2-2 8n2 과 64nlgn 여기서 lgn=log2n이다. n이 무한히 커질 때, 8n2이 64nlgn보다 커질 것이고, 두 값이 같은 점이 8n2이 64nlgn을 앞지르는 지점이다. n 자리에 2의 거듭제곱 꼴을 넣고 그 수는 x라고 할 때 8n은 23+2x 64nlgn은 x*26+x이다.  x에 8을 대입할 경우 2의 지수가 19로 같다. 따라서 n은 28 즉 256보다 클 때 8n2이 64lgn보다 커진다.


1.2-3 100n2이 2n보다 클 경우 n의 최소치를 구하려면 대입해서 범위를 좁힌다. 14를 대입할 경우 100n2는 19600 2n는 16384가 나와서 앞 쪽이 크지만, 15를 대입하면 100n2는 22500 2n는 32678이 나와서 큰 정도가 뒤집어진다. 계산 횟수는 정수이므로, 최소값 n은 14이다.

이 글은 스프링노트에서 작성되었습니다.

반응형
반응형

1.1-1 정렬 문제가 발생하는 현실 세계의 사례에는 사전 표제어 들이 멋대로 흩어진 데이터에서 국어같으면 ㄱ, ㄴ, ㄷ..  순으로 정렬해야 하고, ㄱ 내부에서는 ㅏ, ㅑ, ㅓ.. 순으로 정렬해야 하는 문제가 발생한다. 영어사전이라면 맨 처음 글자를 a, b, c .. 순으로 정렬하고 바로 다음 글자도 앞과 같은 순으로 정렬해야 하는 문제가 발생한다.

1.1-2 속도 외에 효율성을 평가할 만한 다른 척도에는 소모하는 메모리 공간, 알고리즘이 요구하는 통신 대역, 알고리즘이 요구하는 하드웨어 자원 등이다.

1.1-3 자료구조
연결리스트  장점은 자료의 추가와 삭제가 빠르다. 단점은 특정 데이터를 찾으려고 할 때 순차적으로 찾아야 하므로, 느리다.

1.1-4 최단 경로 문제와 순회 판매원 문제는 거리를 계산하고, 짧은 경로를 목적으로 한다는 점이 비슷하다. 다른 점은 최단 경로 문제는 출발지에서 목적지로 가는 경우이지만, 순회 판매원 문제는 물건을 여러 지점에서 판매하고 다시 원래 지점으로 돌아온다는 점이 있다. 최단 경로 문제는 효율적 해결 방법이 있으나, 순회 판매원 문제는 어느 정도 좋은(최적의 알고리즘은 아닌) 해결 방법이 있다.

1.1-5 최적의 해만이 의미 있는 문제: 전자 상거래에서 보호가 필요한 정보를 안전하게 관리하는 알고리즘
근접한 해를 구해도 충분한 문제: 인터넷에서 특정 정보가 있는 페이지를 검색하는 알고리즘

이 글은 스프링노트에서 작성되었습니다.

반응형
반응형
"Ship it! 성공적인 소프트웨어 개발 프로젝트를 위한 실용가이드"라는 책이 "위키북스"에서 번역되어 나온다고 합니다. 번역해주신 분은 마이크로소프트웨어에 커뮤니티 노트를 기고하시는 분입니다. (http://kaistizen.net/) 기대됩니다! 이 책의 원서는 Pragmatic Bookshelf에서 나왔다고 합니다. Ship It!: A Practical Guide to Successful Software Projects(강컴)

아쉬운 점은, 다른 번역서처럼 디자인이 일관되지 않아서 같은 시리즈인지 언뜻 구분하기는 쉽지 않다는 것입니다. 그래도 이런 좋은 책이 번역되어서, 여러 사람들에게 읽혀질 수 있다는 게 좋습니다.
반응형
반응형
Ajax라는 용어가 있습니다. 프로그래밍 분야에서 주로 쓰이는 용어로, Asynchronous JavaScript and XML의 첫 머리에 오는 글자만을 모아서 Ajax라고 이름이 붙었습니다. 웹 애플리케이션을 개발할 때 쓰일 수 있는 개발 기술입니다.
Ajax (programming)

영어사전을 찾던 중 Ajax라는 항목이 있었습니다. IT 용어 사전도 아닐 터인데, 다른 뜻도 있구나 싶어서 관심 있게 살펴 보았습니다.
Ajax (mythology)
그리스 신화에 등장하는 트로이 전쟁 때의 영웅이라고 합니다. 표준국어대사전에는 아약스, 아이아스라는 표제어로 소개됩니다. 호메로스의 일리아드, 오디세이에도 등장한다고 하고요. 텔라몬과 페리보이아의 아들로서, 살라미스의 왕이었다고 합니다.

눈길을 끄는 것은, 국어사전에 나오는 아이아스의 영문명은 aeas인데, 위키피디어에 나오는 아이아스는 aias라는 것입니다. 검색엔진 구글에서 aias+greek과 aeas+greek으로 검색한 결과 수만을 볼 때 전자가 우세하기는 합니다. 그렇지만 저로서는 무엇이 옳은지는 모르겠네요.
반응형
반응형
iriver in sek2007

toshiba in sek2007

lg in sek2007

sek2007

hp in linux world korea 2007

iluv in sek2007

qualcomm in sek2007

microsoft in sek2007

samsung in sek2007

kt in sek2007

ulug in linux world korea 2007

ulug in linux world korea 2007

redhat in linux world korea 2007

반응형
반응형
web application conference 2007

web application conference 2007

web application conference 2007 schedule

web application conference 2007

booth in front of web application conference 2007

반응형
반응형
linux world korea 2007

linux world korea 2007

ulug in linux world korea  2007

ulug in linux world korea 2007

penguin in linux world korea 2007
반응형
반응형

문자열 치환

:%s/abc/def/g abc가 def로 전역에서 바뀐다

:%s/abc/def/c 검사

디렉토리 띄우기

:vs ./ 현재 디렉토리 띄워줌

:(숫자)vs ./ 입력한 숫자 만큼 조정된 크기의 창으로 현재 디렉토리를 띄위 줌

ex) :30vs ./

디렉토리 목록이 뜨는데 방향키로 왔다갔다 하면서 폴더 간에 이동도 하고 파일도 열 수 있다.

빠르게 괄호 파악하기

{} () [] 간에 이동할 때 그 기호 위에서 %기호 사용

괄호 많이 써놓고 어떤 괄호가 어디에 걸리는지 헷갈릴 때 좋다.

폴딩 기능

  1. visual block 잡기: ctrl+v를 원하는 블럭의 첫 뿐에서 입력한 후 방향키로 원하는 만큼 블럭을 잡는다.
    1. 윈도에서는 ctrl+v가 붙여넣기 단축키이기 때문에 이 키를 사용 못하는 경우가 있는데, http://vi.kldp.org/jsboard/read.php?table=qna2006&no=2240&page=2 을 참고하면 해법이 나와있다.
    2. ctrl+v는 visual block을 직사각형 형태로 잡아준다. v만 사용하면 단어마다 V(shift+v)는 줄마다 visual block을 잡는다.
  2. (명령모드에서)zf를 이용하면 해당영역이 접힌다.
  3. zo를 사용하면 접힌 영역을 원상태로 복구할 수 잇다.
  4. zc를 사용하면 해당영역을 다시 접을 수 있다
  5. 다중 접기를 허용함로 접은 구역을 다시 접을 수도 있다. //더 자세한 내용은 참고 자료를;;

파일마다 탭 크기 따로 지정

html: <!-- vi: set ts=8 sts=2 sw=2: -->

C: /*vi: set ts=8 sts=2 sw=2:*/

파이썬: #vi: set ts=8 sts=2 sw=2:

파일의 최상단이 최하단에 각 소스파일의 주석 형태로 위를 넣어주면 열 때 자동으로 설정된다.

소스 정렬하기

정렬을 원하는 소스의 부분을 비주얼 블럭으로 지정하고 =키를 입력하면 자동으로 정렬이 이뤄진다. 전체는 gg=G 키를 순서대로 입력하면 된다. (멋지다!)

gg는 맨 처음으로 이동하는 명령어, G는 가장 마지막으로 이동하는 명령어, =는 선택된 내용을 인덴트하는 명령어이다 이 셋을 조합한 명령어가 위에 나온 명령어이다.

^M문자 제거

윈도는 엔터가 \r\n인데 리눅스는 \n이라서 발생하는 문제

간단하게 해결하려면 set fileformat=dos

또는 치환명령으로 :%/^M//g

여기서 ^M 문자는 ctrl+v+ctrl+m으로 입력한다. (^을 입력하는 법이 ctrl+v)

제일 간단한 방법은 pico로 열어서 저장하고 vim으로 열면 ^M문자가 제거되어 있다.

파일 변경 내역 비교

vimdiff 로 비교할 수 있다.

두 파일을 비교하려면 vi -d file1 file2 처럼 한다.

자동 완성

함수나 변수의 일부를 입력한 상태에서
ctrl+p 커서 위치에서부터 위를 향하면서 자동완성이 가능한 단어가 있는지 찾는다.
ctrl+n 아래로 내려가면서 찾는다.
변수 지어놓고 이름 까먹었거나, 정확하게 입력하려 확인차 쓰면 유용할 듯.

다수의 파일 편집

vim source01.c source02.c source03.c
그러면 source01.c가 나타난다. 두 번째 파일을 편집하려면 :b2를 입력한다
세 번째 파일 편집화면은 :b3 첫 번째는 :b1
현재의 파일을 닫으려면 :bw

셸 명령어 사용

:!명령어
잠시 빠져나가 명령이 실행된 후 다시 vim으로 돌아올 수 있다
다른 방법으로는 Ctrl+z를 이용해 셸로 빠져 나가 작업이 가능하다.
(셸의 작업 제어 기능을 쓰는 방법이다.)
fg 명령어를 이용해 다시 vim 편집 상태로 돌아온다. vim을 안 끄고 컴파일 해 볼 수 있다는 게 장점!

ctags

ctags *
현재 디렉토리에 있는 모든 파일에 관한 tags 정보를 만들어 준다.

ctags -R
만일 모든 하위 디렉토리에 대해 tags 정보를 작성하려면 위 명령어 이용.

명령어를 실행 후 tags란 파일이 생성된다.
각 필드는 탭으로 나뉜다.

  • 첫 번째 필드는 함수 이름
  • 두 번째 필드는 함수가 정의된 파일의 이름
  • 세 번째 필드는 해당 파일에서 vim이 함수명을 찾아가게 하는 vimcommand이다.
  • 네 번째 필드는 해당 함수의 타입이다. f라면 일반 C함수 c는 클래스에 선언된 멤버함수 d는 define된 값

분석 도중 모르는 함수가 나와 함수 원형으로 이동하고 싶다면 함수에 커서를 위치시키고 Ctrl +]
함수에 대한 분석을 마치고 원래 분석하던 소스 파일로 돌아오려면 Ctrl+t

http://home.postech.ac.kr/~kypark/linux-apps/vimctags.html

Reference

  1. http://wiki.kldp.org/wiki.php/VimTutorKo
  2. http://kltp.kldp.org/stories.php?story=01/02/21/6959042&topic=25
  3. http://wiki.kldp.org/wiki.php/ViEditorTips <- Copy&Paste할 때 자동인덴트 막기, 현재 작업중인 파일 HTML로 보관하기, 한 파일 여러 곳 동시에 편지하기. kldp wiki에 이렇게 유용한 문서가 많은지 몰랐어요.
  4. http://gene.kias.re.kr/~newton/wiki/moin.cgi/VimTip
  5. http://lightyellow.postech.ac.kr/~noh9pil/wordpress/?page_id=319

이 글은 스프링노트에서 작성되었습니다.

반응형

+ Recent posts