유용한 iOS 앱: Drafts 5

최근에 회사를 옮기고 나서 업무용으로 아이맥 프로와 맥북을 사용하고 있다. 원래 휴대전화는 아이폰을 쓰고 있었고, 아이패드 프로 2세대까지 생기면서 (애플워치를 뺀) 사과농장이 완성되었다!

생각보다 마음에 드는 점은 Drafts 5 앱의 활용성이 너무 좋다는 점이다. 이 앱은 기본적으로는 모든 종류의 텍스트를 담아두는 텍스트 에디터이지만, 저장된 텍스트를 다양한 액션을 통해 처리할 수 있다는 혁신적인 개념을 가진 앱이다. 버전이 5 씩이나 되었으니 당연히 오랫동안 사용된 앱이고, 나도 4 버전까지는 유료 앱을 구매해서 사용하고 있다가, 5 버전이 나오면서 앱은 무료로 바뀌면서 구독제가 되어서 한참 동안 사용을 하지 않고 있었다. 사실 구매하지 않아도 사용을 할 수는 있지만, 이 앱을 제대로 쓰기 위해서는 각종 액션을 편집할 수 있어야 하고, 그러려면 구독을 해야만 한다. 대신에 구독을 하면 iOS와 Mac에서 모두 사용할 수 있다는 점은 다행이라고 할 수 있다. 일년에 $19.99라는 가격이 어떻게 보면 비싼 가격일수 있지만, 지금 제공하는 기능을 생각해 보면 충분히 지불할 만한 가치가 있는 가격이라고 생각한다.

텍스트를 써 놓고 이걸 여러 가지 액션으로 처리할 수 있다는 점이 빛을 발하는 경우는, 예를 들면 새해 인사를 위해 문자 메시지를 보내는 경우이다. 많은 사람들에게 거의 비슷한 문자를 보내는 경우 Drafts 앱에 문자 내용을 써 놓고 계속 메시지 액션을 수행하면 문자 앱에서 하는 것보다 훨씬 편리하다. 인앱 구독인 프로를 활성화한 경우에는 액션을 수정하거나 새로 만들어서 넣을 수 있는데, 문자의 경우 첫 줄에 받는 사람 이름을 넣고 둘째줄부터 문자 내용을 입력하면 메시지 수신인까지 자동으로 넣을 수 있는 것이다.

내가 가장 많이 사용하는 액션은 ’10년일기’이다.

’10년일기’는 ’01월 07일’이라는 제목의 노트에 일기를 계속해서 기록하는 것이다. 최대 366개의 노트가 생길거고 (02월 29일 포함) 여기에 일기가 쌓이는데, 최근 내용이 위로 올라오도록 되어 있다. 01월 01일에 일기를 쓰면서 작년, 2년전, 3년전에는 어떤 마음이었는지 뒤돌아볼 수 있다는 것이 이런 방식의 노트가 가진 장점이다. 오래전에 펀샵에서 10년 일기라는 일기장을 판매했는데, 여기에는 날짜별로 10년치 칸이 미리 만들어져 있어서 10년간의 기록을 볼 수 있다는 것을 강조했었다. 여기서 착안한 방식이고, 에버노트에 기록을 하고 있다. 노트의 경우 append도 가능하지만 prepend도 가능하기 때문에 가장 최근 일기가 가장 위에 올라오도록 하는 것이 가능한 셈이다.

이런 용도로 이전에는 WriteNote Pro라는 앱을 사용하고 있었는데, 이 앱은 안드로이드에서도 사용이 가능하고 사진을 붙여 넣을 수 있다는 장점이 있다. 사실 에버노트만 지원하는 프로그램이다보니 그림 파일 첨부가 가능한 에버노트의 특징을 활용할 수 있는 것이다. Drafts 5WriteNote Pro보다 나은 점은, 에버노트 뿐만 아니라 대단히 많은 종류의 엔드포인트에 대한 액션을 지원한다는 점, 그리고 여러 개의 액션을 순서대로 수행할 수 있다는 점이다. 위에서 언급한 문자 이외에, 에버노트에 남기는 노트를 그대로 드롭박스, 원드라이브, 구글 독스 등에 남길 수도 있고, 별도의 파일로 저장할 수도 있다. 또 블로그 글을 마크다운으로 기록하고 나면 바로 워드프레스로 보내서 임시글로 저장할 수 있다.

