2012년 10월 31일 수요일

[R-project] rep() 함수 활용

KOBIC이 주최하는 제12차 차세대 생명정보학 교육에 참석 중이다. 김상철 박사가 강의하는 R 강좌를 올해 들어 두번째 듣고 있다. 자기의 데이터를 가지고 실제 코딩을 해 봐야 실력이 늘 텐데, 게으름에 차일피일 미루다 보니 좀처럼 잘 되지 않는다.

아직도 R의 기본적인 문법을 가지고 헤매는 상태이다. Perl과 달리 R은 기본적으로 벡터 형태의 데이터를 다루고 있어서 Perl처럼 반복문을 많이 쓰지 않아도 된다. 그러려면 rep() 함수를 잘 이해해야 하는데, 이것이 생초보자에게 첫번째 좌절을 안겨주는 관문이 된다. 이건 지극히 개인적인 경험이므로 다른 사람은 어떤지 모르겠다.

이 포스팅은 내 기억을 정리하기 위한 것이지 일반적인 R의 강좌를 쓰고자 함이 아니니 혹시 그런 이유로 이 블로그에 들르신 분은 과감히 [뒤로가기] 버튼을 눌러 주시길...

 아주 간단한 rep()의 예제를 보자.


> rep("A", 4)
[1] "A" "A" "A" "A"

앞의 인수로 주어진 데이터를 뒤의 인수에서 지정한 회수만큼 단순히 반복하는 것이다. 만약 반복하고자 하는 인수가 벡터라면 어떻게 될까?

> x=("A", "B", "C")
> rep(x, 3)
[1] "A" "B" "C" "A" "B" "C" "A" "B" "C"


전체 엘리먼트에 대해서 두번째 인수만큼 반복하는 것이다.

그럼 이번에는 좀 더 복잡한 사례를 들어 보겠다. 1 1 1 1 2 2 2 2 3 3 3 3을 출력하고 싶다면?


> rep(c(1, 2, 3), c(4, 4, 4))
[1] 1 1 1 2 2 2 3 3 3

또는 다음과 같이 두번째 인수를 간략하게 표현할 수도 있다.


> rep(1:3, rep(4,3))
 [1] 1 1 1 1 2 2 2 2 3 3 3 3



이상은 두번째 인수도 벡터로 주어지는 경우이다. 두 인수는 각각 벡터이고, length가 같아야 한다. 첫번째 인수 벡터의 각 원소에 대하여 반복하는 회수를 두번째 벡터에서 결정하는 것이다. 조금 더 복잡한 사례를 들어 보자. 1 2  2 3 3 3 4 4 4 5 5 5 5 5은 다음과 같이 표현 가능하다.

> rep(1:5, 1:5)
 [1] 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5

이제야 조금 알겠다...


2012년 10월 28일 일요일

[Perl programming] map() 함수

map-sort-map 함수를 사용한 배열 처리 기법(Schwartzian transformation)을 가끔 사용하면서도, map의 정확한 사용법을 잘 모르고 있었다. map 함수는 인수로 주어진 배열의 모든 원소에 대하여 작업을 수행한 뒤, 그 결과로 이루어진 새로운 배열을 출력하는 기능을 한다. 다음과 같이 strain 명칭을 원소로 갖고 있는 배열이 있다고 하자.

@org = qw(K-12 BL21 str.168);

각 organism들이 갖고 있는 유전자의 수는 %num이라는 해쉬에 들어있다고 가정하자. 즉 다음과 같이 각 organism의 유전자 수를 반환할 수 있다.

$num{'K-12'} = 4600;

이제 유전자의 수를 한 줄에 프린트하려고 한다. 각 값은 tab으로 구분을 하되, @org 배열에 들어 있는 순서를 따르고 싶다. foreach를 사용한 고전적인 방법을 따른다면,

foreach (@org) {
    print $num{$_}, "\t";
}
print "\n";

이렇게 하면 마지막 값 뒤에 tab이 남는 부작용이 생긴다. 다음과 같이 임시 배열을 사용하면 조금 나아지긴 하지만, 코드가 너무 길어진다.

