'컴퓨터에서'에 해당되는 글 198건
- 2010/03/07 latex에서 Creative Commons (CC)기호 조판하기
- 2010/03/06 Git vs Mercurial
- 2010/03/02 우분투 9.10 x86_64에서 나비 0.99.7 사용하기
- 2010/03/01 Ubuntu 9.10 + Nvidia gt 200에서 듀얼스크린 이용하기
- 2010/02/12 아이튠즈에서 등록정보 수정이 안될 때
- 2010/02/11 버추얼박스(VirtualBox)에서 CPU점유율이 높을 때
- 2010/02/03 대전 버스이용 정보
- 2010/01/29 리눅스에서 rename 사용하기 (2)
- 2010/01/14 윈도우용 프록시 서버 CCProxy
- 2009/11/08 윈도7에서 액세스 거부 되는 경우 해결방법 (2)
svn은 이미 써왔던 툴이라 익숙하긴 한데, 최근에 분산형 버전관리 시스템(DVCS: Distributed Version Control System)이 많이 거론되는지라 이쪽으로 알아보고 있다.
Git은 최근에 번역서도 출간되었고, 리누스가 개발하기도 해서 좀 더 많이 알려진 것 같긴 한데, Mercurial도 그에 못지 않게 유명하다. 구글코드에서 지원하기로 한 것으로 보면 그만한 가치를 인정받은 모양이다.
이런 저런 자료를 비교해보니.
대표적인 차이점은
Mercurial은 서브버전과 비슷한 점이 많아 서브버전 사용자가 배우기가 쉽다고 한다. 다만 파이썬으로 만들어졌기 때문에(diff는 C로 개발했다고 한다) Python-2.4(2.6나온지도 꽤 됐는데...)를 설치해야 한다.
반면에 Git은 리누스가 리눅스 개발에 쓰기 위해 직접 만들었다고 할 정도로 큰 프로젝트에서 좋은 성능을 발휘하는 반면, 윈도우즈 지원은 다소 미흡하다고 한다.
Mercurial을 사용하는 대표적인 프로젝트로는 OpenJDK, Mozilla, NetBeans 등이 있고, Git을 사용하는 프로젝트로는 리눅스(커널), Debian, Perl, Qt, Gnome, Wine 등 굵직굵직한 프로젝트들이 있다.
여러 글을 읽다보니 마음이 Mercurial쪽으로 움직이고 있다. 그렇지만 벌써 Git, 분산 버전 관리 시스템책을 주문해 버렸다.

분산형 버전관리에 대한 페이지
Mercurial에 대한 페이지
1. 머큐리얼
Git에 대한 페이지
3. Git 사용자 설명서
아무튼 책을 읽어보고 조만간 결정을 내려야겠다.
(Python 버전 문제가 걸리긴 하지만 자꾸 Mercurial에 끌리네...)
이 문제는 이미 해결됐지만, 우분투 배포판에는 아직 패치된 버전이 들어가있지 않다. 때문에 우분투 9.10을 설치할 때마다 이 문제가 발생한다.
아무튼 이 문제도 해결할 겸 최신 버전의 나비도 써볼겸 나비 0.99.7 버전을 컴파일해서 쓰기로 했는데 문제가 발생했다.
configure를 실행하면
nabi needs libhangul 0.0.10 or higher
이런 메시지가 출력되면서 configure가 제대로 되지 않는다.
당연히 이 패키지는 설치되어 있다.
구글링을 하니 http://kldp.org/node/78788 에서
export PKG_CONFIG_PATH=/usr/share/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig
이렇게 해보라고 했는데 여전히 같은 에러 발생
pkg-config --list-a | grep hangul 로 확인해 보면 libhangul 이라고 멀쩡히 있는데도 말이다.
하지만 의존성(libhangul0-data버전이 낮아서) 때문에 이마저도 안됐다.
결국 libhangul0-data도 패키지를 받아 설치한 후 일사천리로 끝낼 수 있었다.
일단 naib를 종료하고 아래를 순서대로 한다.
libhangul 0.0.10 + nabi 0.99.7 설치하기(AMD64의 경우)
1. https://launchpad.net/ubuntu/lucid/amd64/libhangul0-data/0.0.10-1 에서 libhangul0-data_0.0.10-1_all.deb 파일을 다운로드한다.2. https://launchpad.net/ubuntu/lucid/amd64/libhangul0/0.0.10-1 에서 libhangul0_0.0.10-1_amd64.deb 파일을 다운로드한다.
3. (1)에서 받은 libhangul0-data 파일을 설치한다.
sudo dpkg -i libhangul0-data_0.0.10-1_all.deb
4. (2)에서 받은 libhangul0 파일을 설치한다.
sudo dpkg -i libhangul0_0.0.10-1_amd64.deb
5. nabi 소스파일이 있는 곳으로 이동한 후 configure, make, make install을 한다.
sudo ./configure && make && make install
6. 나비를 실행(nabi &)한 후 정보를 본다.

