오랜만에 Blog를 쓸려고 하니,

WordPress 에서 이미지가 사이즈가 조절이 안된다.
이유를 알아보니, Ubuntu 서버에 php5-gd package 가 설치가 안됐기 때문이었다.
이걸 설치할려는데, apt-get update 가 안먹힌다. 이유를 알아보니 us.archive.ubuntu.com 에서는 더이상 14.10 패키지를 가지고 있지 않다. 이미 지원 중지라 서버에서 제거 (2015-7월쯤부터) 그래서 URL 을 old-releases.ubuntu.com 으로 변경해야 한다고.
문제 해결.

ubuntu 에서 키보드 remapping

1. xev 명령을 통해서, 키보드 keycode 값을 알아 낸다.
2. ~/.Xmodmap 파일에 아래와 같은 형식으로 재정의 해 준다.

keycode 00 = BackSpace

3. 아래 명령을 통해서, 위 설정이 적용 되도록 한다.

xmodmap ~/.Xmodmap

ubuntu + fuse + sshfs 사용하기

FUSE 는 참 재미난 놈이다. 기본적으로는 kernel level 의 file system 관련 부분을 user space 에서 접근 가능하도록 하는 것인데, 쉽게 말하면, 새로운 파일 시스템을 만들려면, 커널 차원에서 만들어야 하지만, 이게 쉽지가 않다. 그래서, 새로운 파일 시스템을 만드는 작업은 만만치 않은 일이다. 하지만, fuse 는 이러한 커널차원의 일을 일반 응용프로그램을 만드는 user level 에서 접근 가능하도록 하여서, 손쉽게 새로운 파일 시스템을 쉽게 만들게 해 준다. 스크립트언어로 바인딩도 많이 되어 있어서, python, ruby, perl 등으로 쉽게 새로운 파일 시스템을 만들 수 있다.
예를들여, youtube 를 파일 시스템 처럼 접근 가능하고, flickr 도 파일 시스템으로 접근 가능하다. 가장 많이 사용되는 것은 ssh 를 파일시스템으로 접근하는 것인데, 이것이 sshfs 이다. fuse 를 이용해서, 마치 sftp 로 마운트 된 것 처럼 만들어 준다.
이게 참 좋다고 생각만 하고 있었는데, 사실 잘 쓰지는 않았다. 이번에 ubuntu 에서 쓸려고 하니 문제가 생겼다.

sudo sshfs username@hostname.com:/path/to/mount /local/mount/path

위와 같이 하면, mount 가 된다. 하지만, ls를 해 보면

d?????????   ? ?      ?          ?                ? /local/mount/path

위와 같이 이상하게만 나온다. 문제는 sudo 를 통해서 root 권한으로 mount 하면, root 사용자만 접근 가능하다는 것. 그래서 해결 방법을 검색을 통해서 찾았다.

sudo sshfs -o allow_other username@hostname.com:/path/to/mount /local/mount/path

이제, 문제 없이 마운트 되고, nautilus 에서도 잘 보인다.
아직 한가지 남은 문제는, 시간이 지나면, 접속이 끊어지고, 다시 자동으로 붙지 않는 다는 것이다. 그럼 프로세스를 죽이고 하는 더러운 짓을 해야 한다.
update>
이런 바보같은 포스트가 다 있나! 오늘 sshfs README 를 읽는데, 한문장이 나왔다.

Note, that it’s recommended to run it as user, not as root. For this to work the mountpoint must be owned by the user.

대체 처음에 왜 sshfs 를 할 때, sudo 를 했었는지 기억이 안난다. 그래서, 문득 그냥 해 보니깐, 잘된다!

sshfs username@hostname.com:/path/to/mount /local/mount/path

lftp

항상 command line 으로 ftp client 를 쓸때는, 그냥 기본 ftp 를 쓰거나, ncftp 정도를 써왔는데, 이번에 우연한 기회로 lftp 를 발견했는데, 매우 유용하다.
접속한 서버쪽의 charset 을 지정해 주고 싶을 때에는,