foreach (@org) {
    push @temp, $num{$_};
}
print join "\t", @temp;
print "\n";


 map function을 쓰면 다음과 같이 간결해진다.

print join ( "\t", map $num{$_}, @orgs) . "\n";

2012년 10월 20일 토요일

대전시민천문대에 대한 쓴소리

초등생 딸아이가 오랜만에 천문대에 가 보고 싶다고 하여 아내와 함께 셋이서 대전시민천문대를 찾았다. 일년에 몇 번씩은 들르는 곳이었지만 이번 방문은 상당히 오랜만이라서 나름대로의 기대를 갖고 갔다. 그러나 그동안의 방문 중에서 가장 성의 없고 불친절한 태도에 많은 실망을 하고 말았다.

시민천문대의 설립 목적은 무엇일까? 비록 도심에 위치하여 광공해때문에 많은 별을 보기 어려운 입지에 있지만, 일반 시민들이 천문학에 대해 쉽고 편하게 다가가도록 시설과 서비스를 제공하는 것이 아닐까? 입장료를 직접 받지는 않지만 아마 적은 예산이나마 시에서 지원을 하는 것일게다. 그러나 어제 관람객을 맞는 운영자의 태도는 빨리 문 닫고 집에 가고 싶은 주인의식 없는 점원의 그것과 다를 것이 없었다. 이들에게는 손님이 많이 찾아와 봐야 귀찮고 번거롭기만 할 뿐이다.

먼저 관측실 이야기부터 하자. 아마 이곳에서 생전 처음 본격적인 망원경을 접하는 사람도 많을 것이다. 망원경의 원리를 기초부터 설명하기는 곤란하겠지만, 최소한 오늘 관측 대상은 무어라고 설명이라도 해 주어야 하지 않을까. 안내인이 하는 설명이라는 것은 고작 "날씨가 좋지 않아 밝은 별 위주로 맞추어 놓았습니다. 둘러보시고 궁금한거 있으시면 질문하세요"가 전부였다. 초점이 흐트러져있다고 하자 누가 또 건드렸냐는듯 짜증스러운 태도와 함께.

더욱 가관인 것은 천체투영관에서였다. 동영상을 먼저 상영한 다음 별자리를 보여준다고 했다. 그러나 영상은 나오지 않고, 오디오도 처음부터가 아니라 볼륨 조절을 어떻게 했는지 모르겠지만 중간부터 들리기 시작했다. 그나마 영상은 한참동안 나오지 않은 채로 오디오만 재생하다가 안내인은 그냥 별자리 설명으로 넘어가겠다고 하였다.

플라네타리움 시설이 있는 천체투영관을 방문하는 사람은 대부분 어린이나 초보자이다. 최소한 동서남북 방위가 어떻게 되고, 낮에도 밤과 똑같이 많은 별이 있으나 밝은 태양때문에 보이질 않고, 천체는 하루에 한번 일주 운동을 한다는 설명 정도는 하고 가을 별자리로 넘어가야 하는 것 아닌가. 레이저 포인터는 너무 어두워서 어디를 가리키는지 알 수가 없고, 심한 사투리(이건 어쩔 수 없다고 치자), 성의 없는 설명 등... 대중 앞에서 효과적인 말하기를 하는 것은 분명 중요한 일이다. 그러나 중요한 것은 말하기 기술보다 자신의 지식을 전달하려는 정성과 태도이다. 이번 안내인은 모든 것이 부족해 보였다.

대전시민천문대의 재정 상태가 어떤지는 모르겠지만, 아마 모든 시정이 그러하듯 넉넉하지는 않을 것이다. 시설물을 간신히 유지 보수하는 것만으로도 부족하고, 근무하는 사람들이 보람을 갖고 관람객을 정성스럽게 안내하려는 마음이 도저히 나지 않는 수준의 보수를 받고 열악하게 근무하는지도 모르겠다. 또 사람을 직접 대하는 일이 얼마나 스트레스가 쌓이는 일인지도 잘 안다. 장애인 차량만 올라올 수 있게 만든 진입로를 통제하고, 비싼 망원경을 잘못 건드리지 않도록 아이들을 잘 지도하는 등 나름대로의 애로가 있을 것이다. 그러나 이 일을 통해 시민들과 그 자녀들이 하늘과 천체에 대한 관심을 갖고 아마추어 천문학자로 입문하는 저변이 늘어난다면 그것이 곧 보람 아니겠는가?

