8월, 2014의 게시물 표시

특수상대성 이론의 간단한 이해 : 시간 지연과 길이 수축

이미지
특수 상대성 이론에서 가장 많이 거론되는 것이라면 광속 불변과 함께 시간 지연 및 길이 수축일 것이다. 이 글에서는 시간 지연과 길이 수축에 대해서 알아보고, 자칫 실수하기 쉬운 부분도 함께 살펴보고자 한다. 먼저 시간 지연 현상부터 알아보자. 열차가 기차역을 지나고 있다. 열차 안에는 관측자 A 가 있고, 이 열차 안에서 레이저를 바닥에서 천정 방향으로 수직으로 쏘았다. 이 때 열차는 비록 움직이고 있지만, 열차 안에 있는 관측자 A 는 이 열차 안에 정지해 있다. 따라서 관측자 A 의 관점에서 레이저의 자취는 다음과 같다. 관측자 A 가 본 모습 레이저가 겹치는 것을 방지하기 위해 따로 떨어뜨려 그렸다는 것은 알아 두자.  이번에는 기차역에 정지해 있는 관측자 B 의 관점에서 보자. 관측자 B 에게 열차는 기차역에 대해 오른쪽으로 움직이고 있다. 따라서 레이저의 자취는 관측자 A 가 본 모습과는 다르다. 관측자 B 에게 레이저 자취는 이렇게 보일 것이다. 관측자 B 가 본 모습 간단히 생각해 보자. 광속은 어디에 있는 관측자가 보더라도 같아야 한다. 광속불변의 법칙이다. 따라서 관측자 A 가 본 레이저의 이동 거리는 관측자 B가 본 레이저의 이동 거리보다 짧으므로 광속을 같게 하기 위해서는 이동 시간에서 차이가 나야 한다. 광속 = 빛의 이동 거리 / 빛의 이동 시간 이므로, 빛의 이동 시간 = 빛의 이동 거리 / 광속 이다. 그런데 광속이 일정하므로, 빛의 이동 시간은 빛의 이동 거리에 비례하게 된다.  따라서 관측자 A 가 본 레이저의 이동 거리는 관측자 B 가 본 레이저의 이동 거리보다 짧으므로 관측자 A 가 측정한 레이저의 이동 시간은 관측자 B 가 측정한 레이저의 이동 시간보다 짧게 측정된다. 다시 말해서, 정지해 있는 관측자 B 의 시간이 움직이고 있는 관측자 A 의 시간보다 빨리가는 것이다. 이것이 시간 지연 이다. 그런데 이렇게 설명할 때 생기는

온라인 수식편집기

이미지
웹에 수식을 올리기 위한 방법이 뭘까 고민해봤는데, 우선 한글이나 워드에서 수식을 작성하고 나서 그림으로 저장하거나 갈무리를 해서 다시 웹에 올리는 방법이 떠올랐다... 아... 너무 복잡하고 귀찮다. 그래서 온라인에서 직접 편집할 수 있는 것이 있을까 ? 해서 찾아봤더니 있다. 역시 내가 필요하다고 생각하는 것들은 이미 남들도 필요하다고 생각했고, 그들이 먼저 만들어놨다. ㅋㅋ Online LaTex Equation Editor 라고 해서 codecogs 라는 곳에서 제공하는 것이다. http://www.codecogs.com/latex/eqneditor.php 사용법은 간단하다. 빈 칸에 수식을 입력하면 그 아래에 수식이 이미지로 나타난다. 필요에 따라 이미지를 저장할 수도 있고, 그대로 이미지를 복사해서 쓸 수도 있다. HTML 형태로 편집하는 것을 좋아하는 사람들에게는 직접 설치해서 쓸 수 있는 방법도 제공하는 것 같다. 나야 그저 이미지를 복사해서 직접 붙이는 것을 선호하기 때문에 그렇게까지 하지는 않았다. 사실 HTML 열고 해당 위치 찾아서 태그 편집하고 하는 게 더 귀찮다. HTML 직접 편집은 더 싫고.... 수식 형태는 LaTeX 인데, 사용법은 한글과 크게 다르지 않다. 다만 필요한 구문 앞에 \ 를 붙여주면 된다.물론 세세하게는 차이가 있을 수 있겠지만. 예를 들어 상대성 이론에서 자주 등장하는 를 수식으로 표현하면 \gamma = {1 \over \sqrt{1 - {v^2 \over c^2}}} 가 되고, 그 결과는 이다. 참으로 깔끔하지 않나 ? ^^ 한 가지 아쉬운 점이라고 한다면 수식에 영문만 지원된다는 것. // ----- 2014/12/29 여러 줄에 걸쳐 수식을 전개할 때에는 줄이 바뀌는 부분에 \\ 를 붙이면 된다. 예를 들어, 첫째 줄에는 a=b, 둘째 줄에는 c=d 가 나오기를 원한다면 a = b \\ c = d 이렇게 하면 되고, 그 결과는