최근에는 맥용 Drafts 앱도 나와서, 맥에서 텍스트를 편집할 수 있다. 물론 맥에서의 액션은 제한적이지만, 텍스트 편집 자체는 맥에서 하는 것이 훨씬 편하기 때문에 언제 어디서든 쉽게 노트를 적을 수 있다는데 의의가 있다고 할 수 있다. 아이클라우드로 동기화가 되기 때문에 언제든 모든 애플 기기에서 동일한 텍스트 내용을 가질 수 있다는 것도 큰 장점이다. 결국 애플 환경에서는 어떤 상황에서도 일단 적고 싶은 내용을 적어놓고, 그 이후에 그 글을 가지고 어떤 일을 할지를 결정할 수 있기 때문에 기록에 대한 접근성이 높아지고, 뭐든 일단 기록을 해 놓고 보는 습관을 기를 수 있는 셈이다.

호스팅 서비스를 이전

호스팅 서비스를 변경했다. 원래 Site5에서 호스팅을 받고 있었는데, 여기는 한 달에 $5이고 2년에 $120을 내야 한다. 서비스 자체는 매우 만족스러웠기 때문에 굳이 옮길 필요가 없다는 생각이었지만 2년마다 $120을 내는 것이 좀 부담스러웠다. 더군다나 요즘은 홈페이지나 블로그에 큰 관심을 쏟지 못하고 있기 때문에.

그래도 홈페이지를 아예 닫는 것보다는 좀더 저렴한 가격에 유지를 하는 것이 좋겠다는 생각이 들어서 업체를 알아봤다. 역시나 한국의 업체들 중에서 이 정도의 조건을 가지고 있는 업체를 찾는 것은 불가능했다. 이미 용량 무제한, 대역폭 무제한, 손쉬운 프로그램 설치, IMAP 방식의 이메일 등에 너무 익숙해져 있었기 때문에, 용량 제한이 있다던가 POP3 방식의 이메일 계정만 한두개 제공한다던가 하는 제한을 가지고 있는 국내 업체들의 경우 아예 고려 대상이 될 수가 없었다.

구글 검색을 통해 여러 호스팅 업체에 대한 정보를 찾아본 후에 최종적으로 결정한 업체는 Mochahost였다. 이 업체의 linux business plan의 경우 cpanel을 제공한다거나 용량과 대역폭 무제한을 제공한다거나 하는 점은 모두 동일하지만, 가격은 $2.45로서 이전 site5의 절반에 불과했다. Site5의 경우에도 (다른 호스팅 업체들도 대부분 동일하다) 할인된 가격으로 가입할 수는 있지만 할인된 가격은 보통 첫번째 지불에서만 적용되고 그 이후부터는 모두 제 가격을 내야 하는데 반해서, mochahost에서는 가입시 할인된 가격을 계속해서 적용받을 수 있다는 점이 가장 좋았고 이 페이지에 실려있는 모든 프로그램들을 간단하게 설치할 수 있다는 장점이 있다.

이전 자료를 백업하고 다시 복원하는 과정에서 내가 얼마나 많은 잡동사니들을 내버려둔 채로 있었는지를 새삼 깨달을 수 있었고, 오래된 짐을 정리하는데는 이사를 하는 것이 가장 좋은 방법이라는 사실 또한 깨달을 수 있었다. 워드프레스나 도쿠위키 같은 것들은 이미 백업과 복원에 대한 좋은 방법을 가지고 있기 때문에 거의 시간을 들이지 않고도 쉽게 사이트 이전을 마칠 수 있었다. 다만 오래 전에 RapidWeaver로 작성해 두었던 홈페이지는 이제 더 이상 유지할 필요가 없을 것 같아 이 부분만 손을 보면 호스팅 이전은 완전히 끝나는 셈.

