#action Blog 블로그 더하기 ##Blog {{{#!blog hyacinth 2014-02-20T05:32:23 Moniwiki fake crtime 알려져 있다시피 대부분의 *NIX 환경(EXT4 이전 파일 시스템을 사용하는)에서는 파일 생성 시간이 지원되지 않는다. (그리고 많은 사람들이 이를 알고 놀란다. 그리고 여기서 놀란 사람은 ctime이 생성시간이 아니라는 것에 한 번 더 놀란다. 이건 언젠가 이야기하고 싶은 주제인데 다음으로 미룬다.) 이게 모니위키와 관련이 있는 이유는 모니위키는 페이지 관리를 DB가 아닌 파일 시스템을 사용하기 때문인데, 때문에 생성시간은 filemtime으로 쉽게 구할 수 있지만(페이지 Footer 부분의 `Modified on 2:32 pm, February 20, 2014' 와 같은) 파일 생성 시간은 쉽게 구할 수가 없다! 모니위키에서 페이지(파일) 수정 시간을 구하는 방법은 두 가지가 있는데 하나는 페이지 파일의 mtime을 직접 얻는 방법과 모니위키에서 관리하는 수정 이력(editlog)으로부터 fake mtime을 구하는 방법이다. editlog 형식은 다음처럼 되어 있다. {{{ FrontPage 59.15.101.153 1178892564 59.15.101.153 hyacinth SAVE FrontPage_2f2007_2d05 59.15.101.153 1178893017 59.15.101.153 hyacinth Blog entry "테스트" added SAVE FrontPage_2f2007_2d05 59.15.101.153 1178893030 59.15.101.153 hyacinth SAVE FrontPage 59.15.101.153 1178893517 59.15.101.153 Anonymous SAVE FrontPage 59.15.101.153 1178893526 59.15.101.153 Anonymous SAVE FrontPage 59.15.101.153 1178893539 59.15.101.153 Anonymous SAVE FrontPage 59.15.101.153 1178893556 59.15.101.153 Anonymous SAVE UserPreferences_2f2007_2d05 59.15.101.153 1178894637 59.15.101.153 hyacinth Blog entry "테스트" added SAVE ... ... \}}} 공공 위키위키에서 페이지 생성시간은 그렇게 중요한 정보가 아니다. 하지만 개인 위키에선 Published date를 보여주고 싶을 수 있다. editlog 내용을 보고 이로부터 fake crtime을 구할 수 있다고 생각했다. {{{#!php function crtime() { if (!$this->use_crtime) return; $pagename=$_SERVER["PATH_INFO"]; $pagename=substr($pagename, 1, strlen($pagename)); $pagename=$this->pageToKeyname($pagename); $fp_editlog = fopen($this->editlog_name, 'r'); while(!feof($fp_editlog)){ $buffer=fgets($fp_editlog); if (strlen($buffer)>0 && preg_match("/^$pagename\t(.[^\t]*)\t(.[^\t]*)/",$buffer,$matches)) return $matches[2]; } fclose($fp_editlog); return; } \}}} }}} [[HTML(
)]] http://hyacinth.byus.net/img/flower.jpg [[HTML(
)]] {{{#!blog hyacinth 2014-02-01T20:22:20 좋아하는 노랫말을 적어보자 최근 린진/자이토카인이 내는 앨범은 모두 마음에 든다. 활동도 적지 않다. 큰 행사마다 새 앨범을 내는데 항상 마음에 드는 노래가 있다. I've의 2000년대 초중반을 보는 듯하다. 지금이 전성기다. 예대제든 코미케든 반드시 체크해야 할 서클. ##http://www.youtube.com/v/S2x9KNj5d-s [[HTML()]] 03:10 다정함의 의미를 優しさの意味を 누구보다도 알고 있었어 誰より知っていた 상처입히는 것을 傷つける事を 몇 번이고 몇 번이고 단념하면서 何度も何度も諦めて 나는 여기에 있고, 너도 여기에 있어 僕はここにいて 君もここにいる 하지만 알고 있었어 だけど分かってた 이 소리는 더는 닿지 않는다는 걸 この声は もう届かない事 ''(해질녘 찾았던 첫번째 별 夕暮れ時 探していた 一番星'' ''다가오는 달 끌어 안는 별 너의 곁에) 寄り添う月 引き合う星 君のそばに'' 네가 불렀던 노래를 찾고 있었어 君が奏でてた 歌を探してた 잊어버리지 않도록 忘れないように 몇 번이고 몇 번이고 손을 휘두르며 何度も何度も手を振って 나는 여기에 있고, 너도 여기에 있어 僕はここにいて 君もここにいる 하지만 알고 있었어 だけど知っていた 이 순간은 두번 다시 오지 않으리란 걸 この瞬間 もう二度とない事 }}} [[HTML(
)]] http://hyacinth.byus.net/img/flower.jpg [[HTML(
)]]