움직 도르래를 수학적으로 이해하기

이미지
일의 원리를 설명할 때 반드시 빠지지 않고 나오는 것 중의 하나가 도르래이다. 그 중에서도 움직 도르래의 경우 힘의 분산을 통해서 일의 원리를 설명한다. 다시 말해서, 힘이 분산으로 물체에 작용하는 힘의 크기가 물체 무게의 반으로 줄고, 대신에 줄을 당기는 길이가 물체의 올라간 높이보다 두 배가 되므로 직접하는 일이나 움직 도르래로 하는 일이나 같다는 것이다. 결국, 줄을 당기는 길이를 경험적으로 증명하거나, 또는 역으로 일의 원리를 바탕으로 줄을 당기는 길이가 두 배가 된다는 것을 증명한다. 이것은 물리적 관점에서 이해한 것이다. 그렇다면, 일의 원리나 힘의 분산에 의존하지 않고 줄을 당기는 길이가 물체 이동 거리의 두 배가 된다는 것을 증명하는 방법은 없을까 ? 지금부터 그 방법을 알아보자. 다음은 움직 도르래로 물체를 들어올리고 있는 그림이다. 증명을 간단히 하기 위해서 아래쪽 도르래 중심의 오른쪽에 줄의 끝이 닿아 있다고 하자. 이제 물체를 h1 만큼 들어올린다. 이렇게 되면 위쪽 도르래 중심과 아래쪽 도르래 중심의 차이는 h1 이 된다. 이때 h1 = h2 이다. 그렇다면 h3, 곧 물체를 들어올릴 때 감긴 줄의 길이는 얼마가 될까 ? 먼저 물체를 들어올리기 전의 걸려 있는 줄의 길이를 계산해 보자. 위쪽 도르래 중심의 왼쪽에 닿아있는 부분부터  아래쪽 도르래 중심의 왼쪽까지 걸려 있는 줄의 길이는 h1 이다. 그리고 나머지 줄의 길이는 도르래 둘레의 절반이다. 이번에는 물체를 들어올리고 나서 걸려 있는 줄의 길이를 계산해 보자. 위쪽 도르래 중심의 왼쪽에서부터 도르래를 걸쳐 오른쪽 위로 있는 줄의 길이를 계산하면 된다. 도르래에 걸쳐 있는 줄의 길이는 도르래 둘레의 절반이고, 올라가 있는 줄의 길이는 h3 이다. 이 때, 위쪽 도르래 중심 왼쪽에서부터 줄 끝까지의 길이는 같아야 한다. 따라서 h1 + 도르래 둘레 절반 = 도르래 둘레 절반 + h3 가 성립하고, 결국 h1 = h3 가 된다. 이제

C++: 전역/정적 객체 우선 순위 문제