"운영 예산은 부족하고 관람객은 너무 많아서 힘들어 죽겠어요" 혹시 이런 태도를 갖고 있는 것은 아닌지?

몇년 전, 아름다운 배경음악을 나지막하게 깔고 성시경씨 비슷한 그윽한 목소리로 낭만적인 별자리 설명을 하던 안내원이 기억난다. 차라리 몇몇 동호인을 모아서 자원본사 형식으로 다만 몇회라도 별자리 설명을 하게 만든다면 비록 기계 조작 등 전문성에서는 조금 떨어지겠지만 충분한 열정으로 관람객을 즐겁게 해 줄 수 있을 것이다. 물론 이런 시도를 이미 해 보았을지도 모르는 일이다.

시민천문대 근무자들은 "내가 왜 여기에서 근무하고 있는가? 나의 미션은 무엇인가?"하는 생각을 해 보고 다시 초심으로 돌아갔으면 한다. 우리는 사설 천문대를 공짜로 쓰고 있는 것은 아닐 것이다. 분명 우리의 세금이 들어가고 있을 것이다.

2012년 10월 19일 금요일

삼성 피처폰 - 노리폰


딸아이가 쓰다가 버린(?) 피처폰. 10-20대 여성을 겨냥하여 출시되었던 작고 아기자기한 휴대폰이다. 과연 내가 스마트폰을 가지고 얼마나 스마트하게 살고 있나? 전화기는 영리하게(smart) 진화했지만 이를 쓰는 나는 더 dumb해진 것이 아닐까? 

중간고사 준비를 하다가도 친구와 쉴 새 없이 카카오톡을 날리는 딸아이를 보면서, 어쩌면 저 세대들에게 스마트폰이 더 필요한지도 모르겠다는 생각이 들었다. 사실 아이패드가 생기면서 스마트폰의 활용 빈도는 많이 줄어들었다.

새로운 실험으로서, 서랍 속에서 잠자고 있던 노리폰에 유심칩을 꽂았다. 아직 한가지 문제가 있는데, Wi-Fi가 잡히기는 하는데 정작 인터넷 연결은 되지를 않는다는 것이다. 이미 초기화를 한번 하고 펌웨어 업그레이드를 하였기에 설정 상의 문제라고는 생각되지 않는다. 하드웨어 불량일지도 모르겠다.

그러나 단순하게 살기 위해 일부러 피처폰을 사용하기로 한 이상(100% 결심을 한 것은 아니지만), 무선인터넷에 미련을 가질 필요가 무엇이 있는가? 생각해 보면 휴대폰으로 이메일을 처리해야 한다는 것은 지나친 강박증일지도 모른다. 이메일이란 batch 처리를 위한 것이라고 나는 믿는다. 이메일을 보내 놓고 두어 시간 만에 응답을 하기를 바란다는 것은 지나치다. 외근 중에도 항시 이메일을 확인하고 답장을 할 수 있으리라 기대한다는 것도 마찬가지다.

결국 모두가(아니, 대부분의 사람이) 스마트폰을 이미 사용하고 있고, 또 이를 통해 즉시 이메일 응답을 할 수 있을 것으로 기대하고 있는 것이 현실이기에, 일반 휴대전화를 쓰는 사람은 경쟁에 뒤쳐지는 것일까? 그렇지는 않다고 생각한다.

휴대폰 없이는 동네 수퍼마켓에 우유 한 팩을 사러 나가지도 못할 정도라면 문제가 있다. 왜 상시적으로 인터넷을 접속할 수 있는 환경이 되어야 한다고 생각하는가? 내비게이션이 없으면 운전을 목적지를 찾아가지 못하라는 법이 있는가? 

