컴퓨터/linux2012. 3. 28. 02:14

latex의 dvi 파일을 txt로 바꿔주기    

catdvi -e 1 -U file.dvi | sed -re "s/\[U\+2022\]/*/g" | sed -re "s/([^^[:space:]])\s+/\1 /g" > file.txt


이 한줄의 스크립이 엄청난 힘을 가지고 있다..

Posted by blindfish
컴퓨터/linux2011. 7. 4. 23:41
우리나라에 이런 설명이 없는게 너무 아쉬워서 제가 하나 써내려 갑니다.
하.. 하루종일 이 간단한걸 해보기 위해 구글을 뒤지고 다녔던 걸 생각하면 눈물이 앞을 가리네요.

 우선 출처부터 써내려 갑니다. 
 
http://www.daniweb.com/software-development/python/threads/119693 

 제가 하려고 하는것은 어떤 컬럼으로 구분된 데이터 파일에 있는 숫자를 읽어서 

각각의 변수들을 제가 원하는 어떤 함수에 집어 넣는것입니다.

참 간단한데. 아무리 찻아도 찻아도 찻을수가 없는.. 팁입니다.

우선 numpy 라고 불리는 numerical한 계산을 많이 해주는 패키지를 import 합니다.
(앞으로 물리학을 하면서 python을 계속 쓰려면 이 패키지를 심층 분석해봐야 겠습니다. ) 

>>from numpy import *
>>f = loadtxt("test.txt")
>>firstculum = f[:, 0]
>>print firstculum
[1,2,3,....., 999, 1000] 


딱 봐도 느낌이 팍오는 소스입니다.  
 
첫번째 컬럼을 읽는 소스이죠? 
이제 잘 활용해서 쓰기만 하면 되겠죠?  
Posted by blindfish
컴퓨터/linux2011. 4. 8. 18:37
리눅스를 사용하는 많은 분들이 즐겨 쓰는 컴파일러는 단연 gcc 이죠. 리눅스의 웬만한 프로그램들의 기본을 이루고 있을 뿐만 아니라 무엇보다도 무료라는 점이 매력적입니다. (vidual stdio의 가격을 생각해 본다면 참;; )

그런데 의외로 사람들이 잘 모르는 부분중에 하나가 gcc가 시중에 있는 웬만한 컴파일러에 비해 컴파일한 프로그램의 속도가 느리다는 것입니다. 계산 과학쪽을 하는 사람들뿐만 아니라 어떤 상용프로그램들도 느리다는 건데요. (그렇다고 인텔 cpu에서만 작동하는 프로그램도 웃기겠네요.)
그런 문제를 해결해 주는 상당히 고속의 컴파일러가 있습니다. 
바로 intel compiler에요. ^^ 리눅스에서 명령어로 쓸려면 icc 라고 쓰고 gcc랑 동일하게 사용하시면 됨니다. 

우선 설치를 해보도록 하죠. 먼저 인텔 홈페이지에 들어가서 무료인 noncommercial version을 받습니다. noncommercial version은 아쉽게도 맥이나 윈도우에서는 사용할수가 없습니다. 
가서 약관에 동의하고 자신의 머신의 기종에 따라(32bit인지 64bit인지) 컴파일러를 다운받습니다.  기종을 확인하는 법은
$cat /proc/cpuinfo
를 봐서 CPU기종을 확인 하는 방법이 있고
$uname -a
란 명령어로 운영체제의 종류를 파악합니다. i686 이면 32bit, x86_64이면 64bit 입니다. 중간에 메일주소를 써줘야하는데 잘 써줘야 합니다. 그래야 씨리얼번호가 제대로 오거든요. 
다운을 다 받았으면 먼저 JAVA Runtime Environment 란걸 먼저 설치해줍니다. 이게 없으면 인스톨이 안되요. 원래 어느정도 충족조건이 있지만 웬만한건 다 충족하고 이게 충족이 잘 안됩니다. 

$sudo apt-get install gcj