C++ 프로그래밍을 하다보면 전역/정적 객체가 필요할 때가 있다. 전역/정적 객체의 용도 중의 하나는 생성과 소멸이 자동으로 이루어지는 객체의 속성을 이용해서, 전역/정적 객체를 가지고  프로그램 전체의 초기화 작업과 마무리 작업을 수행하는 것이다. 하지만, 이러한  전역/정적 객체의 골칫거리가 하나 있는데, 바로 전역/정적 객체의 생성/소멸 순서이다. 어느 전역/정적 객체가 먼저 생성되고 나중에 생성될지 알 수 없기 때문에, 한 전역/정적 객체의 생성자에서 다른 전역/정적 객체를 참조하게 되면, 예상치 못한 오류를 만날 수 있다. 그래서 이를 해결하기 위해 여러가지 방법이 나왔다. 우선 컴파일러 차원에서 생성자들의 우선순위를 정할 수 있는 방법을 제공한다. #pragma 를 지시자를 이용해서 지원하는데, 이 역시도 우선 순위가 같은 객체 사이에서는 마찬가지 문제가 발생할 수 있기 때문에 근본적인 해결책은 될 수 없다. 그렇다면 근본적인 해결 방법은 없는 것일까 ? 다행히도, 그렇지는 않다. Effective C++ 항목 4 를 보면 해결 방법이 나온다. 전역/정적 객체 문제의 핵심은 객체가 이미 생성됐다는 것을 보증할 수 없다는 것이다. 하지만 조금만 틀어보면 이것이 불가능한 것은 아니다. 바로 함수 내부에 정적 객체를 선언하는 것이다. 함수 내부의 정적 객체들은 함수가 처음 호출될 때 반드시 한 번만 초기화되기 때문에, 함수를 이용해서 정적 객체에 대한 참조나 포인터를 되돌려 주면, 해당 정적 객체는 반드시 초기화되었다는 보증할 수 있다. 예를 들어, 클래스 A 와 클래스 B 가 각각 a.cpp 와 b.cpp 에 있다고 하자. Colored By Color Scripter ™ 1 2 3 4 5 6 7 8 9 // a.cpp class  A { public :     A();     ~A() {};      void  af(); }; Colored By Color Scripter ™

OS/2 tricks: How to share between Windows 7 host and OS/2 guest in VirtualBox

이미지
VirtualBox has a very convenient feature, it's a shared folder. Unfortunately, however, VirtualBox does not provide it to OS/2 guest. This article is to overcome this situation using samba. How to use samba on OS/2 in real machine First of all, you should read a very useful article by Gene Alexander before reading this. http://www.eracc.com/content/ecs-samba-client-windows-7-professional How to use samba on OS/2 guest in VirtualBox That article describes the way about a real machine. Now, apply it to a virtual machine. When you install VirtualBox, VirtualBox Host-Only Network is installed. You can do the share using this software loopback adapter. First, check the IP address of the VirtualBox Host-Only Network adapter. There are many ways to do this. It's ok to do whatever you know of these ways. In this article, check in VirtualBox. 1. Open VirtualBox 2. Select [File] - [Preferences...] or press [Ctrl-G], then select [Network] tab 3. Double click

온라인 컴파일러 소개

때때로 컴파일러가 없는 환경에서 간단한 테스트 프로그램을 작성한다든지, 또는 교육용으로 환경을 마련해야 하는 경우가 있다. 이런 경우에 많은 시간을 들여 무료 컴파일러를 다운 받아 설치하고 설정하고 하면서 많은 시간을 허비해야 한다. 하지만, 요즘에는 온라인 상에서 직접 컴파일하고 실행 결과를 확인할 수 있는 서비스들을 많이 생겼다. 그 중에서도 Compile and Execute Programs Online Coding Ground (2016/11/25)을 추천한다. 매우 다양한 프로그래밍 언어들은 물론이고 HTML 이나 자바스크립트 프레임워크들도 지원한다. 게다가 해당 언어를 화면에서 Tutorial 도 제공해 주는데, 웬만한 입문서들보다 나은 내용들을 제공해 준다. 이 Tutorial 들도 읽어두면 새로운 언어들을 익히는데 많은 도움이 될 것이다. 온라인 컴파일 서비스 : Compile and Execute Programs Online Coding Ground (2016/11/25) Tutorial : tutorialspoint.com

OS/2 tricks: How to enable widescreen resolutions in VirtualBox

When using OS/2 as a guest in VirtuaBox, wide screen resolutions are not enabled by default. However, it's not impossible to use it. If you're using SNAP graphics driver, then do these. Add wide screen resolutions to OS/2 guest settings in VirtualBox Enable [Wide Resolutions] feature of SNAP Reboot Select the wide resolution Reboot Now, see respectively. Add Wide Screen Reolustion to OS/2 guest settings in VirtualBox CD into your VirtualBox directory VBoxManage setextradata "Your OS/2 guest machine name" CustomVideoMode1 widthxheightxbpp In my case, I'm using 'Warp4' as a guest machine name. And I'm using 1280x800x32 wide resolutions. So I did like this. VBoxManage setextradata Warp4 CustomVideoMode1 1280x800x32 I recommend to use 32 bpp instead of 24 bpp. If you are using 24 bpp, then some programs suffer from color corruptions. Enable [Wide Resolutions] feature of SNAP Open your [Screen] object in [Local System] folder