자신의 판단력을 믿고, 상황을 믿고, 인간적인 소통을 즐기도록 하자. 스마트 기기는 생활을 편리하게 보조해 주는 수단이라는 점을 잊지 말아야 한다. 동료들과 같이 간 커피숍에서 다들 스마트폰을 꺼내 화면을 바라보고 또 문지르고 있다. 바로 앞에 있는 사람이 더 중요하지 않을까?

노리폰은 의외로 쓸만하다. 화면 해상도가 다소 낮고 밝기가 자동 조정되지 않는다는 점만 제외하면. 서비스 센터에 가서 4,500원을 주고 좀더 남성스런(?) 배터리 커버로 바꾸어 볼 생각도 하고 있다. 현재는 분홍색이다 :)

화성으로 DNA sequencer를 보내자!

GenomeWeb에서 보내는 The Daily Scan을 보다가 재미있는 뉴스를 발견했다. 유명한 크레이그 벤터와 Ion Torrent의 설립자인 조나단 로스버그가 화성에 DNA 염기서열 해독장치를 보내고 싶어한다는 것이다. 우주인을 훈련시켜서 화성까지 보내려면 아직 기술적으로 해결할 일도 많고 비용도 엄청나게 든다. 몇 년이 걸릴 우주 비행에 자원할 사람도 흔치 않을 것이다. 차라리 DNA sequencer를 비롯한 소규모 '실험실'을 보내서 화성에 존재할지도 모르는 미생물을 탐사한 뒤 그 결과물을 지구로 전송한다는 아이디어이다. 현재 Ion Torrent 사는 자사의 PGM을 보내고 싶어하는 것으로 보인다. 이 프로젝트는 NASA가 지원하고 있으며, 명칭은 SETG(Search for Extra-terrestrial Genomes)이다.

안타깝게도 이러한 아이디어를 오래전부터 갖고 있었던 Gary Ruvkun은 이 프로젝트에서 언급되고 있지 않다고 하였다.

화성은 생명체 존재의 가능성으로 인류의 호기심을 계속 자극해 왔었다. 비록 환경은 지구에 비해서 훨씬 열악하지만, 미생물이 생존하고 있을 가능성은 매우 크다. 이들이 지구상의 생명체와 마찬가지로 4개의 염기와 20종의 아미노산을 공통적인 building block으로 쓰고 있을지는 아무도 모른다. 대책 없이 이들 생명체를 지구로 가져오게 되면 어떤 일이 벌어질지 누구도 예측하기 어렵다. 차라리 현지로 실험장치를 보내서 DNA 염기서열을 읽는 것이 안전할 것이다. 단, 지구의 PCR 방법으로 그들의 핵산이 증폭 가능하다는 가정 하에서 말이다.

화성에 세균이 산다면! 참으로 낭만적인 생각이다. 단, 이를 증명하기 위해 천문학적인 연구비가 든다는 것이 문제일 것이다.


기사 원문: The Alien Genome

2012년 10월 16일 화요일

MicrobeDB

미생물 유전체를 늘 다루면서 GenBank file이나 tab-delimited file에서 필요한 정보를 추출하기 위해 매번 Perl 스크립트를 짜는 것을 번거롭게 생각하고 있었다. BioPerl을 같이 사용하기에 많은 수고를 덜 수는 있지만, 반복적인 일을 매번 새롭게 하는 것도 능률이 오르지 않는 노릇이다.

Bioinformatics 저널에 MicrobeDB라는 local database에 대한 논문이 실렸다. NCBI 또는 GenBank format의 사용자 데이터를 자동 다운로드하여 MySQL DB로 유지하고 이를 편하게 사용할 수 있는 API까지 포함되어 있다.

MicrobeDB: a locally maintainable database of microbial genomic sequences. Bioinformatics 2012 28:1947. 

논문에 나온 구절을 인용해 보자.

We propose a minimalistic system that is easy to set up, requires minimal administration for automatic update, focusing on a lab based setting where unpublished genomes can be easily added, and allowing individual users to work with an unchanging snapshot of genomes from a given download date.