JAVA Runtime Environment 가 이렇게 설치가 되면

$tar xvfz l_ccompxe_(.....).tgz
$cd ./l_ccompxe_(.......)
$sudo ./install.sh
을 해주면 인스톨을 하기 시작합니다. 

Step no: 1 of 6 | Welcome
--------------------------------------------------------------------------------
Welcome to the Intel(R) Composer XE 2011 Update 2 for Linux* installation
program.

Intel(R) C++ Composer XE 2011 Update 2 for Linux* includes not only the
high-performance Intel(R) C++ Compiler XE, but also Intel(R) Debugger, Intel(R) 
Threading Building Blocks (Intel(R) TBB), Intel(R) Integrated Performance
Primitives (Intel(R) IPP), and Intel(R) Math Kernel Library (Intel(R) MKL) to
create a strong foundation for building robust, high performance parallel code
at significant price savings.
--------------------------------------------------------------------------------
You will complete the steps below during this installation:
Step 1 : Welcome
Step 2 : License
Step 3 : Activation
Step 4 : Options
Step 5 : Installation
Step 6 : Complete
--------------------------------------------------------------------------------
Press "Enter" key to continue or "q" to quit: 

이런글이 나옵니다. 간단한 설명인데 그냥 엔터 치시면 됨니다. 

Step no: 1 of 6 | Options > Missing Optional Pre-requisite(s)
--------------------------------------------------------------------------------
There is one or more optional unresolved issues. It is highly recommended to fix
it all before you continue the installation. You can fix it without exiting from
the installation and re-check. Or you can quit from the installation, fix it and
run the installation again.
--------------------------------------------------------------------------------
Missing optional pre-requisite
-- unsupported OS
--------------------------------------------------------------------------------
1. Skip missing optional pre-requisites [default]
2. Show the detailed info about issue(s)
3. Re-check the pre-requisites

h. Help
b. Back to the previous menu
q. Quit
--------------------------------------------------------------------------------
Please type a selection or press "Enter" to accept default choice [1]: 

지원하지 않는 운영체제다고 하는데 그냥 무시하시면 됨니다. 
그다음에 약관이 좌르륵 나옵니다. 알았다고 accept이라고 타이핑하고 엔터

Step no: 3 of 6 | Activation
--------------------------------------------------------------------------------
If you have purchased this product and have the serial number and a connection
to the internet you can choose to activate the product at this time. Activation
is a secure and anonymous one-time process that verifies your software licensing
rights to use the product. Alternatively, you can choose to evaluate the
product or defer activation by choosing the evaluate option. Evaluation software
will time out in about one month. Also you can use license file, license
manager, or the
system you are installing on does not have internet access activation options.
--------------------------------------------------------------------------------
1. I want to activate my product using a serial number [default]
2. I want to evaluate my product or activate later 
3. I want to activate either remotely, or by using a license file, or by using a
   license manager

h. Help
b. Back to the previous menu
q. Quit
--------------------------------------------------------------------------------
Please type a selection or press "Enter" to accept default choice [1]: 
 
라이센스를 인정받으라고 하네요. 우리는 씨리얼 넘버가 있으니까 엔터를 쳐서 1번으로 갑니다.

다음에 바로 씨리얼 넘버 넣으라고 하는데 침착하게 이메일에 있는 씨리얼넘버를 넣어줍니다.

--------------------------------------------------------------------------------
Activation completed successfully.
--------------------------------------------------------------------------------
Press "Enter" key to continue: 

된다고 하네요. ㅎ 

 --------------------------------------------------------------------------------
You are now ready to begin installation. You can use all default installation
settings by simply choosing the "Start installation Now" option or you can
customize these settings by selecting any of the change options given below
first. You can view a summary of the settings by selecting 
"Show pre-install summary".
--------------------------------------------------------------------------------
1. Start installation Now

2. Change install directory      [ /opt/intel/composerxe-2011.2.137 ]
3. Change components to install  [ All ]
4. Show pre-install summary