C/C++: __LINE__, __FILE__, __FUNCTION__ 의 활용

C/C++ 프로그램이 오류를 일으켰을 때, 오류의 원인을 파악하기 위해 필요한 정보들이 있다. 파일 이름, 함수 이름, 줄 번호 따위이다. 다행히, C/C++ 컴파일러는 컴파일러 수준에서 이러한 정보들을 제공하고 있다. 바로 __FILE__, __FUNCTION__, __LINE__ 따위가 그것이다. 이름에서 알 수 있듯이, __FILE__ 은 파일이름, __FUNCTION__ 은 함수 이름, __LINE__ 은 줄번호를 나타낸다. 여기에서 주의할 점은 __FILE__ 과 __LINE__ 은 문자열 상수 매크로이지만, __FUNCTION__ 은 컴파일러에 따라 또는 컴파일 모드(C 모드인지 C++ 모드인지)에 따라 문자열 상수 매크로일 수도 있고 변수일 수도 있다. 매크로인지 변수인지에 따라 무엇이 달라지는 것일까 ? 만일 매크로라면 다음과 같은 문법이 가능하다. Colored By Color Scripter ™ 1 const   char  *str =  "str is in "  __FUNCTION__; 하지만 변수라면 컴파일러는 에러라며 불평할 것이다. 따라서 __FUNCTION__ 은 변수라고 가정하 고 프로그래밍하는 것이 컴파일러의 특성에 의존하지 않는 가장 안전한 방법이다. 그리고 __FUNCTION__ 하위 호환성을 위해 제공되는 것이고, c99 을 지원하는 컴파일러에서는 __func__ 도 쓸 수 있다. 물론, __func__ 는 변수다. 이것들을 어떻게 사용할까? 프로그래머마다 다르겠지만, 내 경우에는 진입/탈출 로그를 만들기 위해 많이 사용한다. 다음은 실제 사용예이다. Colored By Color Scripter ™ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include  <stdio.h> #define  LOG_ENTRY fprintf( stderr,  "%s(li

CASTPRO 2100R 사용후기

지난 6월쯤에 CASTPRO 2100R OEM 제품인 SKT 스마트미러링 을 구입했다. 간단한 사용법과 지난 세 달 정도 사용하고 나서 느낀점을 적어보고자 한다. 제품을 개봉했을 때 CASTPRO 2100R 본체와 전원 어댑터 그리고 HDMI 확장 케이블이 들어있었다. USB 연결선이 있다면 전원 어댑터 대신에 쓸 수 있다. 설치는 간단했다. TV 나 영상장치에 HDMI 연결 부위가 있다면 그 곳에 본체를 직접 꽂으면 된다. 때로는 본체를 직접 꽂을 때 연결 부위 디자인이 본체를 직접 꽂기에 무리가 있는 경우가 있는데, 이 때에는 HDMI 확장 케이블을 이용하면 된다. 단, 영상장치의 HDMI 포트는 HDMI v1.3 이상을 지원해야 한다. TV 나 영상장치의 입력을 CASTPRO 가 꽂혀 있는 HDMI 로 바꾸어 주면 화면에 CASTPRO 로고가 나타난다. 화면 왼쪽에는 Miracast, 오른쪽에는 DLNAir 가 나타난다. 화면 가운데 로고 아래에는 [castpro xxxx] 라는 고유 ID 가 나오고, 그 아래에는 IP 가 나온다. Miracast 는 WiFi direct 기술을 이용한 무선 스크린 전송 기술의 표준이다. 안드로이드 4.2 이상이나 Intel WiDi 3.5 이상에서 지원한다. DLNAir 는 DLNA 와 AirPlay 를 합친 것으로 보인다. DLNA 는 스크린을 전송하는 것이 아니고 동영상 스트림을 전송한다. 이를 사용하기 위해서는 DLNA 를 지원하는 프로그램이 필요하다. PC 에서는 Windows Media Player 가 지원한다. 안드로이드에서는 업체별로 다르지만, 삼성 갤럭시 노트 3의 경우에는 기본 제공되는 비디오 플레이어에서 지원한다. AirPlay 는 애플 계열에서 사용하는 무선 전송 기능이다. 내가 애플 계열 장치들을 사용하지 않는 관계로 자세히는 모르겠다. AirPlay 를 제외한 Miracast 와 DLNA 의 사용법을 알아보자. 안드로이드 계열 스마트폰을 가지고 있다면 매우 간단하