7. 내 경우 재부팅을 하고나니 나비와 iBus가 동시에 실행되어 한글입력이 안되는 문제가 발생했다.
간단히 아래와 같이 입력기로 나비를 설정해주면 된다.
im-switch -s nabi
윈도7과 데비안을 포기하고 우분투(정확히는 쿠분투) 9.10으로 갈아엎었다.
듀얼스크린을 설정하는데 애를 먹어서 나중에 필요가 있을까 싶어 여기에 남겨둔다.
1. 이미 설치한 nvidia 드라이버 패키지를 삭제한다.
(apt-get purge 패키지이름)
2. nvidia 홈페이지에 가서 그래픽카드에 맞는 드라이버를 설치한다.
3. 재부팅해서 콘솔모드로 로그인한다.
(recovery 모드로 하면 속편하다)
4. 위 2에서 받은 설치파일(*.run)을 실행한다.
5. X윈도로 재부팅
6. 터미널을 열어 sudo nvidia-setting 실행
7. 그림의 왼쪽과 같이 듀얼모니터임에도 X Screen이 하나만 잡힌다. 그냥 무시하고 오른쪽의 모니터만 설정한다.


8. 설정이 이상했으나 1번 모니터의 해상도를 auto에서 모니터에 맞는 값으로 설정해 주었더니 잘 된다.
이 때 Configure 값은 아래와 같이 TwinView로 해주어야 창이 모니터 사이를 이동할 수 있다.
입력박스가 회색으로 나오며 수정이 불가했다.
아이튠즈에서 [파일]-[보관함에 파일/폴더 추가]로 해주었음에도 수정이 안된다.
윈도우7에서의 권한문제 때문이었다.
해결방법은 다음과 같다.
1. 탐색기를 열어 음악폴더(나같은 경우 E:\iTunes\iTunes Media폴더에 모두 넣어두었다)를 오른쪽 클릭해서 '속성'창을 연다.
2. 읽기 전용 체크를 없애고 적용을 누르면 대화상자가 뜨는데 '이 폴더, 하위 폴더 및 파일에 변경사항 적용'이 선택된 상태에서 확인버튼을 누른다.
3. [보안]탭을 클릭한 후 윈도7에서 액세스 거부 되는 경우 해결방법(http://blog.edple.com/1420)대로 권한을 추가한다.
4. 아이튠스를 다시 실행해서 등록정보 수정이 잘 되는지 확인한다.
구글링하니 바로 해결법을 찾을 수 있었다.
(이 방법은 듀얼코어에만 해당한다.)
방법은 간단한데, 일단 버추얼박스가 실행중이라면 이것부터 종료하고 다음을 따라해보자.
1. 작업관리자를 실행시킨 후
2. 프로세스 탭으로 이동해서
3. 버추얼박스 프로세스를 오른쪽 마우스로 클릭한다.
4. '선호도 설정'이라는 항목이 나타나는데 이걸 클릭하면
5. 프로세스 목록이 나온다. 듀얼코어의 경우 CPU 0과 CPU 1이 나오는데, 여기서 CPU 0만 선택하고 확인버튼을 눌러 창을 닫는다.
6. 끝. 확인해보면 된다.
대전사는데다 아이폰도 없는 나는 멀리서 바라볼 뿐...
그러다가 최근에 네이버 맥쓰사 카페에서 다음의 주소를 알게 되었다.
m.djits.info/pda
대전시에서 제공한 정보를 가공해서 보여주는 것 같긴한데 정확히 누가 만든 건지 누가 운영하는지는모르겠다.
암튼 이걸 파이썬과 BeautifulSoup로 데이타만 가져와봤다. 웹사이트에 접속해서 하는 것보다 터미널에서 버스 번호만 입력하면 되기 때문에 퇴근할 때 컴퓨터 끄기 전에 쉽게 볼 수 있어서 좋다.
<code python>
#!/usr/bin/python
# -*- coding: utf-8 -*-
from BeautifulSoup import *
import chardet
import urllib2
import re
import os
bus = input("버스번호: ")
try:
f = urllib2.urlopen("http://m.djits.info/pda/Bus_location.jsp?route_id=250%d0&route_name=%d&direction_tf=T" % (bus, bus))
soup = BeautifulSoup(f, fromEncoding="cp949")
except:
print u"서비스 이용 불가."
os.sys.exit(1)
f.close()
try:
data = soup('table')[5].contents[3].renderContents('utf-8')
except IndexError:
print u"서비스 이용 불가."
os.sys.exit(1)
datas = data.splitlines()
stops = []
for i in datas:
i = i.strip()
i = re.match("\d\. .+$", i)
if (type(i) != 'NoneType'):
try:
print i.group()
stops.append(i.group())
except:
pass
</code>
BeautifulSoup라는 걸출한 파이썬 모듈이 있었기에 쉽게 할 수 있었다. 최종 목표는 특정 시간이 되면 구글 칼렌더에 자동으로 등록되게 하는 것. 구글 칼렌더의 일정 SMS받기를 이용하는 것인데, api를 공부해야 되서...
한달치 데이터 모아서 LaTeX으로 보고서 만들면 재밌을 것 같다.
간단한 예.
임의의 폴더 안에 아래와 같은 파일들이 있다고 하자.
01 동해물과.txt
02 백두산이.txt03 마르고.txt
04 닳도록.txt
05 하느님이.txt
위 파일들의 이름 중 "01 "와 같이 숫자와 스페이스를 없애서 "동해물과.txt"와 같이 하고자 한다.
(nomos님의 댓글을 보고 수정했습니다. 2010. 01. 29)
(nomos님의 댓글을 보고 수정했습니다. 2010. 01. 29)
$>rename 's/\d{2}[[:space:]]//' *
여기서 s/는 치환하라는 뜻이며,
\d는 숫자 하나를 가리키는데
{2}는 앞에 오는 대상의 개수를 가리킨다.
따라서 \d{2}는 숫자 2개를 뜻한다.
[[:space:]]는 공백(스페이스, 빈 줄 포함)을 나타낸다.
마지막 "/"은 치환할 대상을 처리할 문자규칙인데, 여기서는 삭제를 해야 하므로 아무 것도 안써서 "/"와 같이 해주었다.
*은 이 규칙을 적용할 파일명 규칙이다. *은 (누구나 예상하듯이) 모든 파일이다.
정규표현식에서 [[:digit:]]는 \d와 같이 나타낼 수도 있지만 rename 명령은 이 방법은 안되었다.
또한 [[:digit:]][[:digit:]]는 [[:digit:]]{2}처럼 나타낼 수도 있지만 rename은 이 방법도 안되었다.
이것저것 깔아봤는데 이만한 프로그램이 없다.
사용법도 간단해서 Option에서 각 서비스별로 포트 번호를 설정하기만 하면 된다. NT Service를 체크하면 서비스로 실행된다.
아쉽게도 상용이다. 트라이얼 버전은 3명까지 지원한다. 미국달러로 69달러. 비싼건가...?
해결방법을 찾아봤다.
액세스 거부 메시지가 나타날 경우 파일을 여는 방법은 무엇입니까?
위의 설명만으로는 조금 부족하다.
1. 액세스 거부되는 파일 또는 폴더를 오른쪽 클릭-'속성'을 연다.
2. [보안]탭을 클릭
3. [그룹 또는 사용자 이름]밑의 '편집'을 클릭
4. 사용권한 창이 뜨면 [그룹 또는 사용자 이름] 밑의 '추가'를 클릭
5. '선택할 개체 이름을 입력하십시요' 밑의 입력창에 사용자 이름을 추가한다.
(윈도우7 설치할 때 입력한 이름)
6. 오른쪽에 있는 '이름 확인'을 클릭하면, 입력한 내용이 조금 바뀔 것이다. '확인'을 눌러 창을 닫는다.
7. (4)의 사용권한 창으로 돌아왔다. 아래에 보면 사용권한을 설정할 수 있는 체크박스들이 보인다.
모든 권한에 '허용'을 체크하면 맨 밑에 있는 '특정 권한'을 제외한 모든 권한이 자동으로 체크된다.
8. '적용'-'확인'을 눌러 창을 닫는다. 끝.
(그림은 나중에...;;;)
Prev


bus.py


