Your wish is my command

It’s a long journey

Web Terminal Ajaxterm

글쎄 오늘 네트웍이 불안하다. ssh가 계속 연결이 끊긴다. 그래 네트웍 공사중이라 이해는 하겠다만 일을 할 수가 없잖아!!!

그래서 웹에서 구현되는 터미널을 혹시나하고 뒤져보니 바로나온다. http://en.wikipedia.org/wiki/Web-based_SSH#Open_source_examples

우분투 패키지있는 ajaxterm 설치하고 실행하니 바로 되는구나~ 멋진 세상이다.

$ apt-get install ajaxterm
$ service start ajaxterm

http://localhost:8022/ 로 연결하니 그냥 뜬다.. 물론 로그인해야하는것이고, 속도는 물론 느리지만 급한김에 쓸만한 놈인듯하다.

Python 함수에서 Static 변수처럼 사용하기…

class에서는 static 변수가 지원됩니다. 그런데 함수에서 가끔 static이 필요할 때가 있습니다.

static을 사용하지 않는다면, global을 써야하는데, global을 사용한다는 것은 항상 꺼려지는 것이기에 static이 권장되죠. 하지만 python은 함수에 static을 지원하지 않고, 비슷하게 이를 흉내낼 수 있습니다.

_static을 잘 보시면 됩니다. 자세한 내용은 생략 ㅋㅋ

def get_connection(_static = {}):
    if 'conn' not in _static:
        conn = MySQLdb.connect(host=DB_HOST, user=DB_USER, passwd=DB_PASS, db=DB_NAME, use_unicode=True, charset='utf8')
        _static['conn'] = conn
    return _static['conn']

def get_cursor():
    return get_connection().cursor()

Ubuntu에서 설치할 패키지 찾기

Ubuntu를 테스트탑으로 사용하면서 참.. 어색한 것이 많다. 그중에 하나가 설치할 package를 찾는 것인데.. FreeBSD는 make search 하면 되는데.. 뭘까 한참 찼았다.

간단하다.

# apt-cache search package-name

Ssh의 연결을 계속유지하기..

Putty나 SecureCRT 같은 클라이언트를 쓰면 NOOP를 일정시간마다 수행해서 연결이 끊어지지 않게 하는 옵션들이 있다.

그런데 요즘 이런 것 대신 순수 ssh를 명령행으로 사용하다 보니, 시간이 지나면 자주 끊겨벼린다. 그래서 다른 서버로 들어갈때 끊길지 모르지 screen을 사용해서 하곤 했었다.

근데 좋은 방법을 찾았다. 물론 man 페이지에도 있지만, 처음 찾을때 키워드로  putty, SecureCRT 같은것 생각해서 noop로 찾으니 못찾은 것이고 ssh의 옵션은 TCPKeepAlive 옵션이다.

# ssh hostname -o TCPKeepAlive=yes

TCPKeepAlive로 해도 연결이 종료되는 경우는 아래처림 해보면 된다.

# ssh hostname -o TCPKeepAlive=no -o ServerAliveInterval=15

Django를 다시 하기로 했다.

PHP로 되어있던 코드를 django로 갈아엎기로 했다. PHP로 아무런 철학없이 대충 돌아가는 코드를 물려받아서.. 이걸을 그냥두고 계속 땜빵하는 짓을 정말로 못하겠다는 것이지.~

물론 PHP로 된 프레임웍 CodeIgnitor, YiiFramework, PhpCake등도 있지만, 약간씩 부족하다. 그리고 역시 언어적인 문제로 이전의 PHP 막코딩이 되살아날 가능성도 무시할 수 없다.

어쨌든 django로 가기로 했다. 물론 촉박한 일정이지만… 가능하겠지!!

Macbook에서 Nfs Server 띄우기

Macbook에서 nfs를 설정하는 방법을 여기를 참고해서 작업했다.

/etc/exports:

/Volumes/Workspace/mydroid/out/target/product/xxx/root -mapall=root 192.168.0.56

이렇게 하면 된다.

FreeBSD 클라이언트에서는

$ nfsiod -n 4
$ mount 192.168.0.14:/Users/whitekid/Documents/nfs /mnt

우선 이렇게 하면 훌륭하게 된다. 그런데 문제가 하나 있다.

nfs 클라이언트에서 파일을 만들면 서버 상에서는 모드 root가 만들 파일로 작업이 되어 버려 문제가 발생한다. 확인해보니 클라이언트 사용자의 uid가 서버에서는 없어서 root 권한으로 만드는 것 같다.

그래서 위의 exports에서 -mapall=root를 -mapall=whitekid로 변경했다. 그러니 잘 된다. ㅋㅋ

참 그런데… 시작할때 nfs 서버 띄우려면 어떻게 하는거지???

MacBook Air + VirtualBox + FreeBSD Ia64

를 설치해보려 했다. 왜? 서버 설정이 64비트니깐.. 나름 맞춰볼려고..

그런데 부팅부터 안된다. ㅡㅡ 결국은 VirtualBox에서는 32비트 쓸련다.

혹시 문제가 있을러나????

iTunes 라이브러리를 다른 컴퓨터로 옮기기

iTunes 라이브러리를 다른 컴퓨터로 옮기기 위해 여기저기 둘러봤지만 만족할 만한 방법이 없었다. 이유는 딱 하나 iTunes 라이브러리가 수십기가가 되면서 다른 모든 방법들이 복잡해 진거다. DVD도 10장이사을 구워야하는건 무리지요..

물론 USB 하드 디스크가 있으면 되는데, ^^ 지금은 없다. 있는 거라곤 저 옆 컴퓨터의 빈 하드공간 그거 밖에 없다.

뒤지다가 결국 아래의 방법이 제일 좋을 것 같다.

http://www.squidoo.com/copy_itunes_library

  • Library Export File: 여기다가는 iTunes 라이브러리를 Export한 XML을 적는다.
  • File Copy Destination Folder: 미디어 파일을 복사할 디렉토리 위치를 적는다. 디렉토리는 미리 만들어 놓는다.
  • New Source Folder: 다른 컴퓨터에 백업한 폴더를 복사했을 때 다른 컴퓨터상에 마운트되어 나타나는 이름을 적는다.  여기 적는 경로는 export한 XML의 미디어 위치가 된다.

다른 폴더에 이렇게 백업해서 넣은 다음 SCP로 서버로 이동한다. 그리고 다른 컴퓨터에서 SCP를 이용해서 다시 복사한 다음 import 하는 방법이다…

자~ 잘 되겠지… 다음주에 새 컴퓨터오면 해봐야지..