SMPlayer 에서 한글 자막 보기

이미지
SMPlayer 는 동영상 재생기 분야에서 매우 유명한 MPlayer 의 프론트-엔드이다. SMPlayer 가 외국에서 재생 제작이 되다 보니 한글에 대한 지원이 다소 부족한 면이 있다. 특히 한글 자막을 보는 것에 문제가 있는데, 몇 가지 설정만 바꾸어 주면 문제를 해결할 수 있다. SMPlayer 를 실행시켜, 메인 창이 나타나면, 메뉴에서 [옵션 - 환경 설정] 을 선택하거나 [Ctrl-P] 를 누르자. 그러면, 다음과 같은 화면이 나온다.   왼쪽에서 [자막]을 선택하자. 여기에서 [기본 자막 인코딩]을 [한국어 문자집합 (CP949)] 으로 설정하고, 그 아래에 있는 [이 언어는 자동으로 감지하기:] 을 [한국어 (ko)] 로 설정하고, 체크하자. 몇몇 사용자의 경우에는 이 부분을 체크하면 한글 자막이 제대로 인식되지 않는다는 보고가 있는데, 사용하다가 문제가 있다면 이 부분의 체크를 해제해 보기 바란다. 그리고 [Freetype 지원] 은 반드시 체크하기 바라고, [윈도우 글꼴 사용하기] 는 시스템에 등록되어 있는 글꼴을 사용하고자 한다면 체크하면 된다. [맑은 고딕]같은 글꼴을 사용하고자 한다면 체크하기 바란다. 이번에는 위쪽에 [글꼴과 색상] 탭을 선택하자. [일반 자막 사용하기] 의 경우 TTF 글꼴 파일을 직접 사용하고 싶다면, [TTF 글꼴]을 시스템에 등록되어 있는 글꼴을 사용하고자 [시스템 글꼴] 을 선택하고, 원하는 글꼴을 선택하면 된다. [SSA/ASS 자막 사용하기] 를 선택하면 다음과 같은 화면을 볼 수 있다. 여기에서 [글꼴] 을 원하는 한글 글꼴로 선택하면 된다. 그리고 글꼴 관련 설정을 다양하게 바꿀 수 있다. 그런데 보다 고품질의 한글 자막을 원한다면 [일반 자막 사용하기] 보다는 [SSA/ASS 자막 사용하기] 를 사용하기 바란다. [SSA/ASS 자막 사용하기] 를 선택한 후, [확인] 을 누르면 된다.

VLC Media Player 에서 한글 자막 보기

이미지
우리나라에서는 그다지 유명하지 않지만, VLC Media Player(이하 VLC) 는 외국에서 꽤나 유명한 공개 오프소스 소프트웨어이다. 그런데 정작 VLC 를 설치해서 동영상을 재생해 보면 한글 자막이 제대로 표시되지 않는 것을 보고 꽤나 당황하게 된다. 이것은 인코딩과 글꼴 설정에 문제가 있기 때문에 나타나는 현상이다. 이제, 그 설정 방법을 알아보자. 일단 VLC 를 설치하고 실행시키자. VLC 창이 뜨면 메뉴에서 [도구 - 환경 설정] 을 선택하거나 또는 Ctrl-P 를 누르자. 그러면 다음과 같은 창이 뜬다. 왼쪽 화면에서 자막/OSD 를 선택하자. 그리고 아래와 같이 기본 인코딩과 글꼴을 설정하자. 물론 글꼴을 다른 한글 글꼴로 설정할 수 있지만, 현재 VLC v2.1.5 의 경우 한글 이름으로 된 글꼴, 예를 들어 [맑은 고딕]같은 글꼴을 설정하면 여전히 한글이 제대로 표시가 되지 않는다. VLC 의 벌레로 보인다. 원하는 한글 글꼴을 설정했는데 한글이 나오지 않는다면 [Arial Unicode MS] 를 고르면 된다.

내 맘대로 비교하기: Dice Player 와 MX Player