도쿠위키에 대해 알게 된 몇 가지 (2)

오늘 도쿠위키에 대해 알게 된 점 몇 가지 추가

  1. 스팸을 막으려면 captcha 플러그인을 쓰자.
    ACL을 설정했음에도 불구하고 많은 위키스팸이 달린 것으로 보아 사용자 권한 관리만으로는 안되는 것 같다.

  2. 키보드 단축키를 쓰자.
    사용하는 브라우저에 따라 어떤 modifier 키를 쓰는지 외워두고 (윈도우즈 FF와 크롬은 alt+shift, 맥용 FF와 크롬은 ctrl+opt, 인터넷 익스플로러는 alt 키) h는 홈페이지, e는 편집 모드 진입, s는 편집 저장, x는 인덱스 페이지 정도 외워두면 좋고, 편집 모드에서 b는 bold, i는 italic, u는 underline 같은 것도 예상대로 작동한다.

  3. 스팸단어차단 기능은 좋지 않다.
    사이트에서 추천하는대로 chonqed.org 사이트에서 conf/wordblock.conf 파일을 저장하면, 글 저장할 때 정규식 관련 에러가 난다. 인터넷으로 대충 찾아보니 해당 파일의 크기가 너무 커서 생기는 에러 같은데, 위에 언급한 captcha 플러그인이 잘 동작한다면 굳이 이런 걸 쓸 필요는 없을 것이다. 만약 꼭 써야 하는 경우가 있다면 wordblock.local.conf 파일을 편집하는 것으로 하자.

Momolog 데이터를 Momento로 옮기기

20120228-165648.jpg

Momento는 일종의 일기장 프로그램이다. 이미 Momolog어썸노트
를 가지고 있기 때문에 사실상 이 프로그램에 대한 필요를 느끼지 못했었는데 (둘 다 매우 훌륭한 프로그램이고 업데이트도 꾸준히 되고 있을 뿐만 아니라 모두 한국인 개발자의 작품이다), 이번에 2.0으로 업그레이드가 되면서 여기저기서 이야기가 되길래 좀 자세히 살펴봤다. 놀라운 것은, 이 프로그램이 트위터, 유튜브, 플리커, 페이스북 등 다양한 종류의 SNS들을 한군데 모아준다는 점이었다. 어느 방식으로 글을 쓰던 상관없이 나의 모든 온라인 기록들을 한 군데에서 관리할 수 있다는 것이다. 이 점은 Momolog나 어썸노트가 가지고 있지 못한 특징인데, 이 때문에 이 프로그램으로 옮겨갈 생각을 하게 되었다.

문제는, 이미 momolog에 많은 글을 올려두었는데, 이걸 어떻게 Momento로 옮기느냐 하는 것이다. Momento의 지원 페이지에도 바로 이 질문이 올라와 있는데, 제작자의 답변은 ‘현재 지원하지 않으며, 앞으로 지원할 수 있을지의 여부도 알 수 없다’는 것이었다.

Momento가 백업/리스토어 기능을 지원한다는 점에 착안하여 일단 백업을 한 후, 백업 파일을 손 보는 방법이 가장 직관적인 방법이라고 생각되었다. 문제는 백업 파일의 형식을 알아낼 수 없다는 것. 이래서는 성공할 수가 없다. 깔끔하게 포기.

이런 경우에 보통 사용자라면 그냥 포기를 하거나 기존의 프로그램에 그대로 매여있을 수 밖에 없을 것이다. 그러나, 나는 이미 프로그래밍을 할 줄 아는 프로그래머가 아니던가. 누군가 만들어주지 않는다면 내 손으로 만드는 수 밖에!