다운로드는 다음 사이트에서.

https://github.com/mlangill/microbedb/

원래는 GBrowse의 데이터베이스를 조작해서 필요한 일을 해 볼까 하는 생각을 갖고 있었지만 막상 실행에 옮기지는 못하고 있었다. 내 용도에 딱 맞는 도구가 나와 준 것이 다행스럽다.

2012년 10월 12일 금요일

컴퓨터와 씨름하며 보낸 일주일

두 대의 컴퓨터, 그리고 리눅스 배포판이 담긴 CD/DVD-ROM 6장. 창고로 들어가 버릴 수도 있었던 컴퓨터를 잘 살려냈다. 온갖 배포판을 전전한 끝에 Fedora 17과 Xubuntu 12.04로 잘 마무리가 되었다. 역시 리눅스를 제대로 쓰려면, 데스크탑 환경에서 주무르는 것이 가장 확실하고 또 실력도 확실하게 느는 것 같다. 업무용 프로그램을 쓰기 위해 ssh로 접속해서 CLI 모드로만 작업을 하다 보면 한글 설정이나 멀티미디어 등 사용자의 편의를 위해 간과할 수 없는 기능들을 등한시하게 된다.

많은 사람들의 노력으로 예전보다는 훨씬 편하게 리눅스를 쓰게 되었다. 정말 고마운 일이다. 사무실은 마스커레이딩과 공유기를 이용한 좀 복잡한 네트웍 구성을 갖고 있는데, 이것 역시 공부하는데 큰 도움이 되고 있다. 시험용으로 잠시 조립해 놓은 컴퓨터를 인터넷에 연결하기 위해 전산실에 요청해서 IP 주소를 받지 않을 필요도 없고...

구입한지 4-5년이 된 Core2 Duo E6750(2.66 GHz), E7200(2.53GHz) CPU를 장착한 컴퓨터가 리눅스 덕분에 다시 활용될 수 있다니 이 어찌 기쁘지 않겠는가? 더군다나 그중 하나는 만 10년이 된 케이스 안에 재조립한 것이다. 이 케이스는 투알라틴 셀러론 1GB로 꾸며졌던 컴퓨터였다. 이 보드와 CPU는 아직 작동이 잘 되는 상태이다. 이제 이것을 가지고 할 수 있는 일은 별로 없지만. 두 장의 PCI 랜카드, 100 GB가 안되는 IDE 하드 디스크 몇 개... 심심할 때 가끔 전원이나 연결해서 돌려 볼 일이다.

2012년 10월 10일 수요일

우분투 12.10 -> 페도라 17

영원한 삽질 중...

유니티 환경도 나름대로 쓸 만하다고 생각하고 있는데, 자꾸 Shuttle에서 마우스와 키보드가 멈추는 현상이 발생한다. 비스타를 쓰던 당시와 유사한 상황이다.

OS를 바꾸어 보는 삽질(?)을 한번 더 하기로 하였다. OpenSUSE, Linux Mint, Fedora 등 세가지를 번갈이 깔아 보면서 한글 설정이 가장 편한 것으로 결정하기로 하였다. 최종적으로는 Fedora로 낙찰. 설마 OS를 바꾼다고 해서 마우스 작동 장애가 해결이 되지는 않겠지만...

그런데 최초 설치 단계에서 한글 키보드를 설정하지 않았더니 나중에 이만저만 번거로운 것이 아니었다. 인터넷을 뒤져서 해결하려다가 결국은 재설치!

PCLinuxOS와 리눅스 민트에 계속 관심이 간다. 마우스/키보드가 불안정한 문제만 없다면 이제 조금 손에 익숙해진 우분투도 나쁘지 않은데 말이다. 언젠가는 PCLinuxOS나 Linux Mint를 설치해서 써 보련다. 단, 한 시간도 안되는 경험이었지만 KDE는 조금 무겁게 돌아간다는 느낌이 든다. 나중에 필요하게 될지도 모르니 우분투와 리눅스 민트에서 언어를 설정하는 방법에 대한 글이 있어서 링크를 걸어 둔다.