안드로이드에서 가장 유명한 동영상 재생기를 꼽으라면 단연 Dice Player 와 MX Player 를 꼽을 것이다. 이참에, 이 두 재생기를 내 사용 경험에 비추어 간단히 비교해 보고자 한다. 두 재생기 모두 훌륭한 인터페이스를 갖추고 있고, 그 기능 또한 막강하다. 그래도 서로를 비교해 보면 각자 아쉬운 면이 없는 것은 아니다. 우선 MX Player 를 보자. MX Player 의 가장 큰 강점은 HW+/HW/SW 로 구성된 코덱이다. 거의 모든 동영상들을 매우 효율적으로 재생하여 준다. 그리고 다양한 설정을 제공하여 사용자가 자신의 취향에 맞게 설정을 바꿀 수 있도록 도와준다. 이전에 Vital Player 를 쓰다가 MX Player 로 바꾸었을 때의 편리함과 강력함은 이루 말할 수 없었다. 하지만 아쉬운 것은 네트워크 지원이 되지 않는다는 것이다. 물론 ES 파일 탐색기를 이용하면 이 단점을 극복할 수 있다. 그럼에도 불구하고 남아 있는 불편함은 파일이 연속적으로 재생되지 않는다는 것이다. 예를 들어, 애니메이션을 볼 때 여러개의 파일이 있으면 하나의 파일 재생이 끝난 후, 다음 파일이 자동으로 재생되지 않는다. 일일이 다음 파일을 재생시켜야 한다는 것은 꽤 귀찮은 일이다. 이번에는 Dice Player 를 보자. Dice Player 는 기본적으로 HW 코덱만을 지원한다. 그러다 보니 MX Player 에 비해 재생할 수 있는 동영상 수가 적다. 하지만 Dice Player 가 HW 코덱만 지원하는 것은 아니다. 별도의 파일을 설치하면 SW 코덱도 사용할 수 있고, 이를 통해 더 많은 동영상을 재생할 수 있다. 실제로 내 스마트 폰에 있는 일부 동영상은 Dice Player 에서 재생이 되지 않았는데, SW 코덱을 사용할 수 있게 되면서, 현재는 재생할 수 없는 동영상이 없다. SW 코덱 설치에 대해서는 이 블로그 를 보기 바란다. Dice Player 의 강점이라면 네트워크에 대한 지원이다. 현재 Dice Playe

속초에 가면 여기는 꼭 들르자

많은 사람들이 각자의 취향대로 여행지에서 먹거리를 고르겠지 ? 나도 내 취향대로 골라봤다. 여기는 꼭 가보자. 시외버스 터미널 근처 정든식당 고속버스 터미널 근처 이조면옥 중심가 근처 감자바우 우선 정든식당은 장칼국수가 유명하다. 느낌으로 알 수 있겠지만, 잘 모르겠으면 얼큰 칼국수를 떠올리면 된다. 걸죽한 국물과 함께 하는 장칼국수. 면을 다 먹고나서 밥을 말아 먹어도 괜찮다. ^^ 꼭 먹어보시길... 이조면옥. 많은 사람들이 서울의 냉면집을 많이 추천하지만, 내 생각에는 속초 냉면이 더 맛있는 것 같다. 실향민들의 마을인 아바이 마을도 있으니, 냉면이 북쪽에서 유래한 음식이라면 북에서 오신 분들이 집단으로 거주하는 속초에서 그 맛이 더 잘 전해지고 있지 않을까 ? 참고로 속초에서 냉면이라고 하면 회냉면을 뜻한다. 속초 냉면 맛있게 먹는 방법 하나 알려준다. 냉면을 시키면 차가운 육수와 따뜻한 육수가 딸려나오는데 차가운 육수는 냉면에 적당히 섞어 냉면을 비벼 먹는데 쓰이고, 따뜻한 육수는 속초에서 장국이라고 불리는데, 물 대신 먹기도 한다. 바로 이 장국을 잘 활용해야 한다. 냉면에 잘 비벼질 정도로만 차가운 육수를 부어 적절히 비빈 다음에 면을 다 먹는다. 면을 다 먹고 나서 남은 양념 및 고기류들을 그냥 두는 것은 너무나도 아까운 일이다. 이 때 장국을 부어 잘 섞는다. 그리고 나서 그 장국과 함께 나머지를 후루룩... 바루 공양이 절로 된다. 먹어보면 안다. ^^ 감자바우. 강원도하면 떠오르는 것 중의 하나가 감자바우라는 말일 것이다. 그 말처럼 감자가 유명한 동네라는 뜻이겠지 ? 그러면 이렇게 감자가 유명한데 감자로 만든 음식 하나쯤 있지 않을까 ? 바로 감자 옹심이. 감자로 새알을 빚어 걸죽한 국물과 함께 작은 옹기에 담겨져 나오는 음식이다. 각자의 그릇에 덜어 약간의 간장을 섞어 먹으면 흠... 자세한 것은 각자 좋아하는 검색 엔진을 사용하면 위치나 모습 따위를 찾을 수 있을 것이다.

