Linux

그래프 visualization 프로그램 Graphviz

http://www.graphviz.org/

그래프 visualization 프로그램 Graphviz입니다.

데이터를 보기 쉽도록 가시화하는 것을 다루는 정보가시화가 최근 이슈가 되고 있습니다.

Graphviz는 이미 연구된 정보가시화 알고리즘을 이용해서 관계 데이터를 그래프 형태로 보여주는 프로그램이라 하네요.

자세한 정보는 위 홈페이지에서 알아볼 수 있습니다.

Windows 설치시 grub이 사라지는 현상

리눅스를 쬐금만 사용하다면 다들 깨달을 수 있는 주제다.

리눅스가 깔려있는 컴퓨터에 윈도우(어떤 버젼이든)를 설치할 시 grub이 사라지고 마이크로소프트만의 못생긴 부트로더-_-가 설치되면서 기존의 리눅스로 부팅을 할 수 없다는 문제가 발생한다.

이 문제에 대해 수많은 사람들이 나름 해결책을 제시해 놓았다. 사실, 구글로 ‘ubuntu windows grub’만 검색해도 수 가지의 major한 해결방법을 확인할 수 있다. 아쉬운 건 그 중에선 잘 되지 않는 것도 있고 하기엔 너무 복잡한 것도 있다는 것..

따라서, 그러한 여러 가지 방법들에 대한 본인의 경험담들을 나름 정리해 보았다.(참고로, 본인의 경우 Ubuntu 10.10을 사용합니다. 따라서, 시도해본 방법 모두 Grub 2.0에만 해당하는 방법입니당^^)

1. 외부 프로그램 사용하기

link : https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows

Super Grub Disk 라는 프로그램을 다운 받은 뒤, 위 링크에서 설명한 Super Grub Disk 사용법을 차근차근 따라 윈도우에서 실행하면 된다.

Rescatux라는 프로그램도 있으며, CD에 구워서 사용하는 버젼이다. 중요한 건 다운받은 iso 파일을 그대로 CD에 구울 경우 cd부팅이 되지 않으며(아마 특정한 과정을 따라야 하는 것 같다) 또한 윈도우에서도 바로 실행할 수 없다.(실행파일이 exe가 아님)

EasyBSD라는 프로그램도 위 링크에서 소개하는데, 이 프로그램은 Windows 전용으로써 grub이 아닌 다른 부트로더를 사용한다. 단, 본인의 경우 이 프로그램이 정상적으로 작동하지 않았으며, 그 이유는 본인이 ubuntu를 설치할 때 /boot와 /의 partition을 다르게 잡았다는 사실과 이 경우에는 EasyBSD가 bootloader 설정을 제대로 못 해준다는 것이 복합적으로 작용했기 때문이라고 추측하고 있다.

2. Live CD 사용하기(*)

link : https://help.ubuntu.com/community/Grub2#Reinstalling%20GRUB%202

개인적으로 추천하는 방법이다. 기존에 설치한 /에도 접근할 수 있기에, 리눅스에 있던 데이터들을 백업하면서 grub을 고치는 일석이조의 효과를 얻을 수 있다.

중요한 점이라면, (사실 대부분의 사용자에겐 해당하지 않는 이야기이지만) 처음 linux를 설치했을 때 /와 /home, /boot 등을 (하나라도) 다른 파티션으로 설정했을 경우, 링크에서 mount 명령어를 입력할 시 이들을 모두 mount해줘야 한다는 것이다.

예를 들어,

/ 를 /dev/sda1로, /boot를 /dev/sda2로 해주었을 경우

sudo mount /dev/sda1 /mnt

sudo mount /dev/sda2 /mnt/boot

와 같이 두 개를 모두 마운트 해줘야 한다. /boot를 어느 파티션에 설치했는지 잊어먹었을 시에는, perfect한 방법은 모르겠고-_-; 본인의 경우 sudo fdisk -l명령어를 사용해 하드디스크의 파티션 속성/크기 목록을 확인한 뒤 어림짐작으로 때려맞췄다.(그리고 맞았다^^)

3. 다른 ubuntu wiki 사이트 사용하기

link 1 : https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows

link 2 : https://help.ubuntu.com/community/WindowsDualBoot

ubuntu에서 제공하는, windows 설치시 grub이 사라지는 현상에 대한 해결 방법을 제시해 놓은 wiki page이다.

사실 많은 사람들이 위 페이지에도 들어가 보았을 것이다. 위 링크에 들어가보면 이 문제를 해결할 수 있는 많은 방법들이 소개되어 있다. 나의 경우도 위 두 페이지를 중점적으로 참조했다.