[리눅스 민트 12 & 우분투 11.10] 언어설정 변경하기 + 한글 입력 설정(nabi 설치 및 설정)


페도라를 깔아도 마우스가 멈추는 현상은 여전히 발생할지도 모른다. 그때에는 정말 이 컴퓨터를 퇴출시켜야지...


놀랍다! 우분투 12.10에서는 몇 번씩 마우스가 멈추고는 했었는데 페도라 17에서는 아직까지도 몇 시간째 쌩쌩하게 돌아가고 있다.

2012년 10월 9일 화요일

삽질은 영원하다 - SSH를 이용한 그놈 데스크탑 실행

리눅스 머신이 하나 더 생기니까 설정을 위해 건드릴 부분도 많아졌다. 이 장비에 대형 모니터가 연결되어 있으므로, 다른 머신의 화면 출력을 이쪽으로 보내기 위해 많은 '삽질'을 하는 중이다. 원격 데스크톱 기능을 이용하여 리모트 머신의 화면 또는 리모트 머신의 가상머신 화면을 대형 모니터로 보내는 것까지는 무난히 성공하였다.

다음의 도전 과제는 SSH를 이용한 Gnome Desktop의 실행이다.


  1. Ctrl + Alt + F2를 눌러서 콘솔 화면을 연 뒤 로그인한다.
  2. xinit -- :1을 실행한다. Xterm 하나만이 뜬 아주 심플한 X window의 화면이 나온다.
  3. ssh -X -C <접속할 remote machine의 IP wnth>
  4. gnome-session 실행

xinit 명령 실행을 할 때 콜론(:) 뒤에 오는 디스플레이 번호에 주의해야 한다. :0은 이미 로컬 컴퓨터에서 쓰고 있으므로, 순차적으로 증가시켜야 한다. ssh 명령줄에서 user ID를 넣지 않은 것은 원격 머신과 로컬 머신의 계정명이 동일하기 때문이다.

이렇게 하면 원격 머신의 그놈 데스크탑 화면이 로컬 머신에 고스란히 뜬다. 원격이 CentOS 6.3인 경우 아주 완벽하게 작동한다. 문제는, 바로 옆에 있는 BioLinux 6(우분투 10.04 LTS)이다. 처음에는 화면이 뜨기는 하는데 화면이 위아래가 뒤집어져 나오는 것이다! 나와 똑같은 문제를 겪는 사람이 다른 나라에도 있었다.


그놈 데스크탑의 효과 기능을 끄니까 이문제는 해결되었다. 그런데 화면이 어딘가 좀 이상하다. nabi가 보이지 않는다. BioLinux 머신 자체에서는 로그인과 동시에 패널에 나비가 실행 중임을 알리는 표시가 뜨며, 한/영 전환도 잘 되고 있다. 그런데 원격으로 연 데스크탑에서는 자동 실행이 안된다. 터미널 창을 열어서 nabi를 실행시켜 보면 트레이에 표시가 되기는 하나 한글 입력이 되지 않는다.

여기서 또 의문점이 생긴다. BioLinux 쪽에서는 gnome-session-properties를 실행하여 시작 프로그램의 목록을 열어 보아도 nabi는 없다. 그런데 어떻게 자동 실행이 되고 있는거지? 아, 모르겠다...

2012년 10월 8일 월요일

원격 데스크탑으로 가상머신 불러오기

집에서 쫓겨난(?) Shuttle XPC SG335G(Core2 Duo E7200 @ 2.53 GHz, 메모리 2GB)와 다른 박사님이 쓰시던 것을 넘겨 받은 LG 플래트론 32인치 모니터. 이것으로 무엇을 할 것인가? 모니터는 사무실에서 회의를 할 때 자료를 펼쳐놓는 용도로 쓰면 되겠고, 이를 구동할 컴퓨터로 Shuttle을 사용하기로 했다. 비스타를 4년간 이 컴퓨터에서 쓰면서 하도 불안정함을 많이 겪어온 터라, 적당한 리눅스 데스크탑을 깔기로 하였다.

