LiveWriter로 WordPress 에 글을 못 쓰는 문제에 대한 임시 해결책

지난 달에 왜 일부 서버에선 Windows Live Writer로 워드프레스에 글을 쓸 수 없는지 이유를 알게 되었다.

팩키지 시스템으로 프로그램 업데이트를 관리하는 서버에서 내 블로그를 굴리고 있기 때문에, 저 때 쓸 수 있던 방책을 하나도 쓰지 못했다. 그런데 오늘 보니까 이걸 “우회”하는 방법이 나와있었다 — 그것도 플러그인 하나만 설치하면 되는걸로!

여튼 플러그인 설치하고 글을 쓰니 잘 되는듯하다. (이 글도 Live Writer에서 쓰고 있다)

사실 근본적인 해결책이야 이전 글에 나온 방법을 써야하지만, 그렇다고 PHP 를 컴파일해서 올리고 이걸 관리하는 것도 엄한 짓이고, 일단 WP 한정으로 우회한다는 아이디어 자체는 괜찮아 보인다. (+ WP 메인 소스 트리에 넣지 않는다는 점도)

 

ps. 근데 지금 막 WP Plugins 디렉토리에서 받은 파일엔 뭔가 오타가 있는것 같다? 21번째 줄의 version_comapare를 version_compare로 바꿔야 동작한다…

 

Updated: 0.2.2 로 올라가면서 internal sever error(HTTP 500 응답) 내던게 수정. 위에서 언급한 오타 문제가 수정됨.
PHP/libxml2 버젼 문제로 Windows Live Writer를 못 쓰던 사용자라면 가볍게 해결(?)될 듯하다…

Live Writer + WP 형식의 플러그인이 나오기 시작했다

예전에 “Windows Live Writer에서 일정 기능을 담당하고” + “WP 플러그인에서 서버 사이드를 처리하는” 형식의 플러그인이 나올 것 같다고 글을 썼다.

근데 아주 초창기에 가까운 상태긴하지만 이런 플러그인이 나오긴했다.

WordPress에서 검색 엔진 관련 최적화(SEO) 쪽 플러그인에서 보통 키워드 태그 / 포스트 주소(URI) 등을 적당히 손 볼 수 있게 해주는데, 이게 WLW에선 사실 불가능하다.

이걸 WLW 플러그인 + WP 플러그인으로 쪼개서 우회하는 플러그인이 나왔다. 간단히 요약하면,

  • WLW에서 특정 필드를 입력하면 HTML 주석 안에 데이터가 들어가고
  • 이걸 실제로 WP 쪽으로 발행하면
  • WP에서 주석 안 쪽을 해석해서 이걸 포스트 주소 + 키워드 태그에 반영

하는 식으로 동작하게 만들어놨더라.

 

좀 원시적인 수준이지만(…사실 제대로 하려면 WP XMLRPC API를 확장할 수 있어야 한다), 조금 더 발전하면 꽤나 재밌는 플러그인이 많이 나올법하다.

LiveWriter로 WP에 글을 못쓰던 문제

직전 글에서 C++ 코드를 붙여넣다 느낀건데, Windows Live Writer; WLW에서 글을 쓰는게 아니라 WordPress에 기본으로 포함된  WYSWYG 에서 글을 쓰려니 힘든 점들이 좀 있다. 일단 말했듯이 코드 붙여넣기가 좀 -_-;;

대략 2달? 정도 WLW를 못쓰고 있는데, 최근에서야 그 이유를 알게 되었다. 내가 겪던 문제가 WLW 에서 글을 쓰고 이걸 WP 쪽에 발행하면, 글의 모든 태그(HTML이든 뭐든)가 날아가버리는 문제가 있었다. 그래서 주 초에 맘잡고 검색해보니 — 사실 이걸 고치지 않아도 그냥 글을 쓰면 되었었으니 — WordPress 개발자 중 한 명인 Joseph Scott의 블로그에 관련된 글이 있었다.

요약하자면,

A gradually growing list of people have run into a very odd problem using XML-RPC methods in WordPress, where the left angle bracket ( < ) gets stripped. There’s been a fair bit of discussion about this on ticket #7771. The bottom line: the behavior of the PHP XML extension when built against newer versions of libxml2changed, such that left angle brackets get stripped when parsing XML.