그런데 조심할 점은 위 페이지에 제시되어 있는 각각의 방법들은 모두 고유한 전제조건(-_-)이 있으며, 시간이 촉박한 사람들은 급한 마음에 이를 간과하기가 쉽다는 것이다. 공식적인 wiki page이므로, 과거 GRUB Legacy를 사용하는 옛버전 ubuntu용 해결방법도 모두 제시되어 있다. GRUB Legacy용 해결 방법은 GRUB 2.0에서 사용할 시 말그대로 ‘doesn’t work’ 혹은 좋지 않은 결과를 가져올 수 있다.

deb과 rpm 변환기, alien

deb과 rpm을 변환하고 싶을 때, alien이란 프로그램을 사용하면 된다.

Fedora에서는 따로 yum으로 제공하지 않으므로, google에서 tar.gz파일을 다운받아 컴파일 하면 된다.

설치 과정은, 압축을 푼 후

su

perl Makefile.PL ; make ; make install

을 입력해주면 된다.

* alien을 설치하기 전에, 반드시 yum install perl-devel을 해 줄 것.

Maxima

Matlab에 해당하는 오픈소스진영의 애플리케이션이 Gnu Octave라면

Mathematica에 해당하는 애플리케이션은 Maxima이다

개인적으로 Mathematica에서 지원하는 변수값조절 기능(일반적으로 scroll bar 모양으로 붙어 있어 변수값을 조절할 수  있는…)도 maxima에 있을지 궁금.

그런데 octave에서도 부정적분이라던지 differential eq의 일반해를 풀어내는게 가능할까? 하긴 식 자체를 object화 시키면 어떻게든 주고 받을 수 있으니까..

더 나아가서

– 식이 객체화 되있으면 어떨까?
– 거기에다가 fourier transform처럼 무한히 많은 식이 필요하다면 어떻게 저장하지? 특정 계수에 접근할때마다 계산해야하는 방식으로 해야하나?
– “f(x) = x가 유리수일때 1, x가 무리수일때 0” 이런 경우는?
– numerical analysis전용 언어인만큼 garbage collection또한 최적화될 수 있지 않을까?
ㅋㅋㅋㅋㅋ대단히 재미있는 문제들이다.

octave에서 쓰이는 스크립트 언어의 수준이 대단히 궁금하다. 단순히 ‘algebra에 좀 더 강한 library를 지닌  script언어’ 정도일 리는 없겠지? -_-;

그리고 개인적으로 최적값이 아닌 최적의 ‘방법’을 찾아내는 프로그램을 연구하는 것도 매우 재미있을 거란 생각이 든다.

X window

최근 인터넷에서 돌리는 application을 자주 접하고 있다. 간단히 google에서 제공하는 인터넷 상의 spreadsheet/wordprocessor를 지나서 인터넷 상에서 그림을 편집하는 것(http://www.sumo.fi << 이거 상당히 대단하다), 그리고 허접한 수준이긴 하지만 os까지 만들어 놓은게 있다. os라고 할 수 있을진 몰겠지만 -_-..

그리고 최근에  X-window와 그 기본 개념이 아주 흡사하다는 대단히 재미있는 사실을 알게 되었다.

X window system는 MS의 windows와는 다르게, 윈도우 시스템 자체가 서버-클라이언트 구조로 이루어져 있다. 윈도우 시스템이 서버-클라이언트로 이루어지면 뭐가 좋느냐, 그냥 이벤트만 날리고 받고 하면 되는걸 일부러 복잡하게 구현한 거 아니냐 하고 생각할 수도 있다.

하지만 조금 다른 방면에서 생각하자면 이는 아주 큰 장점이 될 수 있다! 클라이언트로 접속하는 인간들이 서버에 깔린 애플리케이션을 클라이언트에서 사용할 수 있다.

이런 것도 가능하다.(출저는 http://tech.slashdot.org/article.pl?sid=09/02/19/1440234  << 요즘 slashdot에 푹 빠졌다 ㅋㅋ)

Setup ssh on your beefy box. Install eclipse. run xhost +

Now on your netbook ssh -x
login
eclipse&

X-window에서 실행하는 프로그램의 어느 부분까지가 클라이언트에 적재되어있는지는 알지 못했다.  나중에 좀 더 공부해서 알아봐야겠다

그리고 이 X 윈도우 시스템 장점을 이용하면 대단히 가치있는 애플리케이션을 하나 작성할 수 있을지도..