컴퓨터/linux2011. 3. 29. 00:04
아래 내용은 맨 아래 출처의 저자님의 포스팅을 제가 했던 상황에 맞게 조금 바꾸었습니다.
(이상하게 트랙백이 안걸리네요. )

python을 쓰다보면 C와 연동할 일이 생기는데,
이럴 때 사용하게 되는 것이 swig입니다.
http://www.swig.org/

다음은 초간단한 c 함수를 만들어서 swig를 이용하여,
python에서 호출을 해 보도록 하겠습니다.
( 이 내용들은 swig tutorial에 있는 내용들을 좀 더 간단하게 
제 환경에서 테스트해본 결과입니다. )

swig은 안깔려있는 경우가 있어서 sudo apt-get install swig을 깔아줍니다. 


~/temp$ vi sample.c
int inc( int a ){
        return a+1;
}

~/temp$ vi sample.i
%module sample
%{
extern int inc(int a);
%}
extern int inc(int a);

~/temp$ swig -python sample.i
~/temp$ gcc -c -fPIC sample.c sample_wrap.c -I/usr/include/python2.4 
(운영체제가 X86_64인 경우 저 붉은 색으로 되는 부분을 옵션으로 해줘야합니다.) 
(또한 바로 하면 Python.h 파일을 못찻기때문에 꼭 python-dev를 설치 하셔야 합니다.) 

~/temp$ ld -shared sample.o sample_wrap.o -o _sample.so