표준 화석, 시상 화석의 흔한 오개념 그래프

이미지
지구과학 관련 문제집을 들여다 보면 표준 화석, 시상 화석을 그래프와 연관지어 출제한 문제들이 반드시 있다. 그런데 국어에 대한 이해가 부족한 것인지 잘못된 그래프를 제시하는 경우가 꽤 많다. 우선 표준 화석과 시상 화석의 정의부터 알아보자. 표준 화석 : 생존 기간이 짧고, 분포 면적이 넓어 지층의 생성 시기를 알려주는 화석 시상 화석 : 생존 기간이 길고, 분포 면적이 좁아 지층의 생성 환경을 알려주는 화석 문제는 생존 기간과 생존 시기/시대, 분포 면적과 분포 지역 따위를 혼동해서 사용한다는 것이다. 올바른 그래프는 이런 것이다. 출처 : study.zum.com(zum학습백과) 다음은 올바르지 못한 그래프의 예이다. 출처 : lg-sl.net (LG 사이언스 랜드) 무엇이 문제일까 ? 우선 표준 화석부터 보자. 이 그래프에서는 표준 화석이 생존기간이 짧고, 분포면적이 넓다는 것을 표현하려고 한 것 같다. 하지만, 문제는 이 그래프에서 표준 화석은 분포면적이 좁은 것부터 분포면적이 넓은 것까지 모두 포함한다는 것이다. 그럼 어떻게 고쳐야 할까 ? 분포면적 대신에 위도나 경도처럼 수치화된 분포지역 개념을 사용해야 한다. 아니면 위의 올바른 그래프에서 처럼 표준 화석의 범위를 오른쪽 아래로 한정해야 한다. 이제 시상 화석의 문제점이 보일 것이다. 이 그래프에 따르면 시상 화석은 생존 길이가 짧은 것부터 생존 길이가 긴 것까지 모두 포함한다. 따라서 세로축의 제목을 생존 길이 또는 생존 기간이 아니라 생존 시기 또는 생존 시대로 바꾸어야 한다. 아니면 시상 화석의 범위를 왼쪽 위로 한정해야 한다. 이미지를 검색하다가 잘못 그려진 그래프의 출처가 LG 사이언스 랜드라는 것을 알고 이 문제의 심각성을 더욱 실감할 수 있었다. 개인이 운영하는 사이트도 아니고 국내 굴지의 대기업이 운영하는 과학 관련 사이트임에도 불구하고 저런 잘못된 그래프가 사용되고 있다는 사실이 말이다. 이뿐만 아니라, 앞서 말했듯이 중고

방사선, 방사성, 방사능

참으로 헛갈리는 용어다. 구분해보자. 방사선 : 방사능 원소가 붕괴될 때 방출되는 고속도의 물질 입자선 방사성 : 방사선을 내보내는 성질 방사능 : 방사선을 내보내는 일이나 성질 출처 : 다음 국어사전 정리해 보면, 방사능이 있는 방사성 물질에서 방사선이 나오게 되고, 그 방사선에 지속적으로 노출되면 좋지 않다.

svn 을 git 로 바꾸기