set ftp:charset cp949

그리고, 폴더채로 다운받고 싶을 때에는

mirror remote-folername

반대로 폴더채로 올리고 싶을 때에는,

mirror -R local-folder

http://lftp.yar.ru/

ubuntu 11.10

ubuntu 11.10
우분투의 가장 맘에 드는 점은 6개월 업데이트 주기다. 또 좋은 건, 이 6개월 마다 전체적인 UI 혹은 UX 가 많이 바뀐다. Mac OS X 의 매우 신중스러운 접근도 좋지만, 우분투의 이런 무대뽀적인 접근도 좋다. 뭔가 6개월 마다 새집에서 사는 느낌. 6개월 마다 자동차가 바뀌는 이런 느낌이다. 6개월마다 어떻게 써야 할지 몰라 허둥대는 것도 재밌다. 순수 작업용이라면 짜증이 났겠지만, 취미용이니 더 재밌어 지는 셈이다.
 
 

맥에서 우분투로 옮긴 한글 파일명 문제

맥에서 SFTP 나 다른 방법을 통해서, 파일을 옮기다 보면, 한글이 같은 유니코드 이지만, 풀어져 보이는 문제가 있다. 이거 상당히 골치 아픈 문제인데, 여기에 대한 해답을 나름 찾아봤다.
방법은 convmv 를 설치하는 것. apt-get 을 통해서 convmv 를 설치해 주고, 아래와 같은 명령을 통해서 변경 가능.

convmv --notest -nfc -f utf8 -t utf8 파일명

여기서 notest 옵션을 주지 않으면, mv 명령어만 보여주고, notest 옵션을 주면, 실제로 mv 명령이 실행된다.
NFC 의 경우, Normalization Form C 라고, 한글의 경우 자소를 모두 모아서 코드를 만들고, 유럽어의 경우 액센트 기호가 붙은 알파벳을 하나로 취급하며 주로 유닉스(리눅스)쪽에서 많이 쓰이고, 반면 NFD는 Normalization Form D로 한글 자로를 풀어서 각각 코드를 부여하며, Mac OS X 에서 사용한다. 위에서 –nfc 옵션을 주면, NFC 로 변환해 준다.
잠깐 문제가, 변환을 시도하면, 파일길이가 255자 넘는다면서 실행을 포기하는 현상이 발생하여, Perl 로 되어 있는 코드에서 해당 부분을 제거하니, 문제가 발생하지 않았다. (실제 mv 명령 실행에도 별 문제가 없었던 것으로 보아, 아마도 파일길이를 계산하는 부분에 문제가 있는 것으로 보인다.)

  if (! $filenamelength) {
    print STDERR "$opt_t doesn't cover all needed characters for: \"". &$from_print($dir.$oldfile) ."\"\n";
    return undef;
# } elsif ($filenamelength < $maxfilenamelength) {
#   print STDERR &$from_print($dir.$oldfile).": resulting filename is $filenamelength bytes long (max: $maxfilenamelength)\n";
#   return undef;
  }
  &posix_check($new);
  return 1;

 

before

변경전

after

변경후 (mp3는 bugs에서 구매한 정품)

대단한 발견: HandBrake CLI

사실 여전부터 이름은 익히 들었지만, 한번도 써 볼 생각을 안했는데, 요즘 쌓여가는 작은 크기의 동영상들을 폴더를 유지한채 인코딩을 스크립트로 자동화 할 수 없을까 계속 고민하며 ffmpeg 으로 삽질을 계속하던 중 (다른건 다 잘되는데, mov 파일이 안됨), 구글 검색으로 HandBrake 이름을 발견, 테스트를 했는데, 내가 원하는게 바로 있었다.
사실 HandBrake 도 결국 ffmpeg 의 껍데기인데, 내가 원하는 방식으로 껍데기를 만들어 놓았다.
내가 원하는 방식이란? 모든 동영상을 iPad 에 플레이 가능하도록 변환하기.
우분투에서 설치하는 건 매우 간단. http://handbrake.fr/downloads.php 페이지에서 다운로드 가능
변환도 매우 간다. https://trac.handbrake.fr/wiki/CLIGuide 페이지의 설명에 따라, 다음 한 줄 이면, iPad 용으로 뚝딱 변환.

