#action Blog 블로그 더하기
##Blog
{{{#!blog hyacinth 2014-02-20T05:32:23 Moniwiki fake crtime

알려졌다시피 대부분의 *nix 환경(ext4 이전 파일 시스템을 사용하는)에서는 파일 생성 시간을 제공하지 않는다. (그리고 많은 사람이 이를 알고 놀란다. 그리고 여기서 놀란 사람은 ctime이 생성시간(creation time)이 아니라는 것에 한 번 더 놀라기도 한다─웃기게도 ctime은 원래 creation time을 뜻했다[[footnote(http://en.wikipedia.org/wiki/Stat_(system_call)#ctime)]]. 이건 언젠가 이야기하고 싶은 주제인데 다음으로 미룬다.)

이게 모니위키와 관련이 있는 이유는 모니위키는 페이지 관리를 DB가 아닌 파일 시스템을 사용하기 때문인데, 그래서 페이지 수정 시간은 {{{ filemtime() \}}} 으로 쉽게 구할 수 있지만(페이지 Footer 부분의 `Modified on 2:32 pm, February 20, 2014' 와 같은) 페이지 생성 시간은 쉽게 구할 수가 없다! 모니위키에서 페이지(파일) 수정 시간을 구하는 방법은 두 가지가 있는데 하나는 페이지 파일의 mtime을 직접 얻는 방법과 모니위키에서 관리하는 수정 이력(editlog)으로부터 fake mtime을 구하는 방법이다. (이는 config.php의 $use_fakemtime=1 또는 0으로 선택된다.) 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
...
...
\}}}

공공 위키위키에서 페이지 생성시간은 그렇게 중요한 정보가 아니다. 하지만 개인 위키에선 Published date를 보여주고 싶을 수 있다. editlog 내용을 보고 이로부터 fake crtime을 구할 수 있다고 생각했다. editlog를 처음부터 읽어 그 페이지의 가장 처음 나온 기록이 바로 생성 시간일 것이다. 여기까지 생각이 들었을 때 바로 위키 엔진에 아래를 추가했다.

{{{#!php
function crtime($pagename) {
    if (!$this->use_crtime)
      return;

    $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[1];
    }
    fclose($fp_editlog);

    return;
  }
\}}}

이제 페이지 아래 Published on 5:22 am, February 2, 2014. 를 표시할 수 있게 되었다. :)
}}}

[[HTML(<center>)]]
http://hyacinth.byus.net/img/flower.jpg
[[HTML(</center>)]]

{{{#!blog hyacinth 2014-02-01T20:22:20 좋아하는 노랫말을 적어보자

최근 린진/자이토카인이 내는 앨범은 모두 마음에 든다. 활동도 적지 않다. 큰 행사마다 새 앨범을 내는데 항상 마음에 드는 노래가 있다. 

작곡가도 보컬도 지금이 전성기다(I've의 2000년대 초중반을 보는 듯). 예대제든 코미케든 반드시 체크해야 할 서클.

~~~~

##http://www.youtube.com/v/S2x9KNj5d-s
[[HTML(<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/S2x9KNj5d-s&hl=ko_KR&fs=1&start=190"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/S2x9KNj5d-s&hl=ko_KR&fs=1&start=190" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>)]]

03:10
다정함의 의미를 優しさの意味を
누구보다도 알고 있었어 誰より知っていた
상처입히는 것을 傷つける事を
몇 번이고 몇 번이고 단념하면서 何度も何度も諦めて

나는 여기에 있고, 너도 여기에 있어 僕はここにいて 君もここにいる
하지만 알고 있었어 だけど分かってた
이 소리는 더는 닿지 않는다는 걸 この声は もう届かない事

''(해질녘 찾았던 첫번째 별 夕暮れ時 探していた 一番星'' 
''다가오는 달 끌어 안는 별 너의 곁에) 寄り添う月 引き合う星 君のそばに''

네가 불렀던 노래를 찾고 있었어 君が奏でてた 歌を探してた
잊어버리지 않도록 忘れないように
몇 번이고 몇 번이고 손을 휘두르며 何度も何度も手を振って

나는 여기에 있고, 너도 여기에 있어 僕はここにいて 君もここにいる
하지만 알고 있었어 だけど知っていた
이 순간은 두번 다시 오지 않으리란 걸 この瞬間 もう二度とない事
}}}

[[HTML(<center>)]]
http://hyacinth.byus.net/img/flower.jpg
[[HTML(</center>)]]