우분투에는 토렌트 프로그램이 내장되어 있다?!

규링은 토렌트를 잘 이용한다. 일본 본방을 보기 힘들면 처음에는 토렌트를 이용해서 보다가 나중에 블루레이를 지르니깐…(응?!) 근데 머신을 리눅스를 쓰다 보니 리눅스에서 그냥 토렌트 받는 걸 생각해서 해봤다.

근데

토렌트 파일이 이렇게 표시되는 것이었다.

스크린샷, 2014-02-26 19:36:26

 

…다운 가능한 파일 비슷하게 표시되어 있는 것이다. 그래서 혹시 몰라서 실행시켜 보니 트랜스미션이 바로 실행되는 것이다. 트랜스미션은 리눅스에서 토렌트를 받을 수 있게 해주는 프로그램이다.

스크린샷, 2014-02-26 19:29:49

 

이게 바로 실행했던 모습이다. 그냥 바로 쉽게 쓸 수 있도록 되어 있다니… 놀랍다!

미국이나 유럽의 경우에는 한국보다 인터넷이 느린 곳이 많다. 그래서 토렌트가 상당히 중요한 역할을 한다. (옛날에 쓰였던 P2P의 다운로드 가속 기능도 인터넷 속도 느린 곳에서는 잘 쓰이던 기술이었다.) 그래서 기본 기능으로 아예 내장시켜서 놓은 것으로 보인다.

p.s. …이러면 그냥 편하게 쓸 수 있는 거잖아?!

데스크탑 버전으로 서버 돌리기?

예전에 뭣모르고 서버 만들때 생각 많이 했던 부분이다. “서버용 운영체제를 꼭 써야 하는 것인가?”하는 의문… 근데 나 혼자 쓰거나 할 정도의 소규모 서버라면 굳이 데스크탑 버전으로 돌려도 상관 없다는 생각이 든다. 단, 윈도우의 경우에는 자신이 가지고 있는 배포판 버전 잘 확인해보자. 윈도우 시스템 설정을 해야 하는데 환경 지원 전혀 안하는 버전이 허다하다. (홈 프리미엄이나 미디어 버전 같은거…)

프로그램 개발하다 보면 상당히 많은 테스트 환경을 만들어 쓰게 된다. 특히 여러모로 많이 쓰는 것 중 하나가 데이터베이스를 사용한 프로그램 개발 혹은 클라이언트/서버 프로그램 개발을 하다 보면, 개발자의 컴퓨터에 직접 셋팅해서 localhost로 접속해 쓰는 경우. (상당히 허다하다) 그런 경우를 보면 알겠지만, 데스크톱 환경이라고 해서 별로 문제될 것은 없다.

단, 서버용 운영체제가 좀 더 서비스 분배 및 사용에 더 최적화가 되어 있기 때문에 자원 활용을 최대한 높이기 위해서 쓰는 것이다. 서비스를 제공하는 입장에서는 서비스에 사용되는 자원을 최대한 활용해서 쓰고 싶어하지 쓸데없이 남아도는 자원을 돌리는 것을 좋아하진 않는다.

참고로 HP나 델에서 파는 마이크로 서버(개인용 혹은 소규모 사무실용으로 만들어진 무지하게~ 싼 서버. 스토리지 빼고 30만원이면 살 수 있다.)에서도 데스크탑에서 쓰는 윈도우도 설치할 수 있도록 해준다. 단, 버전에 맞춰서…. 리눅스 데탑버전 깔아서 써도 별 문제라고 생각하지도 않고요…

잘 모르면 데스크탑 버전으로 서버 돌리면서 서비스를 직접 써보는 걸 추천합니다.

우분투에서 ssh 설치하여 외부에서 접속하기

우분투를 쓰면서 이것저것 해놓고 하는 게 많아서 하나 둘 정리해서 작성해 두려고 한다. 이런 것쯤이야 엄청나게 많은 사람들이 작성해 두긴 했지만… 스스로 글을 써가면서 저장하는 것이랑은 별개의 작업이기 때문이다.

터미널을 열고 아래 명령어로 설치를 진행하였다.

sudo apt-get -y install ssh

이러면 알아서 설치를 진행할 것이다. (도중에 뜨는 yes no 선택지를 그냥 자동으로 넘기기 위해 옵션 준 거 외엔 별 거 없다)

그 다음에 진행할 것은… 없다. ssh 설치와 동시에 서비스가 시작되고, ssh의 경우에는 시스템 시작시 자동으로 동작하도록 자동으로 된다. (안되면 설정을 하면 된다.) 오래전부터 되어 있던 것 같다.