즉, WLW 에서 XMLRPC로 글을 쓰는데, 이 녀석을 해석해주는 PHP-xml 의 libxml2에서 왼쪽 꺽쇠갈호(<)를 제거해버리고, 이에 따라 HTML 을 이용한 각종 스타일이 싹 다 날아가버리던 것 -_-

결국 문제는 버젼업된 PHP 에서 XMLRPC 응답을 해석하는데 사용하던 libxml2 의 새 버젼이 좀 다른 형태로 파싱하고 있어서였다. 해결책은 역시 저 블로그에 기술되어 있으며, 현재 3가지(…)가 존재한다.

  • PHP 쪽의 XML 기능을 expat 쪽으로 컴파일해서 모듈을 만든다 — FedoraCore 쪽의  RPM을 써서 안됨(…)
  • libxml2 를 구버젼으로 한다 — 서버에 무슨 문제를 초래할지 알 수 없어서 기각.
  • PHP 와 libxml2 를 새 버젼으로 설치한다 — 현재 FedoraCore 쪽은 해당 버젼보다 하위 버젼을 쓴다

후. 이건 시간이 해결해주나?

Windows Live Writer 새 베타버젼

이미 몇 일 된 일이지만 (2008년 9월 17일), 오프라인 블로깅 툴인 Windows Live Writer의 새 베타버젼(14.0.5025.904)이 등장.

지난 번 업데이트랑 달라진 특이할 만한 사항 몇 가지만 정리하자면,

  • 맞춤법 검사에 한국어가 추가! 실로 맘에 드는 일인듯
  • 사진 테두리 종류가 몇 가지 추가. 그리고 그 외 LightBox 비슷한 기능등 사진/이미지 관련 강화
  • .net / vista 스러운 look & feel이 좀 더 단순화(색상 수 등에서)되었음. 좀 덜 튀는 툴이 되었달까

정도?

근데 요즘 Mac 사용시간이 점점 늘어서인지 잘 안쓰게된다는 건 큰 문제.

맥용으로 포팅 안해주나(야!)

업데이트된 몇몇 블로깅 도구들

…도구라고 부르니 좀 어색하긴하지만 카테고리를 하나로 쪼갤 수 없는 것들이 공교롭게되 몇 주 사이에 업데이트가 되어서.

우선 사용 중인 블로그 도구인 WordPress가 beta2에 돌입했다. 좀 더 있으면 RC;release-candidate를 거쳐서 최종 출시까지 갈듯. 다만 일주일 정도 후인 7/7에 출시 예정이었는데 14일로 fall-back 할지 모른다고 적혀있을 정도라서(…).

게다가 남은 티켓[1] 이 이 만큼이나 있다 –_–a

WordPress2.6.tickets_left

그리고 애용 중인 WordPress 플러그인인 Genie – 알라딘의 책 정보 링크 / 책 표지 등을 손쉽게 표시할 수 있게 도와준다 – 도 업데이트 되었다. 예전 버전에서는 알라딘의 TTB 캠페인에 가입을 해야했었는데 이젠 그럴 필요가 없어졌으니 부담없이 쓸 수 있게 되었다 :$

 

덤으로(?), 오프라인 블로깅 툴 중에 가장 강력한 기능을 제공하는 툴이라고 생각되는 Windows Live Writer 새 버젼에 대한 technical preview 가 나왔다. 실제로 당장 쓰라고 있는 버젼은 아닌데, 이유는 알 수 없지만(…) OS 새로 설치하고 Live Suite을 설치했는데 technical preview가 깔려버리더라고 –_–;;;; 실제로 미리(써)보기 자체는 6월 초에 시작되긴했더라.

일단 기존의 편집/HTML편집 창이 편집/미리보기/HTML 편집으로 변경되었고, 사진 관련 메뉴가 좀 더 추가되었다.

wlw_preview

사진 / 텍스트 블럭에 대한 정렬 옵션, 사진 테두리 처리 등에 이건 좀 있었으면 좋겠다 싶은 것들이 적당히(?)추가되었다. 뭐 아직은 RC도 아니고 WLW의 새 버젼 출시까지는 시간이 꽤 남아보인다.

그리고 이건 왜 안생기나 했는데, 위에서도 잘 볼 수 있듯이 편집기 상태를 탭으로 구분할 수 있게 했다. 전에는 단축키를 누르거나 메뉴에서 찾아서 HTML 소스 편집 / 테마 적용된 상태의 편집 등등을 골라야했는데 편의성은 개선된 것 같다.

