July 09, 2008
Header file and static variable in C
보통 header file에 #ifdef를 이용해서, header file이 여러번 include되는 것을 막는다. 여기서 조금 햇깔릴 수 있는 것이. 유의할 점은 이러한 과정이 전체 project 별이 아니라, 각 source file 별로 일어난 다는 것이다. 그렇기 때문에, header file에 static global variable을 정의 하게 되면 각 source file 별로 static variable이 생기게 되기 때문에 의도했던 global variable로의 역활을 할 수 없게 된다. C에서 전체 project에서 공유하기 위한 목적으로 global variable을 만들고자 할 때는, source file에서 global variable을 정의하고, 사용하는 곳에서 extern으로 해당 variable을 참조하도록 하는 것이 올바른 방법이다.
July 02, 2008
June 20, 2008
가 볼만한 레스토랑 들
Paris Grill
- Hyatt Hotel
The Restaurant
Tasty BLVD
- 압구정
Ola! (1/2/3)
The Bar: dopo
The Ninth Gate
- The Westin Chosun Hotel
Table34
Paris de Gaumont
L'Espoir (레스뿌아)
Villa Sortino (빌라소르티노)
- Italian
Buon Viaggio (본 비아지오)
Serein (써레인)
- Halloween party
L'Italia Mia (리탈리아 미아)
- Italian
- ICIF 이탈리아 요리 학교
O Kitchen
LE PETIT CRU (르쁘띠크뤼)
Blooming Garden
Pierre Gagnaire a Seoul (삐에르 가니에르 서울)
- French
Grand Ciel (그랑씨엘)
a Table (아따블르)
Le Pied (르삐에)
- French
Arte
- Italian
- 서래마을
Boutique Blooming (부티크 블루밍)
Gramercy Kitchen (그래머시 키친)
- 압구정
The story in the real London
- 논현동
mi piace (미피아체)
- 청담동
- Hyatt Hotel
The Restaurant
Tasty BLVD
- 압구정
Ola! (1/2/3)
The Bar: dopo
The Ninth Gate
- The Westin Chosun Hotel
Table34
Paris de Gaumont
L'Espoir (레스뿌아)
Villa Sortino (빌라소르티노)
- Italian
Buon Viaggio (본 비아지오)
Serein (써레인)
- Halloween party
L'Italia Mia (리탈리아 미아)
- Italian
- ICIF 이탈리아 요리 학교
O Kitchen
LE PETIT CRU (르쁘띠크뤼)
Blooming Garden
Pierre Gagnaire a Seoul (삐에르 가니에르 서울)
- French
Grand Ciel (그랑씨엘)
a Table (아따블르)
Le Pied (르삐에)
- French
Arte
- Italian
- 서래마을
Boutique Blooming (부티크 블루밍)
Gramercy Kitchen (그래머시 키친)
- 압구정
The story in the real London
- 논현동
mi piace (미피아체)
- 청담동
June 16, 2008
원하는 위치에서 Command 창 띄우기
1. windows explorer을 연다.
2. "도구"의 "폴더 옵션"을 실행한다.
3. "파일 형식" 탭을 선택한다.
4. "폴더" 파일 형식을 선택한 후, "고급" 버튼을 누른다.
5. "새로 만들기"를 누른 후, "명령"에는 context menu에 나타날 이름을 입력하고, "명령을 실행할 응용프로그램"에는 "c:\windows\system32\cmd.exe"을 입력한다.
위와 같은 과정을 거친 후, windows explorer에서 폴더의 context menu를 펼친 후 추가한 메뉴를 선택하면, 선택한 폴더의 "부모" 폴더를 시작점으로 한 command 창이 열리게 된다.
2. "도구"의 "폴더 옵션"을 실행한다.
3. "파일 형식" 탭을 선택한다.
4. "폴더" 파일 형식을 선택한 후, "고급" 버튼을 누른다.
5. "새로 만들기"를 누른 후, "명령"에는 context menu에 나타날 이름을 입력하고, "명령을 실행할 응용프로그램"에는 "c:\windows\system32\cmd.exe"을 입력한다.
위와 같은 과정을 거친 후, windows explorer에서 폴더의 context menu를 펼친 후 추가한 메뉴를 선택하면, 선택한 폴더의 "부모" 폴더를 시작점으로 한 command 창이 열리게 된다.
April 08, 2008
running scratchbox under Ubuntu 8.04
Scratchbox를 Ubuntu 8.04에 설치해 보았다. 설치는 잘 진행이 되었지만, 실행시 다음과 같은 error가 발생하였다.
Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion ‘(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso’
이를 해결하기 위해서는 vdso를 disable 시켜줘야 하는데, 가장 확실한 방법은 kernel recompile이다. 하지만, 귀차니즘 때문에 좀 더 간단한 방법을 찾아보았다.
echo 0 | sudo tee /proc/sys/vm/vdso_enabled
임시로, vdso를 disable시켜주는 방법이다. 부팅할 때마다 다시 해줘야 하지만, 간단하게 해결할 수 있는 방법이다.
Inconsistency detected by ld.so: rtld.c: 1192: dl_main: Assertion ‘(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso’
이를 해결하기 위해서는 vdso를 disable 시켜줘야 하는데, 가장 확실한 방법은 kernel recompile이다. 하지만, 귀차니즘 때문에 좀 더 간단한 방법을 찾아보았다.
echo 0 | sudo tee /proc/sys/vm/vdso_enabled
임시로, vdso를 disable시켜주는 방법이다. 부팅할 때마다 다시 해줘야 하지만, 간단하게 해결할 수 있는 방법이다.
April 07, 2008
compile vmware-tools on Ubuntu 8.04
Ubuntu 8.04가 아직 정식 release되지는 않았지만, beta버젼을 사용할 수 있어서, vmware에 설치해 보았다. 하지만, vmware-tools가 compile되지 않는 문제가 발생하여서, 몇가지 시도를 통해서 compile하는 방법을 찾아보았다.
일단 open vmware tools에서 소스를 받아서, 컴파일이 되도록 dependencies가 걸린 라이브러리를 모두 설치한다. 여기서 주의할 점은 dnet이라는 라이브러리를 찾는데, 실제로 ubuntu에서는 dumbnet이라는 이름으로 쓰이므로, dumbnet-dev 패키지를 설치하여야 한다. 또한, configuration을 통과 하더라도, dnet.h 파일을 찾을 수 없다는 error 메시지가 나오며, compile이 안되는데, 컴파일이 안되는 해당 파일을 열어서 dnet.h를 include하는 것을 dumbnet.h를 include하도록 변경해 주면, compile이 잘 진행될 것이다 (make 뿐만 아니라, make modules도 실행하여서, module의 compile에도 문제가 없는지 확인하여야 한다).
이렇게, open vmware tools의 compile의 compoile이 모두 잘 되면 open vmware tools를 대신 사용할 수 있지 않겠냐는 생각이 들겠지만, 이상하게도 open vmware tools에서는 installation script를 제공하지 않는다. mailing list를 확인해본 결과, vmware의 product에 포함되어 있는 vmware tools에 open vmware tools를 compile해서 나온 module를 붙여서 설치를 하여야 한다 (이런 삽질을 왜 시키는지 모르겠다... 이 것 때문에 전혀 이해 안되는 이후의 과정을 진행하여야 한다ㅡㅡ;)
vmware 메뉴에서 install vmware tools를 선택하여, vmware tools 파일을 복사한 후, .../vmware-tools/distrib/lib/modules/source 디렉토리를 확인한다. 해당 디렉토리 내에, module들이 tar로 묶여 있는 것을 볼 수 있을 것이다. 해당 tar파일을 풀어보면, {module}-only라는 디렉토리가 생기는데, 실제로 풀어볼 필요는 없다. open vmware tools의 .../open-vm-tools-.../modules/linux/ 디렉토리를 열어보면, 각 module의 이름으로 된 디렉토리를 확인 할 수 있을 것이다. 이 각 {module} 디렉토리를 {module}-only로 바꾸어서 tar로 묶어준다. 그리고, 이렇게 묶은 파일을 vmware tools의 module source 디렉토리에 복사하여 기존의 파일에 덮어씌워준다.
이제, 원래 하던데로, vmware tools의 설치를 진행하고, module의 compile을 진행하면 정상적으로 vmware tools의 설치가 종료될 것이다.
일단 open vmware tools에서 소스를 받아서, 컴파일이 되도록 dependencies가 걸린 라이브러리를 모두 설치한다. 여기서 주의할 점은 dnet이라는 라이브러리를 찾는데, 실제로 ubuntu에서는 dumbnet이라는 이름으로 쓰이므로, dumbnet-dev 패키지를 설치하여야 한다. 또한, configuration을 통과 하더라도, dnet.h 파일을 찾을 수 없다는 error 메시지가 나오며, compile이 안되는데, 컴파일이 안되는 해당 파일을 열어서 dnet.h를 include하는 것을 dumbnet.h를 include하도록 변경해 주면, compile이 잘 진행될 것이다 (make 뿐만 아니라, make modules도 실행하여서, module의 compile에도 문제가 없는지 확인하여야 한다).
이렇게, open vmware tools의 compile의 compoile이 모두 잘 되면 open vmware tools를 대신 사용할 수 있지 않겠냐는 생각이 들겠지만, 이상하게도 open vmware tools에서는 installation script를 제공하지 않는다. mailing list를 확인해본 결과, vmware의 product에 포함되어 있는 vmware tools에 open vmware tools를 compile해서 나온 module를 붙여서 설치를 하여야 한다 (이런 삽질을 왜 시키는지 모르겠다... 이 것 때문에 전혀 이해 안되는 이후의 과정을 진행하여야 한다ㅡㅡ;)
vmware 메뉴에서 install vmware tools를 선택하여, vmware tools 파일을 복사한 후, .../vmware-tools/distrib/lib/modules/source 디렉토리를 확인한다. 해당 디렉토리 내에, module들이 tar로 묶여 있는 것을 볼 수 있을 것이다. 해당 tar파일을 풀어보면, {module}-only라는 디렉토리가 생기는데, 실제로 풀어볼 필요는 없다. open vmware tools의 .../open-vm-tools-.../modules/linux/ 디렉토리를 열어보면, 각 module의 이름으로 된 디렉토리를 확인 할 수 있을 것이다. 이 각 {module} 디렉토리를 {module}-only로 바꾸어서 tar로 묶어준다. 그리고, 이렇게 묶은 파일을 vmware tools의 module source 디렉토리에 복사하여 기존의 파일에 덮어씌워준다.
이제, 원래 하던데로, vmware tools의 설치를 진행하고, module의 compile을 진행하면 정상적으로 vmware tools의 설치가 종료될 것이다.
March 24, 2008
Human Energy
SBS에서 재미있는 다큐맨터리 하나를 방영했다. 사람의 운동 에너지를 전기 에너지로 바꿀 수 있다면, 단순히 전기료를 아끼는 것 뿐만 아니라, 사람들의 건강이 나아지고, 환경이 좋아질것이라는 내용이다. 나 역시 이런 생각을 해본적이 있지만, 이러한 생각을 본격적으로 실천에 옮기고 있는 사람들이 그렇게 많으며, 이러한 실천이 상당한 결과를 내고 있다는 것이 정말로 놀라웠다. 아버지께서 말씀하신 것 처럼 "상활과학"이 앞으로 상당히 재미있는 분야가 될 듯하다^^
Subscribe to:
Posts (Atom)