이제 외부에서 연결할 수 있도록 공유기 설정을 해 줘야 한다. ifconfig를 통해 지금 연결되어있는 ip주소를 찾은 뒤 포트 포워딩 작업을 해준다. 그 다음에 포트 외부에서 직접 접속을 해보면 된다.

스크린샷, 2014-02-26 18:29:24설정 후 연구실 컴퓨터에서 집에 있는 리눅스에 접속한 화면이다. ssh는 의외로 간단하게 설정해서 사용할 수 있다.

 

프리셀의 재발견

우리가 처음에 컴퓨터를 사고 나서 윈도우를 설치하게 되면 기본적인 게임이 있다. 바로 지뢰찾기, 카드놀이, 프리셀, 하트. 리눅스에도 보면 아일라이어트 솔리테이에 프리셀이 내장되어 있다. (사실 이거 안에 뭔가 카드게임이 엄청나게 많지만..)

규링에게 있어서는 프리셀은 심심할 때 갖고노는 게임 중 하나이다. (나머지는 팡야랑 월오탱이랑 마작) 프리셀 규칙을 몰라서 초등학교 2학년때까진 거의 안했다가 초3때부터 제대로 알게 되어서는 가끔 심심하면 프리셀을 쭉 한다.

프리셀의 목적은 왼쪽에 있는 제한된 프리셀을 잘 이용하여 정해진 숫자의 카드를 이동하면서 오른쪽의 셀에 카드를 정리하는 것이다. 근데 이 게임이  참 재밌는 것이 카드 이동 수가 제한된다는 것이다. 기본 1장부터 시작해서 셀이 비어있는 숫자만큼 이동이 가능하다는 것이다. 이는 여러장을 움직이는 데 있어서 규칙이 있기 때문이다.

여러 장을 움직이는데는 LIFO 규칙이 적용된다. 2-3-4 세 장의 카드를 움직이려고 할 때, 우선 왼쪽의 프리셀을 확인한다. 셀이 두개 이상 비어 있을 경우, 먼저 2를 셀 위에 올리고, 그 다음에 3을 셀 위에 올린다. 그리고 남아있는 4를 원하는 위치에 움직이고 나서 프리셀에 있는 3을 가져오고, 2를 가져온다. 이렇게 해서 2-3-4가 동시에 움직이게 되는 것이다. 이게 컴퓨터 상에서 빨리 계산되어 움직이기 때문에 그냥 옮겨지는 것처럼 보일 뿐이지, 원래는 움직임도 다 확인하는 것이다. 그래서 툭하면 처음 하는 사람들이 몇 개 밖에 움직일 수 없다고 하는데 그게 머릿속으로 생각 안하고 해서 그렇다. 것보다 룰을 이해 못해서 못하는 사람들이 더 많지만..ㅇㅅㅇ;;

사진

 

이게 뭐 어때서 이러냐고?

순간적으로 생각났다. 고정된 메모리와 링크드 리스트로 이루어진 스택이. ㅇㅅㅇ (왜!)

스택 설명할 때 써먹을 수 있을 거 같은 기분이 들었다. 근데 이게.. 좋은 예시이긴 하다. 제한된 리소스를 움직이면서 처리하는 이 움직임이…..

p.s. 규링이 잠을 제대로 못자러 이럽니다….
p.s.2. 잠을 못잔 이유는 사진집 때문이 아닙니다. (의심할까봐..)

개발자와 건강 6

개발자는 건강을 챙기고 살아야 한다. 요즘 내가 무지하게 중요하게 생각하는 것이다. 근데 개발자가 건강을 지키기 싫어서 안지키는 게 아니다. 업무량에 치이고 야근하고 뭐하고 하다보면 이것저것 나쁜 습관이 자연스럽게 생겨서 몸을 망치는 것이다. 그래서 개발자의 건강을 해치는 것이 무엇인지 하나하나 짚어보면서 글을 나가보려고 한다. 특히 내가 몸이 안좋기 때문에 내 몸상태를 망친 녀석들을 위주로 올리긴 하겠지만, 아마 내 몸을 망친 녀석이 남의 몸을 안망칠 꺼란 생각은 안하기 때문에…

오늘은 간단한 식습관에 대해서 예기해 보려고 한다. 회사에서 개발하면 점심시간은 제대로 챙겨먹는다. 다른 사람들이 점심식사하러 쭉 나가고 하다보면 “아, 점심시간이구나…” 라고 생각하고 정리하고 나오게 된다. 근데 이 식습관 중에서도 회사 근처에서 먹는 회사밥들에 대해서 논해보려고 한다.