h. Help
b. Back to the previous menu
q. Quit
--------------------------------------------------------------------------------
Please type a selection or press "Enter" to accept default choice [1]: 

이제 인스톨을 하려고 합니다. 원래 이부분은 dependency라고 하죠. 깔수있는 조건들을 만족하는지 확인하는 곳입니다. gcj를 깔았으니 조건을 잘 만족하는거죠. 혹시 안되더라도 깔라고 시키는것만 잘 깔면 됨니다. 엔터.

Step no: 5 of 6 | Installation
--------------------------------------------------------------------------------
Each component will be installed individually. If you cancel the installation,
components that have been completely installed will remain on your system. This
installation may take several minutes, depending on your system and the options
you selected.
--------------------------------------------------------------------------------
Installing Intel(R) C++ Compiler XE 12.0 Update 2 for Linux*
              (for applications running on IA-32) component... done
--------------------------------------------------------------------------------
Installing Intel(R) Debugger 12.0 Update 2 for Linux*
              (for applications running on IA-32) component... done
--------------------------------------------------------------------------------
Installing Intel(R) Math Kernel Library 10.3 Update 2 for Linux*
              (for applications running on IA-32) component... done
--------------------------------------------------------------------------------
Installing Intel(R) Integrated Performance Primitives 7.0 Update 2 for Linux*
              (for applications running on IA-32) component... done
--------------------------------------------------------------------------------
Installing Intel(R) Threading Building Blocks 3.0 Update 5 core files and
examples for Linux* component... done
--------------------------------------------------------------------------------
Press "Enter" key to continue

살살 깔리네요. 엔터.

 Step no: 6 of 6 | Complete
--------------------------------------------------------------------------------
Thank you for installing and for using the
Intel(R) Composer XE 2011 Update 2 for Linux*.

Support services start from the time you install or activate your product, so
please create your support account now in order to take full advantage of your
product purchase. Your Subscription Service support account provides access to
free product updates interactive issue management, technical support, sample
code, and documentation.

To create your support account, please visit the Subscription Services web site
https://registrationcenter.intel.com/RegCenter/registerexpress.aspx?clientsn=N5D
5-F4K7MMS7

To get started using Intel(R) Composer XE 2011 Update 2 located in
/opt/intel/composerxe-2011.2.137: 
- Set the environment variables for a terminal window using one of the following
  (replace "intel64" with "ia32" if you are using a 32-bit platform).
     For csh/tcsh:
        $ source install-dir/bin/compilervars.csh intel64
     For bash:
        $ source install-dir/bin/compilervars.sh intel64
     To invoke the installed compilers:
        For C++: icpc
        For C: icc
        For Fortran: ifort
  To get help, append the -help option or precede with the man command.
- To view a table of getting started documents: 
  install-dir/Documentation/en_US/documentation_c.htm.

Movies and additional training are available on our website at
www.intel.com/software/products.
--------------------------------------------------------------------------------
q. Quit [default]
--------------------------------------------------------------------------------
Please type a selection or press "Enter" to accept default choice [q]: 

잘깔렸다고 하네요. 그 다음에 shell에 설정을 해주어야 쓸수가 있는데요. 우리는 모두 bash 쉘을 쓰니까 $ source install-dir/bin/compilervars.sh intel64 쓰면 되겠네요. installed-dir 은 일반적으로 /opt/intel/composerxe-(......)에 있습니다.

$echo "source /opt/intel/composerxe-(......)/bin/compilervars.sh intel64" >> ~/.bashrc
위에 써있듯이 64bit면 intel64 를 쓰고 32bit면 ia32라고 써야합니다.
$bash
bash 한번 실행해주고 나서 
$icc 
라고 치면 잘 된다는걸 알수 있습니다. ^^ 이제 잘 쓰기만 하면되요.
(C++은 icpc란 명령어를 사용합니다. fortran은 ifort)