개발자 관점에서 보면 SDK 자체에 상당한 변화가 생겼다. WLW 자체가 플러그인에서 할 수 있는 일이 별로 없는데 – 특히 입맛에 맞춰뜯어고치기 쉬운 WordPress랑 비교하면 극명한 차이가 – 포스팅 직전/직후 이벤트를 등록할 수 있게 되어서, “쓸만한 수준”의 플러그인들이 대거 늘어나지 않을까 싶다. 전에는 단순히 포맷팅 된 텍스트 블럭을 넣는다거나, 사진이나 플래쉬를 쉽게 넣게 해준다 수준의 플러그인만 개발 가능했기 때문에; 지금 공개된 technical preview 수준으로 포스팅이 작성되는 순간에 뭔가 추가로 편집해준다거나 하는건 좀 힘들었으니 말이다 – 즉 이제는 WordPress에는 [명령어 인자1 인자2] 식으로 전달하면 뭔가 처리해서 보여주는 플러그인이 많이 있는데, Windows Live Writer에도 비슷한 명령(?)을 처리해주는 플러그인을 만들 수 있게 된다.

자세한 사항은 Windows Live Writer 팀 블로그의 preview 포스팅을 보자.

  1. 만들어내는 기능 단위나, 목표, 버그 등등에 해당하는 것. 흔히 SW개발 쪽에서 issue라고 부르는 것들 []

잡담: 2008년 5월 1일

5월 첫 포스팅은 잡담으로.

Blogging on Mac

맥용 오프라인 블로깅 툴인 bleezer를 받았다. (UTF-8 인코딩된) 한글을 인식 못한다. 버려 -_-

결국 그냥 FF로 WP 내장 에디터(지금까지는 그래왔음). 맥북에서 제일 그리운 윈도우즈 응용 프로그램이 Windows Live Writer라는건 흠좀무. 그런 의미에서 하는 얘기지만, MS가 정말 강점을 갖는 시장은 데스크탑 응용이 아닐까. OS 가 이 시장 자체의 기반이 되긴하지만[1] 데스크탑 응용을 웹과 연동해서 쓰게될때 MS 프로그램이 주는 메리트는 정말 상당한듯. 물론 맥 프로그램들이 다른 형태의 인터페이스로 편의를 제공해줘서 잘 쓰곤 있지만(예를들어 키노트), WLW는 정말 그리움.

아무리 AJAX가 쓸만하다고 해도 JavaScript자체가 모든 브라우져에서 동등하게 구현된게 아니고[2] 같은 기능에 필요한 computation power차이도 좀 무섭다.

비슷한 의미로 Adobe Air도 별로 관심이 안가…

자전거 

햇수로 따지면 10년 정도만에 자전거를 다시 산건데, 의외로 적응은 빨리 되는구나. 오늘 정오 앞뒤로해서 한 2시간쯤 집 주변을 돌아다녀봤는데, 평지라 그런지 확실히 타긴 편하다.[3]

메모리 할당자

GPG 포럼에 할당자를 왜 쓰냐는 식의 글이 올라왔었다. (몇일 전이고 링크 못찾겠음) 

할당자가 어려운 개념도 아니고[4] , 적용했을 때의 꽤나 큰 성능 차이 — 특히나 메모리 할당이 잦은 멀티스레드 코드면 더더욱 — 를 보이게 된다.

근데 할당자를 직접 짜야만하는 것도 아니고 Hoard, RED 같이 링커 레벨에서 malloc, free, new, delete[5] 를 직접 덮어써서 구현해주는데[6] 속도는 꽤나 큰 향상이 있다. 작년 중순에 테스트했던 서버에서 5천 접속 기준으로 CPU 사용량이 40%정도 내려가더라…

  1. 그리고 OS + Office로 매출의 70%를 올리고 있지만 []
  2. 예를 들어 사파리에선 레몬펜이 실행안됨 []
  3. 낙성대 살 때를 생각하면… []
  4. 물론 적당한 경험없이 바로 제대로 짜는건 쉽지 않다. 하지만 그건 non-trivial한 모든 프로그램이 그러할듯. Binary search나 quick-sort도 바로 제대로 짜는걸 구경하긴 쉽지 않다(내 경우엔 그냥 구현하나를 외워서 쓴다) []
  5. new, delete은 내장해서 제공하는 것들 []
  6. 즉 프로그래머가 손댈게 거의 없음 []

Windows Live Writer Manifest 파일에 대한 첨언

최근 포스팅에 M모씨 질문이 좀 많이 달려서 보충 설명용 땜빵(…) 포스팅.