아침에 이를 들고 나와서 PCLinuxOS를 먼저 설치해 보았다. KDE를 기반으로 해 보았는데, 한글 사용이 썩 편하지 않았다. 사용자가 추가적으로 할 일이 많아 보였다. 다음으로는 OpenSUSE 최신 버전을 설치해 보았는데, 인터페이스가 영 허름하고 업데이트 사이트가 너무 멀어서(바꿀 수는 있겠지만) 패키지 다운로드가 원활하지 않아 결국 약간 내키지 않는 마음으로 우분투 12.04 LTS 64비트 버전을 깔았다. 32비트 모니터와는 RGB cable로 연결하였다. 모니터측에는 일반적으로 사용하는 DVI 단자가 없고 HDMI 단자와 RGB 단자만 있는 형태이다. Shuttle에도 HDMI 출력이 있지만, 이를 통해 연결하려면 HDMI 케이블을 사야만 한다. Shuttle의 비디오 출력을 RGB로 뽑아내기 위해 케이스를 열어서 메인보드의 점퍼 설정을 바꾸었다.

OS 설치와 업데이트는 일사천리.

자, 만약 PPT file을 이 32인치 모니터에서 보려면? LibreOffice로 열든지, 혹은 PDF로 전환하여 보면 될 것이다. 이런 뻔한 방법 말고, 바로 옆에 있는 Ubuntu 내의 VirtualBox(윈도우7)의 MS 오피스에서 연 다음 화면 출력을 이 모니터에서 볼 수 없을까?

처음에는 원격 컴퓨터를 SSH로 접속하여(-X -C option) 원격의 X application을 실행하듯이  VirtualBox를 실행하면 될 것으로 생각했으나 잘 되지 않았다. VirtualBox의 매뉴얼을 잘 읽어보니 원격 디스플레이와 관련한 솔루션이 보이기 시작하였다. 지금껏 원격 데스크탑 혹은 원격 디스플레이를 제대로 써 본 일이 없어서, 약간의 공부를 해야만 했다. 먼저 VirtualBox 설정에서 '디스플레이->원격 디스플레이'로 들어간 뒤 '서버 사용하기'를 체크했다. 그 다음엔 뭘 해야 하지? 오늘 설치한 우분트 클라이언트에서 rdesktop이라는 것을 실행하면 된다고 한다. 사실 이 일을 하기 직전까지 서버쪽에서 가상 머신을 먼저 켜 놓아야 한다는 것도 몰랐다^^