제 경험상 계산 시간이 1/3정도 더 줄어들더라구요. 1/3이 작아 보이지만 삼일 계산할걸 이틀만에 끝낸다는거니.. 정말 기가 막힙니다. 알고리즘에 따라서 반 정도밖에 안걸리거나 빨리지지 않는 경우도 있는데 그건 어쩔수 없죠. ㅋ 그래도 피부로 느낄수 있는 속도향상을 맛볼수가 있습니다. 
Posted by blindfish
컴퓨터/linux2011. 4. 7. 21:44
Ubigraph 란 것을 알게된지도 좀 됬었는데 그동안 포스팅을 한다고한다고 하는걸 이제야 포스팅 하게 되네요. 물런 잘쓰시는 분은 그냥 보기만 하면  바로바로 따라 하실수 있습니다. 
Ubigraph란 어떤 종류의 네트워크나 시스템의 움직임이나 모습을 시뮬레이션을 하면서 실시간으로 그것들의 동력학적 변화를 눈으로 볼수 있게 해주는 아주 유용한 툴입니다.  일단 동영상을 보시죠.  


그냥 봐도 화려하죠?  
우선 설치하는 법부터 알려드리죠. 


http://ubietylab.net/ubigraph/index.html

홈페이지에 들어가셔서 자신의 컴퓨터와 운영체제에 맞는 것을 다운로드 합니다. 

$ tar xvfz UbiGraph-....tar
$ cd UbiGraph-...
$ bin/ubigraph_server & (empty black window)
$ cd examples/Python
$ ./run_all.sh
이렇게 하면 설치가 완료된것입니다. 마지막에 보면 실행이 잘 될거에요. 중간에 검은 윈도우가 떠야합니다. 그게 안뜨면 안돼요. 그게 안될경우에는 xmlrpc쪽이 문제일수도 있지만 웬만하면 잘 뜹니다. 잘 안뜨면 컴퓨터가 정말 이상한것일 가능성이 있습니다. 이 글을 쓰면서 그 문제를 어떻게 해결해야 하는 기억이 나지 않아서 한 4시간을 버렸네요... 정말 이럴때마다 이런야가 너무 싫어지네요. 너무 화가 나요. 전에 몇번 깔아 봤었기 때문에 쉬울줄 알았는데 엉뚱하고 쓸데없는데서 시간을 허비했네요 ㅠ_ㅠ 다시한번 기록의 중요성을 느낌니다. 이제 뭘 하든간에 무조건 다 기록하는 습관을 남겨야겠습니다. 

홈페이지에 나온 템플릿대로 쓰면 웬만하면 다 됩니다. 
소스 코드에 대한 설명을 하자면 이것은 랜덤 그래프인데요. 

소스코드 쓰실땐 한글부분은 모두 지우고 쓰세요. 

#!/usr/bin/python

import random as rd
#랜덤함수를 사용하기 위해서 라이브러리를 불러줍니다.

import xmlrpclib 

import time
#중간에 쉬는 시간을 주기위해 넣어줍니다. 너무 빨리 없어지면 보지를 못하죠. 


server_url = 'http://127.0.0.1:20738/RPC2'

server = xmlrpclib.Server(server_url)

G=server.ubigraph
#이 부분은 템플릿이라고 생각하시면 됩니다. 자세한건 저도 xml쪽을 잘 몰라서 모르겠네요. 


G.set_edge_style_attribute(0, "color", "#fff000")

G.set_edge_style_attribute(0, "width", "3.0")
#edge 즉 링크의 색과 굵기를 지정해줍니다. 


G.set_vertex_style_attribute(0, "color", "#ff0000")

G.set_vertex_style_attribute(0, "shape", "sphere")

#vertex 즉 노드의 색과 모양을 지정해 줍니다. 크기도 조절할수 있고 라벨도 붙일수 있습니다.

for i in range(100) :

G.new_vertex_w_id(i)
#일단은 공간에 노드들을 만들어서 뿌립니다.  


time.sleep(0.5)
#잠깐 쉬어주구요. 