HandBrakeCLI -i movie.mkv -o movie.mp4 --preset="iPad"

우분투에서 PhotoSync 사용하기

PhotoSync 앱은 아이폰에서 사진을 옮기기 위해서 자주 사용하는 앱이다. 아이튠즈를 통해서 싱크할 필요 없고,  아이포토나 애퍼쳐를 거치지 않고, 간단하게 찍은 사진 몇장을 옮길때 더 없이 편하다. (iCloud 이후 어떻게 바뀔지 모르겠지만)
다만, 요즘 우분투를 주로 사용하다 보니, 아이폰으로 사진을 찍고, 우분투에서 보고 편집하고 업로드하고 하는 일을 자주하게 되는데(아이폰에서 바로 Flickr 업로드도 가능하지만, 이게 생각보다 잘 안된다), 아이폰에서 사진을 가져올 방법이 없다. 더구나 PhotoSync 는 맥용 윈도우용 전용 어플리케이션이 있지만, 우분투용은 없다. 하지만, PhotoSync 앱을 유심히 들여다 보니, 하단에 접속 URL이 버젓이 있었다. 오히려 웹으로 접속하는게 훨씬 편하다고 느낄 정도.
PhotoSync from Web
 

첫 화면은 카메라롤, 포토라이브러리, 그리고 앨범 목록이 쭉 뜬다.
PhotoSync from Web

그리고, 카메라롤에 들어가면, 최근 사진 목록이 뜨는데, 여기서 선택하고 다운로드 하면, zip 파일로 묶어서 받을 수 있다.

우분투에서 calibre 사용하기

calibre on linux desktop
킨들 한글 폰트 핵을 한 다음에도 사실 한글을 볼 일이 잘 없었다. 한글 컨텐츠를 찾아다 찾은 것이 바로 calibre 의 뉴스 기능이었다.
우분투에서 calibre 를 설치한다. 설치하면, 사실 거친 UI 가 처음엔 적응이 잘 안된다. 하지만, 개발자스런 UI 답게 한번 개발자의 멘탈을 이해하고나면 매우 쓰기가 쉽다. calibre 는 크게 두가지 용도가 있는데, 하나는 epub 파일을 mobi 로 변환해서, 킨들에 보내는 기능이고, 두번째는 뉴스를 긁어와서 mobi 로 만든 다음 킨들에 보내는 기능이다. 두기능 모두다 거추장스럽게 케이블 연결을 통해서 보내는 것보다는 @free.kindle.com 메일 계정 설정을 통해서 해당 계정으로 메일만 보내주면, 킨들에 자동으로 들어온다. (@kindle.com 메일은 3G 망을 통해서 들어오고, 미국외 지역에서는 과금이 된다. 그것을 피하기 위해서 @free.kindle.com 메일을 쓰면, wifi 접속 시에만 다운로드가 이루어진다.) 다만, 마술처럼 스르륵 들어오지는 않고, 강제로 wifi 를 잡아주고, 애타게 기다리면 들어온다.

 킨들에서 뉴스 수신

킨들을 보면, 다음 뉴스가 수신이 되어 있다.

킨들에서 뉴스 읽기

다른 뉴스 컨텐츠와 같은 방식으로 뉴스 읽기가 가능하다.

calibre 는 맥에서도 사용이 가능하다. 다만, 맥을 백그라운드 뉴스 수집 및 발송과 같은 천한 일을 시킬 수 없기에, 그런 것은 우분투에게 맡긴다…^^