거의 매일 먹어야 한다. 하루 한 끼일지라도 주중에는 매일 먹는 것이다. 그렇기 때문에 메뉴 선정을 잘 해야 한다. 근데 이 메뉴들이 보면 대부분 기름진 반찬 아니면 그냥 맵거나 쓸데없이 달거나(?!) 하다. 그냥 먹을만하다고 해서 막 먹기도 뭐한 것들이 많다.

의외로 잘 생각하고 제대로 된 곳에서 밥을 먹는 게 중요한데.. 의외로 그렇지 못한 현실이 좀 아쉽다. 그래서 그냥 도시락 싸다니는 분들도 있는데, 그 비중이 얼마나 될지…… 이젠 점심 먹는 것도 잘 판단하고 먹자. 굳이 몸에 부담되는 메뉴라면 굳이 먹지 말자. ㅇㅅㅇ

리눅스와 C

리눅스의 대부분이 C언어로 작성되었고, 리눅스 수많은 어플리케이션을 C로 작성한다. 실제로 C로 작성된 프로그램도 상당수 존재한다. 따라서 리눅스 프로그래밍은 C프로그래밍을 의미한다. (거의 일반화된 예기)

또한 C 프로그래밍을 위한 환경을 리눅스에서는 기본적으로 제공하고 있다. C 컴파일러인 gcc, C 디버깅 툴인 gdb, C 컴파일 자동화 툴인 make 등을 기본적으로 제공한다.

결국 리눅스 환경에서 프로그래밍을 한다면 C는 계속 이용하게 될 것이다.

요즘 많은 언어들이 있어도 C는 안쓸 수 없을 것이다.

C언어

C언어는 제디느 리치와 켄 톰슨이 벨 연구소에서 유닉스를 개발하던 중 1972년 데니스 리치에 의해 개발되었다. 그리고 유닉스도 C언어로 구현되었다. 이러한 C언어는 뛰어난 기능과 융통성을 제공함으로써 여러 곳으로 빠르게 보급되어 많은 프로그래머(특히 1학년들…)에 의해 사용되기 시작하였다. 그러나 많은 프로그래머들이 자신이 사용하기 편리하게 C언어를 수정하기 시작하여 프로그램간에 호환성이 결여되고 표준 라이브러리 함수마저도 조금씩 달라지는 문제가 발생하였다. 이런 문제점을 해결하기 위해 ANSI에서는 1983년에 C 표준화를 위한 위원회를 결정했고, 1989년 ANSI 표준 C라고 알려진 표준안을 발표했다.

이러한 C언어는 유닉스, 리눅스와 같은 대부분의 시스템 소프트웨어를 구현하는 언어로, 고급 언어이면서 저급 언어처럼 비트나 바이트 처리, 그리고 포인터에 의한 주소 처리를 한다. 그리고 PC에서부터 대형 컴퓨터에 이르기까지 모두 사용할 수 있는 이식성이 뛰어난 언어다. 또한 구조화되어 있어 같은 기능을 구현하는 다른 언어보다 프로그램 코드 길이가 짧다는 장점이 있다. 이러한 장점 때문에 C언어의 명성은 앞으로도 계속 갈 것이다.

SSHD랑 듀얼 드라이브에 대한 개인적인 의견

좀 오래된 기사를 검색하다가 읽었다. (기사는 본문 아래에…) 하드 제조업체들이 SSD가 빠른 속도로 용량이 증가하는 것과 동시에 가격이 낮아지니깐 하드의 성능 향상을 위해 여러가지로 만들어 낸 것이다.

사실 시작은 시게이트의 SSHD였고, 웬디는 13년 말(저 기사 기준)이 되어서야 듀얼 드라이브 내놓은 상황이다.

.근데 시케이트나 웬디나 비슷하지만 뭔가 전혀 다른 소리를 하고 있는 것이다.

SSD를 “HW레벨”에서 캐시로 제어하는 시게이트의 SSHD나..
SSD랑 HDD를 “하나의 포트를 통한 연결”을 통해 양쪽 다 쓸 수 있도록 하겠다는 웬디나….

저 둘이 기존 하드들보다 속도가 빠르다고 하는 것에 대해서는 확실히 맞긴 하다만… 여러모로 좀 회의감이 들기도 한다.