for i in range(100) :

for j in range(i+1, 100) :

if rd.random() < 0.15 :

G.new_edge(i,j)

time.sleep(0.1)

#어떤 확률에 따라서 가능한 링크들을 연결해줍니다. 

ubigraph의 장점은 무엇보다도 웬만한 모든 언어를 지원 한다는 것입니다. 어떤 놈들을 python만 지원 되거나 어떤 놈들은 c만 지원 되거나 하는 단점이 있는데 이 프로그램은 들어본 거의 모든 언어에 사용할수 있다는 장점이 있습니다. 

홈페이지에 들어가면 아주 다양하게 응용해서 쓰는데요. 물리학분야에서 많이 쓸수 있을거라고 기대해 봅니다. 이것을 이용해서 복잡한 분자의 구조라던지 결정모양의 고체의 구조를 나타낼수 있을 뿐만 아니라, 그것들을 움직이게 하므로써 물질의 동력학적인 행동들을 눈으로 확인할수 있다는 장점이 있습니다. 

Posted by blindfish
컴퓨터/linux2011. 3. 29. 15:13
gnuplot을 쓰다 보면 대부분 사람들이 그렇지만 (저도 그렇고) 그냥 패키지를 apt-get 으로 깔아서 사용합니다. 
sudo apt-get install gnuplot 

하지만 이렇게 하는 경우 종종 불편을 호소하는 경우가 많은데요.  
del키가 안먹는 다든가.. 맘에 안드는 wxt를 써야 한다던가의 일이죠. (전 그냥 깔아서 쓰는걸 좋아합니다..ㅠ_ㅠ 삽질 미워요..)
X11 포워딩으로 쓰는게 좋기도 하구요.(결국 실패.. ) 확실히 한번 고생하면 그후론 참 편하죠.

  • libwxgtk2.8-dev – for the wxt terminal
  • libpango1.0-dev – for the cairo (pdf, png) and wxt terminals
  • libreadline5-dev – readline support (editing command lines)
  • libx11-dev and libxt-dev – X11 terminal
  • texinfo (optional) – needed for the tutorial
  • libgd2-xpm-dev (optional) – old png, jpeg and gif terminals based on libgd

sudo apt-get install libwxgtk2.8-dev libpango1.0-dev libreadline5-dev libx11-dev libxt-dev texinfo libgd2-xpm-dev

컴파일 인스톨을 위해선 우선 위의 패키지가 꼭 필요 합니다. 

그다음에 웹에서 gnuplot 의 소스 파일을 다운 받습니다.

압축을 풀고 (tar xvf gnuplot-4.4.3.tar)
디렉토리로 들어갑니다. (cd gnuplot-4.4.3)
자.. 이 작업이 끝났으면
./configure
make
make check 
(gnuplot 이 잘 작동하는지 테스트합니다. skip하셔도 됨. 현란한 움직임들을 보고 있자니 제가 gnuplot의 능력을 1%도 못쓰고 있다는 기분에 빠져듭니다.. =_=;;;)
sudo make install

끝... 참 쉽죠? 이럼 wxt기준으로 깔리면서 텝이나 다른 커멘드라인 명령어를 잘 수행하는 gnuplot을 설치하게 됩니다.

원래는 ./configure 뒤에 많은 옵션들을 해줘야 하지만..
( ./configure --prefix=$HOME/usr --enable-history-file --with-readline=gnu --x-include=/usr/include/X11 --x-libraries=/usr/X11/lib 이런 옵션들요.. )

요즘은 이렇게만 해도 잘 깔리네요.. 

ps. X11을 터미널로 설정하는 법 알아냈습니다. 위의 방법을 쓴다음에 .gnuplot 이란 파일을 홈디렉토리에 만들어서 set term x11을 한줄 넣으시면 됨니다. 그냥 echo "set term x11" > .gnuplot 하시면 되겠네요. ㅋ  
Posted by blindfish
컴퓨터/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
컴퓨터/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
컴퓨터/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