rdesktop으로 연결을 하니 오! 화면이 뜬다. 그런데 일부가 가려진다. 이를 어떻게 하여 전체화면 모드로 쓸 것인가... 우분투에 설치된 프로그램 중에 리미너' 원격 데스크탑 클라이언트가 있다. 터미널 창을 열 필요도 없었고, 그저 마우스 클릭 몇번으로 프로그램을 찾아서 설정을 해 주었다. 그리고는 실행... 도대체 리미너'(맨 뒤에 '가 찍혀 있다)의 철자가 뭔지 궁금해서 구글을 뒤져보니 remmina였다.



오, 세상에! 전체 화면 모드로 윈도우 가상머신을 드디어 띄웠다! 정말 이런게 되는구나!! 좀 더 꼼수를 부린다면, 클라이언트에 USB를 꽂았을 때 서버측의 가상머신이 이를 인식하게 하는 방법도 있을 것이다. 이제 완벽한 회의실 기능을 갖추었다...

2012년 10월 5일 금요일

구글 익히기


검색 엔진에서 출발한 구글이 점점 다양한 서비스를 내놓고 있다. 요즘 들어서 PICASA 웹 앨범과 [구글+]에 조금씩 맛을 들이고 있는 중이다. 특히 구글+의 경우는 페이스북이나 트위터처럼 주의력을 분산시키는 서비스가 아닌지 의심이 들어서 잠시 탈퇴를 한 일이 있었으나, 최근 다시 가입해서 조금씩 사용법을 익히고 있다.

개인적인 생각이기는 하지만, 특히 구글+의 여러 서비스들은 처음에는 쉽게 감이 잡히질 않는다. 나도 이런 상태로 일년이 넘게 그냥 지내 왔었으니까. 이제서야 스트림이 무엇인지, 서클이 뭔지, 사진은 어떻게 공개를 하는지 등의 개념을 잡아가고 있는 중이다.

내 구글+ 사이트 주소를 URL 형식으로는 어떻게 나타내는지 알아내는 것도 쉽지 않았다. 소위 구글+ 단축주소(Google+ URL shortener) 서비스가 여럿 존재하는데, 이 중에서 실제 구글이 공식적으로 지원하는 것이 무엇인지 찾아내는 것도 쉽지 않았다. 이를 알아가는 과정에서 유독 한 사람의 글이 검색 엔진에 자주 랭크되는 것을 알게 되었다. 소위 구글 전문가로서 2012년도에는 책까지 낸 분의 글이었다.

그런데 "한국구글사용자그룹"이라는 모임까지 있는 것을 보고는 의아하게 생각하지 않을 수가 없었다. 구글을 통해서 서로 소통을 하고 공통 관심사를 논하다가 번개 모임을 가질 수도 있겠지만, 구글의 활용 자체를 위한 오프라인 모임이 있다니?

이야기가 잠시 딴 길로 샜는데, 아무튼 이 분의 자료에서는 구글+의 단축 주소를 제공하는 사이트로서 gplus.to를 소개하고 있다. 자기가 원하는 별명(nick name)을 이용한 단축주소를 제공한다는 것은 좋지만, 아무리 둘러보아도 구글에서 공식적으로 제공하는 서비스는 아니었다. 이런 서비스가 먼저 나온 뒤에 비로소 구글에서 단축주소를 제공하기 시작했는지도 모르겠다.

현재 구글이 제공하는 공식적인 URL shortener는 goo.gl이다.

구글+의 내 주소는 이러하다.

긴 주소 https://plus.google.com/u/0/114395991498966838571/posts
짧은 주소(공식) https://goo.gl/ZKq4B
짧은 주소(비공식) http://gplus.to/HaeyoungJeong

한국 인터넷 포탈의 거대 공룡이 되어가고 있는 네이버가 점점 싫어지면서 다른 방식으로 인터넷 세계와 소통할 방법을 찾고 있었는데, 서비스의 참신성이나 기능 및 개방성 등의 모든 면에서 구글이 우월함을 점점 느끼고 있다. 그렇다면, 늦어도 연말 이전에는 완전한 이동이 가능할 것으로 본다. 단, 네이버에 있는 블로그 자료들은 어떻게 할 것인가? 온라인 상의 기록으로서 그냥 놔 둘 것인가, 아니면 네이버를 반대하는 입장을 명확히 하기 위해 완전히 삭제할 것인가?

2012년 10월 3일 수요일

새 컴퓨터를 주문하면서

집에서 사용할 새로운 컴퓨터를 막 온라인으로 주문하였다. 걸핏하면 꺼지고, 재부팅이 원활하지 않고, 블루스크린을 토해내며, 갑자기 키보드와 마우스가 먹통이 되는 것을 이제 더 이상 참을 수가 없다. 이미 4년을 사용했으니 새로 바꿀 때도 되었다고 생각한다. 사실 지금껏 사용한 셔틀 베어본은 구입 때부터 문제가 많았다. 게다가 비스타를 사용한 것이 더 문제였는지도 모른다.

컴퓨터 구입에 드는 절대적인 금액은 거의 비슷하거나 조금씩 낮아지고 있다. 물가 상승률을 고려하면 정말 더 많은 혜택을 보는 것이다. 기술은 정말 대단한 속도로 발전하고 있다.

이제 두번째로 구입하는 Dell 제품이다. 전반적으로 만족하고 있다. 사용하던 셔틀은 적당한 리눅스 데스크탑이나 깔아서 활용하자.