Programming 99

[Python]파이썬 기본 개념 및 문법 예제

파이썬이란 언어를 공부하는데 있어서 아주 기본적인 문법과 개념들을 학습하기 위해 간단한 예제를 스스로 만들어 봤다. 세 개의 모듈이 하나의 프로젝트이며 각 모듈의 예제의 내용은 밑과 같다. 앞으로 더 심화된 내용을 다룰 예정이다. Hello.py : 출력, 조건문, 반복문, 배열, 객체 생성, 메소드 호출HelloClass.py : 클래스 정의, 생성자, 소멸자 Human.py : 클래스 상속, 오버라이딩

Programming/Python 2013.06.25

[VI/VIM] VI와 cscope의 연동

VI를 실행한다. cscope의 데이터베이스와 연동을 한다. 연동을 위해서 ':cs add /usr/src/linux-2.6.14/cscope.out'을 입력한다. 추가된 데이터베이스는 ':cs show'로 확인할 수 있다. 연결된 데이터베이스를 종료하려면 ':cs kill 0'를 하면 0번으로 연결되 데이터베이스를 종료할 수 있다. 데이터베이스를 검색하려면 ':cs find 0 [KEYWORD]'를 입력하면 0번 데이터베이스에서 KEYWORD를 검색한다. VI에서 cscope 관련 도움말을 보고 싶으면 ':cs help'를 입력하면 된다.

Programming/Tool 2013.06.18

[cscope] cscope 사용법

먼저 cscope를 설치한다. 커널 소스가 있는 위치로 이동해서 'find ./ -name *.[chS] -print > cscope.files'를 입력한다. 처음으로 'cscope'를 실행하면 cscope.files에서 파일 목록을 읽어와서 데이터베이스를 구축한다. cscope가 생성한 데이터베이스 파일은 cscope.out이다. cscope는 두 부분으로 나누어져 있다. 윗 부분은 검색결과를 보여주는 부분이고 아랫 부분은 검색을 위한 입력 부분이다. 두 창은 tab 키로 이동할 수 있다. 모든 탐색을 마치고 종료하려면 'Ctrl + d'를 누르면 종료된다.

Programming/Tool 2013.06.18

[ctags] ctags 사용법

ctags를 사용하기 전에 설치해야한다. 'apt-get install ctags'로 설치한다. 설치가 모두 끝나면 리눅스 커널 소스가 있는 곳으로 이동한다. 'ctags -r' 혹은 'make tags'를 사용하여 태그를 생성한다. 태그생성이 끝나면 'tags'라는 파일이 생긴 것을 볼 수 있다. 이제 ctags를 이용해보자!! 'vi -t task_struct'를 입력해본다. 꼭 tags가 있는 곳에서 입력해야 한다. task_struct라는 구조체가 있는 곳에서 vi가 시작한다. 또 밑에 사용된 구조체에 커서를 올려놓고 'Ctrl + ]'을 누르면 그 구조체가 선언된 곳으로 이동한다. 'Ctrl + t'를 누르면 점프하기 전으로 돌아갈 수 있다. 'vi -t [KEYWORD]'외에도 vi 명령모드에..

Programming/Tool 2013.06.18

[Kernel : Linux]커널 빌드 (리눅스2.4 & 리눅스2.6)

리눅스 커널 소스 다운로드 : http://maskkwon.tistory.com/83 위에서 적힌대로 커널 소스를 다운로드 했다면 이제 커널 소스를 빌드해보자!!커널의 빌드 오더는 아래와 같다. make mrpropermake menuconfigmake depmake cleanmake bzImagemake modulesmake modules_install make mrproper는 기존의 커널의 의존성을 모두 제거 make menuconfig는 커널이 설치되는 환경을 설정 make dep는 커널 소스의 의존성을 확인 make clean은 오브젝트 파일 및 구버전의 소스를 모두 정리 make bzImage는 실행 가능한 커널을 빌드 make modules는 커널에 사용하는 모듈들을 컴파일 make modu..

Programming/Kernel 2013.06.18

[Kernel : Linux]bash 환경 설정하기

리눅스에서는 bash를 기본적인 쉘로 사용한다. 시스템 내에서 알 수 없는 문자를 출력한다고 해서 매번 '[export LANG=C]'를 입력하는 것은 번거롭다. root 사용자의 경우, /root/.bashrc 파일을 수정하면 보다 편한 개발 환경을 구축할 수 있다. LANG=C; exprot LANG;export PS1='\h:\w\$' //언어설정을 추가해서 메시지 깨짐을 방지umask 022echo -ne '\033[11;0]' //경고비프음을 제거 #you may uncomment the following lines if you want 'ls' to be colorized:export LS_OPTION='--color=auto' //ls 결과에 색상을 사용eval "'discolors'"ali..

Programming/Kernel 2013.06.18

[Kernel : Linux]putty를 이용한 프로그래밍

먼저 putty를 사용하기 위해 ssh를 설치한다. 패키지/소스 관리에서 배운 명령어를 이용한다. 'apt-get install ssh' ssh의 설치가 끝나면 putty를 다운 받는다. putty 다운로드 URL : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 'ifconfig'를 이용해서 리눅스의 ip주소를 알아낸다. 다운받은 putty.exe.를 실행시키고 ip주소를 입력한다. putty가 연결된다. X-window를 쓰면 시스템의 반응 속도가 느려지고 VMware를 사용하면 화면의 크기가 작기 때문에 putty를 이용하면 윈도우에서 VM을 통해 이용하는 사용자에게 보다 넓은 화면에서의 프로그래밍 환경을 제공한다.

Programming/Kernel 2013.06.18

[Kernel : Linux]패키지 관리 및 명령어

명령어 설명 apt-get update 패키지 목록을 업데이트 apt-get dist-update 설치된 패키지들을 업그레이드 apt-cache search --names-only [PKG_NAME] [PKG_NAME]로 시작하는 패키지 검색 apt-get install [PKG_NAME] [PKG_NAME] 패키지를 설치 apt-get install --reinstall [PKG_NAME] [PKG_NAME] 패키지를 다시 설치(복구) apt-get remove [PKG_NAME] [PKG_NAME]를 제거, 설정 파일 유지 apt-get remove -- purge [PKG_NAME] [PKG_NAME]과 설정 파일을 모두 제거 apt-get source [PKG_NAME] [PKG_NAME]의 소스..

Programming/Kernel 2013.06.18

[Objective C] iOS에서 진동 구현

iOS에서의 진동 구현은 안드로이드에 비해 간단하다. 반면 iOS 정책상으로 진동의 패턴과 길이는 조절할 수 없다. 조절한다고 해도 Reject의 대상이 되기 때문에 앱 스토어에 올릴 수 없다. 참고 바란다. 먼저 진동을 구현하기 위해서는 AudioToolbox Framework를 import 해줘야 한다. 위의 그림처럼 프레임워크를 추가한 다음에 다음의 코드를 헤더파일에 추가한다. #import 위와 같이 하면 import과정이 다 끝난다. 이제 진동을 사용하는 부분에 밑의 코드 한 줄만 추가하면 된다. 진동 구현이 안드로이드에 비해 상당히 간편하다 AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);