Windows live writer (이하 WLW)를 사용하려면 wlwmanifest.xml (wlwmanifest에 해당하는 파일) 이 존재해야하는가? 없어도 문제될 게 없다.  WLW로 블로그 엔트리를 작성하거나 편집하거나 하려면 특정 XML RPC 인터페이스가 구현된 블로그이기만 하면된다. 현재 지원한다고 나온 것은 beta 2를 기준으로 – beta 3, 2008 버젼에 대한 정보가 아직도 MSDN에 업데이트 안된 것 같다 – MetaWeblog, Movable Type, WordPress 3 종이다.

딱히 저 블로깅 툴이여야하는게 아니라, 해당하는 블로깅 툴의 XML RPC 기능만 구현하면 된다. 한 예로 이글루의 경우에는 MetaWeblog API 를 구현하고 이를 통해서 WLW를 이용하게 된다. 요즘 인기를 얻고있는 tistory.com의 서비스의 경우엔 MetaWeblog / MovableType 2가지가 지원된다(실제로는 MovableType이 선택된다). WordPress의 경우엔 세가지가 다 …(…)

그럼 대체 wlwmanifest를 써서 얻는 이익은 무엇인가? 예전에 포스팅 한 것처럼, WLW이 나올 때 해당 툴에서 지원안하던 기능을 지원하게 된 경우에 굳이 WLW 개발자에 알릴 것 없이 wlwmanifest.xml 만 수정해서 이를 바꿀 수 있다.  이게 가장 기본적인 장점이다. 즉, WLW을 사용하는 일반적인 블로거가 설정하지 않고, 블로깅 툴을 제작하는 사람이 개별 사용자의 WLW 설정을 고칠 수 있다. 

Continue reading “Windows Live Writer Manifest 파일에 대한 첨언”

WordPress의 Windows Live Writer 지원

전번에 Live Writer manifest 파일을 보면서 생각한 점 – 굉장히 느슨하게 결합된 프로젝트 단위끼리의 협업에 관한 내용이었다 – 에 대해서 포스팅했었다. 오늘 포스팅하면서 Live Writer의 메뉴가 미묘하게 달라보여서 뚫어져라 쳐다보니 내 블로그에 올려두었던 wlwmanifest 파일†과 다른 내용이 Live Writer에 표시되어 있었다. (다 한글로 고쳐놨는데 다시 영문이 되어있다 Orz)

그래서 http://trac.wordpress.org 에 가서 timeline을 뒤져보니 지난 10월 9일에 wlwmanifest.xml 파일과 그 관련된 수정사항이 반영되었다.

  • 우선 wp-includes/wlwmanifest.xml 추가
  • 실제로 출력되는 웹 페이지의 메타 데이터 부분에 – 그러니까 HTML head 부분에 link rel=”wlwmanifest” type=”application/wlwmanifest+xml” href=”http://설치경로/wp-includes/wlwmanifest.xml 하는 식의 데이터를 출력하는 코드가 추가되었다.
    
    
  • 덤으로, 워드프레스에서 사용하는 디렉토리 구조에 맞게 이미지 파일 경로가 수정되었다 – 그러니까 제안되었던 파일들이 위치에서 약간 옮겨졌다.

제안과 그에 대한 평가, 그리고 결정된 사항이 소스트리에 금방 반영된다는 점에서 오픈소스 프로젝트인 WordPress가 빛나는게 아닌가 하는 생각을 잠시 해본다 :) 반면에, 이글루나 티스토리는 아직 이에 해당하는 지원이 이루어지고 있지 않다. 아마도 오프라인 블로깅 툴 사용자 수를 너무 과소평가하거나 큰 의미가 없다고 생각하는게 아닐까 -_-;; 개발자 입장에선 큰 일거리가 아니지만 사용자 입장에선 지원되면 참 좋은 기능인데 말이지 :(

*

† wlwmanifest 파일은 Windows Live Writer Manifest로, 블로깅 툴에서 제공하게 되는 XML 파일이다. 여기에 들어있는 정보를 토대로 Live Writer에서 어떤 기능을 쓸 수 있고, 특정 기능을 쓰려면 어떤 URI를 가보면 된다던가하는 것을 알려주게 된다.

Live Writer는 블로깅 툴 연결시 해당 주소 루트 혹은 인덱스 페이지 메타 데이터를 보고 wlwmanifest.xml 을 찾는다(…)