~/temp$ ipython
Python 2.4.3 (#2, Oct  6 2006, 07:52:30)
Type "copyright", "credits" or "license" for more information.

IPython 0.7.1.fix1 -- An enhanced Interactive Python.
?       -> Introduction to IPython's features.
%magic  -> Information about IPython's 'magic' % functions.
help    -> Python's own help system.
object? -> Details about 'object'. ?object also works, ?? prints more.

In [1]: import sample
In [2]: sample.inc(1)
Out[2]: 2

ㅇㅋ!

(마지막 부분은 꼭 ipython을 쓰지 않아도 잘 작동 하였습니다. )


출처 : http://cybershin.x-y.net/tt/entry/swig
 
Posted by blindfish
컴퓨터/linux2011. 2. 25. 23:27
금요일인데 이번에 연구실에 고가로 주분한 컴퓨터에 우분투 리눅스(ubuntu server version 10.10 amd64)를 깔고 있습니다. 
처음에 네트위크가 안잡혀서 이게 뭔일인가 싶더니만.. sudo.. 그래;; root권한으로 안했고.. 내가 엉뚱한 랜카드를 잡아서 (랜카드가 2개..;) 랜선을 바꿔 끼우니 제대로 작동! 이제 네트워크가 되면서 바로 업데이트 미러가 미쿡으로 되있길래 한국껄로 바꾸었습니다. 속도가 무지 빨라짐 +_+(요즘 우분투 코리아가 이상해서 daum미러로 쓰고 있습니다. )
sudo apt-get update 
sudo apt-get upgrade
sudo apt-get install ssh vim
등을 완료.!
그리고 이제 다시 자리로 돌아와서 원격접속해서 작업을 이어갔는데.. 
torque라고 하는 그리드컴퓨팅용 툴도 깔고.. 
./configure 했는데 아..;; gcc 와  g++을 안깔았네요.;; 다시 깔고 나서 
make 와 make install 을 완료.. 
그럼 어느정도 세팅이 거의 완료 된것입니다.

그 다음에 pbs setup을 하는 부분이 있는데 이 부분은 조금 복잡하고 아직 저도 모르는 부분이 많으니 나중에 좀더 공부하고 포스팅 하도록 하겠습니다. 그래도 많이 알고 싶으신분이 있다면.. 별이란 친구의 친절한 설명이 함께있는 아래 동영상은 다운받아서 보시는것도 좋을거 같습니다.
using torque and cernlib 1(2008. 4. 10.)

(우클릭해서 다운받아서 보시면 좋을거 같네요. 위 동영상은 세종대학교 물리학과 병렬처리 연구실에서 작성한것입니다. )

저는 이미 연구실 선배가 구축해좋은 셋업파일을 사용하였습니다. 
(/var/spool/torque 란 디렉토리에 가면 이미 이 파일이 있습니다. 실제로 이 파일을 용도에 맞게 조금 수정해서 사용하시면 됨니다. )

./torque.setup hostname
여기서 hostname을 정확히 써주지 않으면 제대로 작동하지 않습니다. 

그리고 구동시킬 것들은 root 권한으로 
pbs_mom
pbs_sched
pbs_server
이 세가지 데몬들을 구동시켜야 합니다. 
이름에서 어떤 역활을 하는지 이미 뉘앙스가 풍겨오죠? 이상하게도 셋업파일은 실행하면 자꾸 뭔가 이상이 생깁니다. 
셋업파일을 실행하면 이미 이 세가지 파일들이 실행이 되는데 일단은 이 데몬들을 정지 시킵니다. qterm이란 명령어를 root권한으로 실행시키면 데몬이 정지 됩니다. 
그후에 /var/spool/torque/server-priv/ 란 디렉토리에 들어가면 nodes란 파일이 있습니다. 거기에 hostname np=쓰고싶은 노드 숫자 
이런식으로 써주고 다시 세 데몬들을 실행시키면 정상적으로 돌아가게 됩니다. qsub 란 명령어를 통해 작업을 올려보면 정상적으로 돌아가는지 확인 할수 있습니다. 

echo "sleep 10" | qsub 

를 몇번정도 실행하고 나서 qstat로 다시 확인해보면 큐에 작업이 올라가 있는것을 확인할수 있습니다. 
Posted by blindfish
컴퓨터2011. 1. 19. 19:39
/*
this program for calculating area of closed polygon
*/

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<ran3.c>

double roundintagral(double *x, double *y, int line);
double montecalro(double *x, double *y, int line);
int pnpoly(int npol, float *xp, float *yp, float x, float y);
void swap(float *a, float *b);

int main(int argc, char **argv)
{
FILE *ofp;
char str[20];

ofp=fopen(argv[1], "r");

double *x, *y;
int line;
int i;

line=0;
while(fgets(str, sizeof(str), ofp) && ftell(ofp) != EOF)
line++;

rewind(ofp);

x=calloc(line, sizeof(double));
y=calloc(line, sizeof(double));

for(i=0; i<line; i++)
fscanf(ofp, "%lf %lf", &x[i], &y[i]);
printf("%s\t%lf\t%lf\n", argv[1],roundintagral(x, y, line), montecalro(x, y, line));

free(x);
free(y);

fclose(ofp);

return 0;
}

double roundintagral(double *x, double *y, int line)
{
double centerX, centerY;
double area;
int i;

area=0;
centerX=0; centerY=0;
for(i=0; i<line; i++)
{
centerX+=x[i];
centerY+=y[i];
}

centerX=centerX/line;
centerY=centerY/line;

for(i=0; i<line-1; i++)
area += (0.5 * ( (x[i]-centerX)*(y[i+1]-centerY) - (x[i+1]-centerX)*(y[i]-centerY) ) );

return fabs(area);

}

double montecalro(double *x, double *y, int line)
{
double area;
float *xsort, *ysort;
float *xunsort, *yunsort;
double fraction;
float xrand, yrand;
int i,j;
long seed = time(0);

fraction=0;

xsort=calloc(line, sizeof(float));
ysort=calloc(line, sizeof(float));
xunsort=calloc(line, sizeof(float));
yunsort=calloc(line, sizeof(float));

for(i=0; i<line; i++)
{
xsort[i]=x[i];
ysort[i]=y[i];
xunsort[i]=x[i];
yunsort[i]=y[i];
}

for(i=0; i<line; i++)
for(j=i+1; j<line; j++)
{
if(xsort[i] > xsort[j]) swap(&xsort[i], &xsort[j]);
if(ysort[i] > ysort[j]) swap(&ysort[i], &ysort[j]);
}

area=(xsort[line-1]-xsort[0])*(ysort[line-1]-ysort[0]);
for(i=0; i<10000; i++)
{
xrand=xsort[0]+ran3(&seed)*(xsort[line-1]-xsort[0]);
yrand=ysort[0]+ran3(&seed)*(ysort[line-1]-ysort[0]);

if(pnpoly(line, xunsort, yunsort, xrand, yrand))
fraction++;
}

area=area*(fraction/10000);

free(xsort);
free(ysort);
free(xunsort);
free(yunsort);

return area;
}

int pnpoly(int npol, float *xp, float *yp, float x, float y)
{
int i, j, c = 0;
for (i = 0, j = npol-1; i < npol; j = i++) 
{
if ((((yp[i] <= y) && (y < yp[j])) || ((yp[j] <= y) && (y < yp[i]))) && (x < (xp[j] - xp[i]) * (y - yp[i]) / (yp[j] - yp[i]) + xp[i]))
c = !c;
}

return c;
}

void swap(float *a, float *b)
{
float temp;
temp = *a;
*a = *b;
*b = temp;
}

여기선 두가지 방법으로 넓이를 구합니다. 
구면 적분을 한것과 몬테카를로방법을 사용한것입니다. 

사용방법은 컴파일을 하신다음에 명령행(리눅스) 기준으로 쓰면
$ ./area 읽어들일데이터파일

이렇게 간단하게 쓰시면 되구요. 데이터파일의 모양은 

0.0 0.0
0.0 1.0
1.0 1.0
1.0 0.0
0.0 0.0

이런 식이 되면 좌표계에서 사각형의 넓이를 구하게 되는 것이죠.
값은 1이 나오게 됩니다. 

ps. ran3.c라는 파일은 numerical recipe에 있는 것인데요. 그냥 지우고 rand함수를 써도 무관합니다. 그래도 ran3가 더 정확하겠죠? 
Posted by blindfish
컴퓨터/mac2010. 3. 9. 11:38

얼마전에 연구실에서 단체로 구입한 애플의 매직 마우스입니다.

우선 터치 패드처럼 마우스 윗면을 쓸수 있다는게 큰 장점이네요...

스크롤도 자유롭고 터치에 따라서 몇가지 기능들도 추가 되있습니다..

그리고 이 심플한 디자인이 가장 맘에 드네요..

단점으로는 조금 무서운 느낌이 없지 않아 있지만..

전체적인 편의점을 생각해봤을땐 혁신적이라고 할만 합니다. 

맥북을 써서 그런지 더 쓰기 편한거 같기도 하네요.
Posted by blindfish
컴퓨터2009. 11. 23. 21:59
저는 맥, 그리고 리눅스의 유져입니다.
통계물리 연구를 하다보면 당연히 리눅스를 쓸수 밖에 없고 다른 업무를 하다보면 맥을 쓰는게 편합니다. 전에도 제가 맥과 리눅스에 대한 수많은 글을 썼었던것으로 기억하네요.
저도 처음엔 MS-DOS부터 윈도우까지 계속 썼던걸로 기억합니다. 예전 시절부터 있던 끊임없는 바이러스의 침투와 그로인한 데이터 손실, 쓸수록 느려지고 무거워지기만 하는 운영체제. 모든것이 불편하기만 했습니다. 
어느날 부터 리눅스와 맥을 접하고 완전히 달라지게 됬습니다. 아무리 써도 오래 켜놔도 느려지지 않는 속도, 바이러스 같은건 존재하지도 않습니다. 솔직히 세상 모든사람이 맥이나 리눅스를 썼으면 하는 바램이 생길 정도 입니다. 
물런 처움에 맥과 리눅스가 편했던것만은 아님니다. 맥은 오래된 윈도우 중심의 사용환경이 주는 고정관념때문에 완전히 체계가 다른 맥을 쓰기가 매우 불편했었습니다. 뿐만아니라 리눅스도 마찮가지 입니다. 리눅스의 경우 처음 리눅스를 접했던 2006년만 하더라도 엄청난 양의 문제들 때문에 매일 컴퓨터와 씨름해야 했고 하루에도 몇번씩이나 맥과 리눅스를 포기할까도 생각했었습니다. 지금 리눅스는 아주 간편하고 숙련자가 아닌 초보자도 누구나 쉽게 쓸수있게 많은 개선이 이루어졌고, 그것을 이루던 많은 문제들도 웬만해선 다 개선되었습니다. (비디오 카드 문제, 하드웨어 인식문제, 동영상 재생시 코덱 문제.. 등등..)

하지만 여전히 맥과 리눅스를 사용하는데 커다란 불편함이 있으니 그것은 바로 엑티브X...

전 반 익스플로러나 반 엑티브엑스가 아닙니다.

단지 그로인해 다른 장점을 가지고있는 파이어폭스, 사파리, 크롬, 오페라를 포기하지 않았으면 하는 바램입니다. 인터넷 뱅킹이나 어떤 한국사이트를 들어갈때마다 부딧치는 문제입니다. 
어떤이의 주장에는 코볼기반으로 만들어져서 더 보안성이 높다라는 주장도 있습니다. 물런 인정합니다. 하지만 간편한 일을 할때 이런것으로 컴퓨터를 재부팅한다거나 다른 컴퓨터를 사용해야한다면 큰 불편이죠..

꼭 그것이 아니더라도 웹에서 공정성 공평성을 생각한다면 당연히 진행되어야 하는 일입니다.
그리고 일륜직이지 않은 웹사회의 다양성이 보장되었으면 합니다.


이에 김기창 교수님이 공익을 위해 큰 희생을 하셨습니다.
저도 물런 책을 구매할 생각입니다. 
조금더 오픈 웹과 오픈뱅크에 관심있으신 분들은 오른쪽아래에 오픈뱅크 프로젝트에 참여하셔서 서명이라도 해주시면 큰힘이 될거 같습니다. 
Posted by blindfish
컴퓨터/mac2009. 6. 11. 00:40

제가 지금 맥북고 있습니다..

하지만 만약에 미국에 간다면.

아이폰을 안쓸수가 없을거 같네요..;

정말 편리하고 화려하고 간단한 애플의 인터페이스에 반하지 않을수 없습니다..

현재 맥북에도 상당히 만족하고 있는데..

맥북과 연동한다면.. 정말 일상이 효율적일것만 같습니다..^^;;

가격도 핸드폰인데 비해 심하게 부담되는것도 아니고.

한국에선 쓰기 어렵겠지만.. 정말.. 대단하네요..

애플 홍보대사는 아니지만.. 참..;

영어가 조금 압박이긴 하지만 어렵지 않네요..ㅎ 한번 보길 권장합니다..^^
Posted by blindfish
컴퓨터/linux2009. 5. 24. 01:14
나도 한때는 오페라를 메인 브라우저로 쓰곤 했었다. 지금은 왜 안쓰냐고? 그건 오페라가 기대에 못 미치거나, 한국의 실정에는 맞지 않는다는 자괴적인 심정에서가 아니라, 단지 블로그에 글쓸때 불편하다는 점 때문이다. 만일 얌전하게 웹서핑이나 하면서 남이 쓴 글을 보고만 있는다면, 오페라를 계속 쓰고 있었을 것이다. 그리고 파폭같이 이것저것 만지는 잔 재미때문에 오페라를 손대는 일이 자연히 줄어들고 말았다.

그런데 요즘 여기저기에서 오페라에 대한 글을 자주 볼 수 있다. 그동안 말로만 들었는데, 실제로 써보고 나니 대단한 브라우저라면서 칭찬을 하는 글들이 많다. 동감이다. 오페라 브라우저는 브라우저 자체만의 완성도로 볼 때에는 최강의 브라우저임이 틀림없다. 요즘 모바일, Wii 같은 게임기로 영역을 확장하면서, 지명도도 많이 올라간 상태이다. 이번 글에서는 그런 오페라 열풍, 아니 미풍에 조금 더 힘을 실어줄까 해서, 오페라의 장점 몇가지를 얘기해보고자 한다.


1. 가볍고 빠르다.

오페라의 스피드는 국내외를 막론하고 다들 최고라고 인정하는 부분이다. 단순히 아이콘을 클릭해서 뜨는 기동 시간을 말하는 것이 아니라, 실제로 써보면 체감 속도에서 경쾌함을 느낄 수 있다.


2. 브라우저 + (알파)

오페라는 단순히 웹브라우저 기능만 있는 것이 아니다. 이메일, RSS, 채팅, 뉴스 그룹 등, 웬만한 인터넷 도구는 거의다 내장하고 있다. 그러면서도 용량은 파이어폭스보다 작다. 혹자는 그런 통합 프로그램은 복잡한데다, 기능도 전용툴에 못 미친다고 싫어한다. 하지만 오페라의 기능은 더도말고 덜도말고 딱 적당하다. 특히 이메일 같은 경우엔 POP3 를 지원하기 때문에, 네이버나 지메일도 한꺼번에 읽어들일 수 있다. 당연히 웹메일로 접속해 보면, 읽지않은 메일의 수도 0 으로 초기화된다. 나는 이메일 기능 때문이라도 오페라를 가끔씩 돌려보곤 한다. 그리고 뉴스 그룹도 간간히 쓰곤 한다. 뉴스 그룹이나 채팅(IRC) 같은 기능은 별것 아니지만, 막상 쓰려고 하면 막막할 때가 많다. RSS 구독 기능은 그다지 추천하고 싶지 않다. 이건 오페라의 기능이 떨어져서라기 보다는 오프라인보다 온라인 방식이 훨씬 편리하기 때문이다. 개인적으로 한RSS 를 추천한다.


3. 편리한 마우스 기능

마우스 제스쳐야 이제 왠만한 브라우저는 모두 지원하기 때문에 큰 특징은 되지 않는다. 솔직히 오페라의 마우스 제스쳐 설정은 다른 것에 비해 조금 어렵기도 하다. 하지만 조금만 공을 들이면, 막강한 활용이 가능하다. 그동안 오페라에서는 링크 던지기가 안되는 줄 알았는데, 자세히 살펴보니 기본으로 지원하고 있었다. 단지 마우스 오른쪽 버튼을 누른채로 해야된다는 점이 여타의 브라우저와 조금 다르다.

그리고 오페라의 문맥 메뉴, 즉 마우스 오른쪽 버튼을 누르면 나타나는 메뉴는 오랜 브라우저 기술을 축적한 회사답게 친인간적이고 합리적이다. 특히 선택 부분을 메모장으로 바로 저장하는 기능(Copy to note)이나, 음성 전환(Speak) 기능, 검색(Search with) 같은 것은 실제로 써봐야 편리함을 알 수 있다. 지금이야 파폭도 확장기능을 통해 이런 것 대부분을 따라할 수 있지만, 오페라의 안정적인 내장 기능에 비하면 조금 떨어지는 느낌이다. 다시 한번 강조하지만, 오페라의 매력은 사용자를 생각하는 심플한 기능에 있다. 아마 구글을 애용하는 사람이라면, 오페라 또한 좋아할 것이다.


4. 음성 전환 기능 (TTS)

Text to Speech 라고 텍스트를 선택하면, 음성으로 읽어주는 기능을 말한다. 윈도우에도 기본으로 내장돼 있지만, 오페라의 그것과는 품질에서 많은 차이가 난다. 비록 영문만 지원되긴 하지만 네이티브와 상당히 흡사한 발음을 들려준다. (잘 쓰이지는 않지만, 음성으로 브라우저를 컨트롤할 수도 있다.)

Ready for a revolution in the way you access the Web sites you can't live without? Try Speed Dial in Opera's newest Web browser. It makes the fastest even faster.



5. 높은 품질의 이미지 표시
축소된 이미지를 IE 나 파이어폭스로 보면, 많이 찌그러져서 보기가 않좋다. 하지만 오페라는 그래픽 뷰어에 버금가는 높은 품질을 유지해준다. 아래에 예제를 걸어놨으니 직접 비교해 보길 바란다. 보다시피 오페라는 축소된 이미지의 작은 글자까지 읽을 수 있다.



지금까지 생각나는대로 오페라만의 장점 몇가지를 살펴보았다. 마지막으로 조금 과거의 얘기를 하자면, 오페라 브라우저는 버전 8까지 상용으로 팔던 것이었다. 즉 1%도 안되는 점유율을 가지고 있으면서도, 감히 돈받고 팔던 브라우저였던 것이다. 그만큼 자신들이 만든 브라우저에 자신감이 있었다는 얘기다. 지금은 구글과의 제휴와 모바일 지원 등 수익 영역을 확대한 덕분에 무료로 제공되고 있지만 말이다. 아무튼 당신이 파워 웹서퍼가 돼고자 한다면, 오페라는 한번쯤 써봐야 할 필수 브라우저이다.

http://zzzik.tistory.com/221

에서 퍼옴..

오페라라는 부라우저

상당히 괜찮네요.. 한번씩 써보시길..

리눅스에서는 파이어폭스가 있지만 너무느린 경향이 있어요..

근데 이건 가볍고 좋네요..^^

사파리랑 비교해서는 비슷한거 같아요..^^ㅎㅎ

하지만 역시 블로그에 글을 쓸때는 약간 불편하네요..;;; 지금도 불편해요 ..ㅠ_ㅠ

칸이 안맞아서 그런가..;;

Posted by blindfish
컴퓨터/linux2009. 5. 21. 15:16
후배가 ksh을 쓰고 싶다고 하더니 이걸 깔아달라는 부탁을 했었습니다. 이 서버는 B모 후배가 고체물리이론에서 계산을 돌리는 그런 서버였는데 평소에는 연구실 웹서버를 사용하던 것이었지요..
그래서 간단하게 우분투의 미러를 바꾸고.. (전버전에는 ksh이 제공 되지 않더군요..)

우선 
$sudo vi /etc/qpt/source.list
에 가서 안에껄 싹다지운다음에..
deb http://security.ubuntu.com/ubuntu jaunty-security main restricted
deb-src http://security.ubuntu.com/ubuntu jaunty-security main restricted
deb http://security.ubuntu.com/ubuntu jaunty-security universe
deb-src http://security.ubuntu.com/ubuntu jaunty-security universe
deb http://security.ubuntu.com/ubuntu jaunty-security multiverse
deb-src http://security.ubuntu.com/ubuntu jaunty-security multiverse

## ubuntu daum mirror##
deb http://ftp.daum.net/ubuntu jaunty main multiverse restricted universe
deb-src http://ftp.daum.net/ubuntu jaunty main multiverse restricted universe
deb http://ftp.daum.net/ubuntu jaunty-backports main multiverse restricted universe
deb-src http://ftp.daum.net/ubuntu jaunty-backports main multiverse restricted universe
deb http://ftp.daum.net/ubuntu jaunty-proposed main multiverse restricted universe
deb-src http://ftp.daum.net/ubuntu jaunty-proposed main multiverse restricted universe
deb http://ftp.daum.net/ubuntu jaunty-security main multiverse restricted universe
deb-src http://ftp.daum.net/ubuntu jaunty-security main multiverse restricted universe

deb http://ftp.daum.net/ubuntu jaunty-updates main multiverse restricted universe
deb-src http://ftp.daum.net/ubuntu jaunty-updates main multiverse restricted universe

를 내립다 붙였는데..;;
정작 필요한 부분은 daum mirror인 아래 파란색 부분 뿐입니다..-_-;;ㅋ 보안을 위한다면 위에것도 필요 하겟죠??

그다음에 
$sudo apt-get update
$sudo apt-get upgrade
업그레이드를 한다음에
$sudo apt-get install ksh
로 간단하게 ksh를 깔았죠. 여기까진 좋았습니다. 그 다음에 업그레이드를 계속 했죠.

그런데 그후에 홈페이지를 들어가보니 웹페이지는 멀쩡하지만 database가 박살나 있었습니다..
database error라는 글짜만 뜨더군요.. 그 표시창이 뜨자. 그래도 아직 제로보드는 멀쩡하드는걸 알아차렸습니다. 이것도 잘 나온다는건 아파치도 멀쩡하다는 증거인데요. 그렇다면 잘못된건 단하나 database이죠... 
바로 
sudo /etc/init.d/mysql start
하자.. 기다렸다는듯이..
* /etc/init.d/mysql: ERROR: Using expire_logs_days without log_bin crashes the server. See README.Debian.gz
가 떳습니다.
mysql이 작동을 안하고 있더군요..

바로 구글링 해서 알아본 결과...
/etc/myqsl/my.cnf
이 파일을 수정하면 됨니다.

# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id              = 1
log_bin                 = /var/log/mysql/mysql-bin.log   <==바로 이 부분에 있던 주석을 제거 합니다.
expire_logs_days        = 10
max_binlog_size         = 100M
#binlog_do_db           = include_database_name
#binlog_ignore_db       = include_database_name
#


이렇게 하니까 정상적으로 mysql이 시작되고 홈페이지가 정상적으로 작동하더군요..
자칫했으면 큰 대형 삽질로 이어질 뻔 했지만..
다행이 쉽게 끝났습니다.
여러분도 리눅스의 문제로 충돌하게 되면 아예 에러 메세지를 긁어서 구글에 붙이면.. 같은 고민을 하던 다른 수많은 사람들을 쉽게 만나게 됨니다. 저도 그냥 에러메세지인
* /etc/init.d/mysql: ERROR: Using expire_logs_days without log_bin crashes the server. See README.Debian.gz
를 입력하자, 자연스럽게 답이 나오더군요..
희망을 잃지마시고 삽질에 전념하시길 바래요^^

Posted by blindfish
컴퓨터2009. 5. 11. 23:18
어느날 늘 들어가던 싸이월드에 들어갔었습니다. 그런데 몇일동안이나 방문자가 적다는걸 알게 됬고 글을 올리던 안올리던 사진을 올리던 안올리던 더이상 사람이 들어오지 않는 것을 발견하게 되었죠..;; (혹자는 인간관계의 문제 아니냐고 했지만 꼭 그건 아닌거 같습니다..;;) 그리고 바쁜관계로 별로 다른사람들에게 글남기기도 않게 되고 그랬죠.. 그래서 전 과감하게 쌰이월드를 탈퇴하게 되었습니다. 어처 구는 없는건 탈퇴를 하려고 목록을 찻는데 정말 찻기 힘들더군요. 아마 이글을 보고 계신 분들도 그냥은 절대로 찻을수 없을것입니다. 결국 검색엔진으로 검색을 해서 어디서 하는건지 찻았습니다. 싸이월드에 헬프데스크라고 하는 곳



보면 가운데 쯤에 헬프 테스크란데가 보이죠? +_+ 저기에 가면 탈퇴 할수 있더군요. 



보면 회원 탈퇴를 어렵게 어렵게 찻을수 있습니다. ㅠ_ㅠ 
제가 싸이월드를 탈퇴한 이유는 솔직히 방문자 수때문많은 아니었습니다. 몇가지 이유를 더들어 보면
1. 정리 안되고 복잡해진 일촌 관계들.
2. 유닉스 계열이나 firefox, safafi등에게 원활하게 제공 되지 않는 서비스 

등의 이유도 한몫했죠. 지금까지 업로딩해둔 사진들도 아깝고 들어놨떤 클럽들도 아깝긴 했지만. 싸이월드가 제공하는 어떤종류의 독단이나 독점으로 인한 불편함들이 더 컸다고 할수 있었어요. 솔직히 클럽이 되더라도 좀더 자유로워 지기엔 개인적인 홈페이지나 웹페이지가 더 좋다고 보는 경향도 있었고 하네요..

아무튼.. 위의 것들은 약간 여담이고.. 문제는 네이트 온에서 발생합니다. 원래 저는 네이트온은 그나마 유용하게 쓰고 있었어요. 많은 사람들이 로그인 되어 있었고 파일을 전송하는데 가장 효과적인 툴이기도 했죠. 비록 제가 사용하는 리눅스 시스템이나 맥킨토시와의 많은 충돌등은 피할수 없긴 했지만. 그래도 나름대로 많은 개선으로 인하여 좋게 좋게 나아지고 있길래 그냥 넘어가던 것이 었습니다. 그런데 중요한건은 싸이월드의 탈퇴 네이트온의 탈퇴로 이어진다는 사실입니다. 이사실은 실로 저에겐 충격이 었는데요. 싸이월드 탈퇴할땐 그런 경고 메세지도 못본거 같은데.. 아놔.ㅠ_ㅠ 결국 모든 주소록을 지워버리게 되었습니다. 순간 어이가 없긴 했었죠. 대락 멍... 했습니다. 하지만 이미 지난일 어쩔수 없다고 생각하고 네이트온에서 다시 회원 가입을 클릭한 순간..



대락 정신이 멍해지고 말았습니다.
저 웃고 있는 얼굴을 보고 다시 싸이월드에 가입하라는 내용은.. 참.. ㅠ_ㅠ
결국 저 싸이월드와 네이트온의 강력한 연계로 인해 저는 네이트온을 버리게 되었습니다. 하지만 후회하지 않습니다. 우선 계속 네이트온으로 귀찮게 뭐 물어보고 하던 사람이 없엊졌으니까요. 물런 연락안되던 사람들과 간간히 이야기 하던 재미는 없어졌지만, 만족 합니다. 결국 저의 메신져는 skype 입니다. 훨신 맥킨토시와 리눅스에서 사용이 용이하고 네이토온처럼 무슨 플러그인 없이도 쉽게 화상채팅이나 음성채팅이 가능해졌을뿐 아니라 아주 예쁜 인터페이스는 덤이라고 할수 있죠 쓰다가 에러를 만들며 꺼지지도 않고 매우 만족하고 있습니다. 비록 아직 사용자가 많지 않지만 전세계적으로 퍼져 있고 얼마전엔 외국인 친구도 사귀게 됬습니다. 물런 외국에 계신 교수님과 이야기 할때도 적당하죠^^

그리고 싸이월드를 버리면서 다시 시작하게 된건 블로그 입니다. 바로 이 tistory죠^^ 전에는 하루에 100명이 넘게 들어왔었는데 요즘은 방문자가 쫌더 뜸해지긴 했어도 서로 전문지식도 나눌수 있고 간간히 글을 올리는 재밋도 쏠쏠하네요. 

싸이월드는 확실히 정말 많은 사람들이 이용합니다. 하지만 단지 편하다는 이유만으로 나머지를 기피하는건 늘 좋은것만은 아니죠. 익숙한것에서 빠져나오면 다른것들도 보일게 됨니다. 
좀더 건설적이면서 자기 개발혹은 자아실현적으로 사용하는게 더 건설적이겠죠.

그리고 마이크로소프트나 싸이월드 네이트온등으로 대변되는 거대기업들이 간과하고 있는 비록 사용하는 운영체제가 다른 웹상의 약자들도 충분히 보호해주고 융통성있게 조정해주는게 순리라고 생각 합니다. 구글, 다음, 그리고 이 티스토리 같은 웹사이트들 처럼 말이죠...^^
Posted by blindfish
컴퓨터/linux2009. 4. 23. 20:26
종종 통계물리 연구를 하다보면 종종 여러 파일에 대해서 명령어를 연속적으로 입력해 야 할때가 있습니다. 예를 들어서 

./test1.o > object1.txt
./test2.o > object2.txt
./test3.o > object3.txt
./test4.o > object4.txt

이런 식으로 연속적으로 실행해야 하는경우 이죠.. 가장 좋은 방법은 bash  shell을 만드는 방법이 편하죠. 이것은 shell script라고도 합니다. 

vi example.sh 

으로 파일을 만든후에 안에 명령어를 차곡차곡 입력하면 됌니다. 파일을 실행하면 입력된 명령어들이 맨위부터 차례로 실행되게 되는데요 . 우선은 맨앞에서 쉘의 형식을 써주어야 하는데요. 대부분 bash쉘이니까

#!/bin/bash 

이런 식으로 써주면 됌니다. 그 다음부터 차근차근 써나가면 돼요. 다 쓰고 나서 실행을 할때는 실행 퍼미션을 설정해주고 실행을 하면 됌니다.

chmod +x example.sh 혹은 chmod 755 example.sh 

이런 식으로 입력해주면 실행권한을 가지게 되지요. 그리고나서 실행 하면 됌니다

./example.sh 

그럼 신나게 실행이 됨니다. 이 방법 외에도 오늘 전까지 제가 쓰던 방법은 명령어를 세미콜론 ; 으로 구분한 다음에 쉘에 그냥 갔다가 붙이는 방법입니다. 복사해서 붙여넣기를 하는거죠. 예를 들어 위에 있는걸 실행한다면

./test1.o > object1.txt; ./test2.o > object2.txt; ./test3.o > object3.txt; ./test4.o > object4.txt

이런 식으로 하고 넣어주기만 하면 맨앞 세미콜론부터 실행 시키기 시작합니다. 조금 무식한 방법 같아 보이긴 하지만 굉장히 편리한 방법입니다. 그렇다면 간단하게 10개 내외의 명령어의 경우에는 그냥 손으로 쓰면 되는데 저처럼 한 100개 정도이면 어떻게 할까요??
이 경우에도 간단하게 awk를 이용해서 해결하는 방법이 있습니다.

ls *.o > test.txt
awk '{print "./"$1, " > object"$0".txt"}' test.txt > example.sh

이런 식으로 처리해주는 방법인데요. 딱 봐도 약간 난해해 보이지만 실제로는 그다지 어렵지 않습니다. 이건 같단하게 명령어들을 쉘에 써주는게 되는데요. "" 안에는 문장이 들어가게 됨니다. 즉 "" 에는 반복적으로 들어가는 명령어 부분을 넣으면 되구요. 그외에 부분엔 $0.$1을 넣어서 test.txt의 열을 출력하게 됨니다. $1은 첫번째열 $2는 두번째열 이런식이죠. $0인경우에는 줄번호를 출력하게 됨니다. 
실제로 awk는 데이터 베이스를 위한 명령어로 파일을 정리하고 편집하는데 굉장히 편리한 명렁어 입니다. 개인적으로 작년쯤 프로그램으로 삽질을 하고 있었을때 연구실 누나가 가르쳐준 방법이죠.. 빨리 알았다면 그 고생 안햇을덴데..;; 

awk문법은 대충 
awk "{명령어 출령형식}" 읽어들일파일 

이런식인데요 이렇게 하고 치면 우선 화면에 출력이 됨니다. 이것을 리다이얼(>)로 bash파일에 쑤셔 넣으면 됨니다. 리다이얼을 아직 모르시는 분이 많으시려나? 라다이얼은 결과물을 꺽쇠방향으로 보내주는것인데요. 화면에 출력되는 것을 그대로 저장해줍니다. 두개를 써서 error를 저장해주기도 하는데요. 이는 나중에 다시 포스팅 하겠습니다.

이렇게 script를 만들거나 해서 실행하면 작업의 양이 많은 경우에는 시간이 상당히 걸리는데요. 이럴때는 bg로 만들거나 screen을 이용해서 세션 관리를 해두면 됨니다. 이는 나중에 언급하도록 하죠. 그런데 그정도로 오랜시간이 걸리는 계산을 하시는 분들이라면 이런것쯤은 알고 있지 않을까 싶네요..;;
Posted by blindfish