일단 momolog의 모든 메모는 csv 파일 형태로 내보내기가 가능하다. 그러므로, 일단 모든 메모들을 text 형태의 파일로 다운로드를 받는다. 문제는 이 파일이 UTF16을 사용한 도스 형식의 파일인데다가, 파일 이름은 csv이지만 실제 column separator로는 tab을 사용했다는 것이다. 게다가 메모의 특성상 한 개의 메모가 여러 줄로 이루어질 수 있기 때문에 개념적으로 csv 파일이라고 볼 수는 없다.

우선 dos2unix를 이용해 CRLF를 LF로 바꾸어준 후, 인코딩을 UTF8으로 변환하였다. 이렇게 소스 파일이 준비되고 나면 이제는 간단한 ruby 파일을 사용하면 될 일.

require 'rss/maker'

data = File.read("data.txt")
chunks = data.split(/(d{4}-d{2}-d{2}s{1}d{2}:d{2}:.+00:00)/)
chunks.delete_at(0)

content = RSS::Maker.make("2.0") do |m|
  m.channel.title = "Momolog"
  m.channel.link = "http://lordmiss.com"
  m.channel.description = "Momolog backup"
  m.items.do_sort = true

  (0..310).each do |n|
    i = m.items.new_item
    i.title = "momolog"
    i.link = ""
    i.description = chunks[2*n+1].split("t").delete_if{|x| x==""}[0]
    i.date = Time.parse(chunks[2*n])
  end
end

File.open("momo.xml", "w") do |f|
  f.write(content)
end

Ruby의 rss/maker를 이용해서 저장한 momolog 백업 파일의 내용을 모두 rss로 전환하여 아무 웹 서버에나 올려놓으면 된다. 이 소스를 Momento에서 feed로 읽은 후에 disconnect해 주면 끝.

이 과정을 통해 배운 것은, 1) ruby의 Time 클래스 사용법 2) ruby에서 정규식으로 split할 때, 정규식 매칭 부분을 array에 유지하기 등이다.

주의) 혹시라도 이 소스를 사용하고자 하시는 분들은, 소스를 그대로 사용했을 때 생기는 문제에 대해 책임질 수 없습니다. 코드의 의미를 이해하시는 분만 사용하시기 바랍니다!

MacStories 이벤트 당첨!

MacStories App Tree의 당첨자가 발표되었다.

당당하게 Money 라이센스를 받을 수 있게 되었다. 야호!!

이 블로그를 운영하는 사람이 여러 개의 맥용 및 아이폰용 어플리케이션 라이센스를 확보해 두고서는 MacStories App Tree라는 이름으로 일종의 이벤트를 벌였는데, 그 내용이라는게, 자신을 twitter에서 follow한 후 이벤트 관련 트위팅을 올리고 블로그에 댓글을 달면 되는 간단한 거였다. 댓글에 자신이 갖고 싶은 어플리케이션 이름을 적어 놓으면 random으로 추첨을 해서 라이센스를 나눠주는 방식이였다.

댓글을 달기 전에 찬찬히 위에 이미 올라와 있는 댓글들을 살펴보았다. 원칙은 한 사람 당 한 개의 댓글만 달 수 있고, 자신이 좋아하는 어플리케이션의 이름을 적어야 한다는 것이었다. 일단 내가 탐나는 어플리케이션을 꼽아보니 Path FinderMoney 두 가지였다. 하나만 적는 것이 아무래도 유리할 것 같다는 생각이 들어서 과감하게 Path Finder를 포기하고 (내게는 ForkLift가 있으니까) Money를 적었다. 무려 $39짜리인데다가, 이미 아이폰에서 아이폰용 어플을 쓰고 있는 터였고, 30일 트라이얼도 해 보고 마음에 들었었지만 선뜻 구매는 못하고 있었던 어플리케이션이다. 덕분에 재무 관리를 좀더 타이트하게 할 수 있을 것 같다.

가만히 보니, 이 사이트의 운영자는 굉장히 열심히 맥과 관련된 이야기들을 포스팅하고 있었다. 모든 포스팅들이 상당히 내용이 알차다. RSS를 등록해놓고 봐야겠다는 생각을 하게 되었다.

어쨌든 멋진 크리스마스 선물을 받게 되어 기분이 좋다.