기존의 svn 저장소를 git 에서 이용하는 방법 중의 가장 대표적인 것은 git-svn 일 것이다. 그런데 사정상 git-svn 을 사용할 수 없어서, svn 저장소를 git 저장소로 바꾸는 방법을 찾아 보았다. 일단, 검색된 것은  svn2git 였다. 그런데 svn2git 는 ruby 가 있어야 했다. ruby 깔기도 귀찮고 해서 다른 방법을 찾아 보았는데,  SubGit 라는 것이 있었다. SubGit 은 Java 1.5 이상이 있어야 했지만, 다행히 Java7 이 깔려 있었다. 그래서 다운로드 페이지의 QuickStart 에 설명되어 있는 대로 바로 시도. 오~~~ 잘 된다. 이렇게 하면 자동으로 svn 저장소와 싱크가 된다고 한다. 하지만 나는 굳이 svn 저장소와 싱크를 원하지 않았다. 그래서 싱크하지 않는 방법은 없나 찾아보니, 역시나 있다. One-time import . 저장소를 바꾼 후에 git log 를 통해서 commit log 를 살펴봤더니, 작성자는 svn commiter 로 이메일은 commiter_id@local 로 바뀌었다. 이것을 바꾸는 기능은 없나 살펴봤더니, 역시나 있다. 필요로 하는 것은 다들 필요로 하는구나 싶은 순간. import 명령 도움말에 보면 --authors-file 옵션이 있다. 이를 이용하자. FILE 의 형식은 http://www.subgit.com/book-remote/index.html#authors-mapping 여기에서 확인. tag 도 깔끔하게 바뀌는 것을 확인했다. 다만 branch 가 없던 저장소라 branch 는 확인하지 못했지만, 잘 될 거라 믿어 의심치 않는다. 참, SubGit 은 평가용으로 원할 때까지 쓸 수 있지만 등록하라는 메세지가 나온다. 이게 싫다면 등록하면 된다. Free 용은 committer 10명까지, Open Source 용은 제한이 없는 것 같고, 상업용은 용도에 따라 가격이 달라진다. 내게는 어차피 한 번만 필요했기에

서버에 git 설치하기

git 서버를 구축해봐야지 생각만 하다가 오늘 시도해 봤다. 의외로 간단했다. 하지만 관리자 권한이 없다보니 몇 가지 함정이 좀 있었다. 일단, apt-get 이나 yum 같은 설치 프로그램을 쓸 수 없었다. 그렇다면 귀찮지만 소스를 받아서 직접 빌드하는 수밖에... git 소스 타볼 을 받아서, 권한이 있는 디렉토리에 푼다.  예를 들면 디렉토리 관리를 위해 $HOME 에 work/git 를 만들어 그 곳에 푼다. 소스를 풀어 놓은 디렉토리에 가서 ./configure 를 실행시킨다. 이 때 꼭 권한이 있는 디렉토리를 --prefix 로 지정해 주자. --prefix 가 없으면 /usr/local 이 기본이 되는데, 관리자가 아닌 이상 그 곳에 권한이 없다. 역시 내 안방이 최고다. $HOME/usr 따위를 --prefix 로 지정해 주자. ./configure --prefix=$HOME/usr configure 가 끝나면 make 차례. make 도 끝나면 make install 을 날려준다. 이제 git 를 실행시킬 수 있다고 생각했지만, 정작 git 를 실행시키려고 하면 git 를 찾을 수 없다고 나온다. 이런... 이유는 PATH 때문이다. git 가 설치된 bin 디렉토리를 PATH 에 추가해 주자. export PATH=$PATH:$HOME/usr/bin 그럼 이제 되겠지 했는데, 웬걸 libiconv.so.2 가 없다며 난리다. 서버에 이미 설치가 되어 있다면 다행이지만, 이 서버에는 없나 보다. 또 설치해야지 뭐... ㅠㅠ libiconv 소스 를 받자. git 와 마찬가지로 빌드해서 설치하자. git 가 실행되겠지 하는 희망을 가지며, 실행해보지만, 여전히 같은 불평을 쏟아낸다. 하... 아까는 PATH 이번에는 LD_LIBRARY_PATH 가 문제다. libiconv 가 설치되어 있는 lib 디렉토리를 추가하자. lib64 도 있으면 같이 추가하자. export LD_LIBRARY_PATH=$LD_

고생대 중생대 하위 시기 쉽게 외우기

고생대는 캄브리아기 - 오르도비스기 - 실루리아기 - 데본기 - 석탄기 - 페름기 중생대는 트라이아스기 - 쥐라기 - 백악기 이렇게 세분되는데, 외우기가 힘들다. 팟 캐스트 '파토의 과학하고 앉아있네' 에 출연한 서대문 자연사 박물관 이정모 관장이 제안한 방법이다. 캄 ! 오실 때( 데 ) 석탄 퍼( 페 )오시면 튀( 트 )긴 쥐 포 백 마리 드릴게요. 흠... 느낌 있구만...