……근데 둘 다 공통적인 것이 있다면…
둘 다 속도 향상을 위해서 SW 레벨이나 OS 내부에서 뭔가 처리하고 하는 걸 선택하진 않았다.

p.s. 내가 손대려고 했던 부분을 제조사들이 그냥 하드웨어 레벨로 때려박았다. 그래서 기분이 영…
p.s.2. 안그래도 이런 거 뒤져보다가 일본인 친구넘하고 여러 논쟁을 벌이고 난 뒤에 이런 걸 뒤늦게 찾았단 것에 대한 좌절도 있다….

http://news.donga.com/3/all/20131206/59388722/1

요즘들어 무서운 것이 있다면…

진짜 요즘들어 무서운 것이 있다면…

  1. 내가 하려고 했던 일이 부정당하는 것
  2. 남들이 다 알고 있는 것을 모르는 것

이 두 가지를 들 수 있을 거 같다.

첫 번째 것은…… 그전까지의 목표는 “(그나마) 이룰 수 있다”, “(그나마) 해낼 수 있다”는 전제 하에 일을 진행했던 것들이 많았으나, 이젠 “할 수 있는 것인가”를 검토하기 시작하면서 자료를 뒤져보니 여러모로 위축되는 것들이 많았다. 내가 생각하기도 전에 수많은 사람들이 생각했고, 만들어냈고, 실패했다. 그 원인까지 다 보고 하다보니 나도 모르게 위축되는 마음이 생기는 거 같다. 만들어 내고도 트랜드에 밀려서 사용 안되고 하는 거 보면… 연구가 쉽지 않다는 걸 제대로 체험하고 있다.

그러다가 두번째 것까지 겹치면… 맘이 완전 엉망진창 되는 거 같다. 실제로 어제 밤에 내가 생각하고 있던 의견(아이디어) 하나가 절친한 녀석에게 무지하게 당했다. 그 친구가 말하길 “한국은 어떤지 모르겠지만, 여기에서는 이미 그런 거 신경 안써도 될 정도라고 본다. 그런 걸 만들어 내도, 실제로 성능 차이가 날 일이 없을 거라고 본다. 전에 읽었던 논문들 좀 보내주마.”

그리고 받았던 압축파일 안에는 이미 완성되어 있는데 사양된 기술들(여러모로 상당히 많았다..)이 개발되고 연구되었던 논문들이 줄줄이 있었다. 그 친구가 다니는 회사의 개발팀 사람들은 이미 다 봤던 논문이라고 한다. 그때 소름돋았다. 진자 이런 거 하나 둘 안챙겨 보면 제대로 뒤쳐지는 건가란 생각도 들고 했다.

….후… 정말 할 일은 많긴 하구나…

오래된 노트북.

고등학교 졸업하고 바로 선물받은 것이 있다. 바로 오래된 노트북이다. 엑스노드 R405 이걸로 무지하게 잘 썼었다. 컴퍼니 오브 히어로즈 4:4 대전도 했었던 녀석이다. 그래픽 코어가 말많은 8400gs여서 그랬지만 성능은 좋게 나왔던 녀석이다. 난 여기에 그때당시 업그레이드 할 수 있눈 건 다했다. 하드도 당시 최대 용량이던 500G 하드에(이때 당시 노트북용은 500G 무지 비싼 냐석이었다.) 램 4기가로 업글하러고 램 사서 서비스 센터에서 업글했다. (램 슬롯 하나가 업글하기 어려운 곳에 있어서..)

뭐, 내 억지 프로그램 소스를 돌리기도 했고, 게임도 무지 돌렸고, 데탑 맞추기 전까진 진짜 험하게 구르고 했던 녀석이다.

그래도 이런 냐석에게도 하드웨어 수명이란 게 있다. 이미 액정이 열화로 노랗게 좀 변했다. 쿨러도 맛가서 새걸로 교체하고, 그래픽 코어도 태워먹어서 서비스센터에서 새걸로 갈아줬다만, 이젠 보드도 좀 오래된데다가 배터리도…..

그래서 이걸 안쓰고 있었다. (때마침 맥북 에어도 있었거든..) 그러다가 이번에 완전히 죽은 NAS와 팬티엄 3를 대신할 서버로 셋팅했다. 사용한 지 7년 된 모델이지만 리눅스 돌리기에 문제도 없고, 게다가 전기도 90w면 무난한 수준이니…. ㅇㅅㅇ

잘 버텨주겠지…..ㅇㅅㅇ;

20140220-134951.jpg