a:15:{s:13:"activePlugins";a:7:{i:0;s:13:"DateConverter";i:1;s:3:"EAS";i:2;s:17:"EmoticonOnComment";i:3;s:9:"FM_Modern";i:4;s:7:"FM_TTML";i:5;s:9:"GoogleMap";i:6;s:22:"JP_TC_PluginForTwitter";}s:13:"eventMappings";a:42:{s:15:"ViewArchiveDate";a:1:{i:0;a:3:{s:6:"plugin";s:13:"DateConverter";s:8:"listener";s:17:"convertDateLangAD";s:5:"scope";s:4:"blog";}}s:16:"ViewCalendarHead";a:1:{i:0;a:3:{s:6:"plugin";s:13:"DateConverter";s:8:"listener";s:17:"convertDateLangCH";s:5:"scope";s:4:"blog";}}s:15:"ViewCommentDate";a:1:{i:0;a:3:{s:6:"plugin";s:13:"DateConverter";s:8:"listener";s:17:"convertDateLangCD";s:5:"scope";s:4:"blog";}}s:19:"ViewCommentListDate";a:1:{i:0;a:3:{s:6:"plugin";s:13:"DateConverter";s:8:"listener";s:18:"convertDateLangCLD";s:5:"scope";s:4:"blog";}}s:20:"ViewGuestCommentDate";a:1:{i:0;a:3:{s:6:"plugin";s:13:"DateConverter";s:8:"listener";s:18:"convertDateLangGCD";s:5:"scope";s:4:"blog";}}s:12:"ViewListDate";a:1:{i:0;a:3:{s:6:"plugin";s:13:"DateConverter";s:8:"listener";s:17:"convertDateLangLD";s:5:"scope";s:4:"blog";}}s:14:"ViewNoticeDate";a:1:{i:0;a:3:{s:6:"plugin";s:13:"DateConverter";s:8:"listener";s:17:"convertDateLangND";s:5:"scope";s:4:"blog";}}s:12:"ViewPostDate";a:1:{i:0;a:3:{s:6:"plugin";s:13:"DateConverter";s:8:"listener";s:17:"convertDateLangPD";s:5:"scope";s:4:"blog";}}s:21:"ViewRecentCommentDate";a:1:{i:0;a:3:{s:6:"plugin";s:13:"DateConverter";s:8:"listener";s:18:"convertDateLangRCD";s:5:"scope";s:4:"blog";}}s:23:"ViewRecentTrackbackDate";a:1:{i:0;a:3:{s:6:"plugin";s:13:"DateConverter";s:8:"listener";s:18:"convertDateLangRTD";s:5:"scope";s:4:"blog";}}s:17:"ViewTrackbackDate";a:1:{i:0;a:3:{s:6:"plugin";s:13:"DateConverter";s:8:"listener";s:17:"convertDateLangTD";s:5:"scope";s:4:"blog";}}s:15:"AddingTrackback";a:1:{i:0;a:3:{s:6:"plugin";s:3:"EAS";s:8:"listener";s:19:"EAS_AddingTrackback";s:5:"scope";s:4:"blog";}}s:13:"AddingComment";a:1:{i:0;a:3:{s:6:"plugin";s:3:"EAS";s:8:"listener";s:17:"EAS_AddingComment";s:5:"scope";s:4:"blog";}}s:18:"ViewCommentContent";a:1:{i:0;a:3:{s:6:"plugin";s:17:"EmoticonOnComment";s:8:"listener";s:22:"EmoticonOnComment_main";s:5:"scope";s:4:"blog";}}s:23:"ViewGuestCommentContent";a:1:{i:0;a:3:{s:6:"plugin";s:17:"EmoticonOnComment";s:8:"listener";s:22:"EmoticonOnComment_main";s:5:"scope";s:4:"blog";}}s:15:"ShowAdminHeader";a:3:{i:0;a:3:{s:6:"plugin";s:9:"FM_Modern";s:8:"listener";s:21:"FM_Modern_adminheader";s:5:"scope";s:4:"blog";}i:1;a:3:{s:6:"plugin";s:9:"GoogleMap";s:8:"listener";s:21:"GoogleMap_AdminHeader";s:5:"scope";s:4:"blog";}i:2;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:18:"getJQueryCheckLoad";s:5:"scope";s:4:"blog";}}s:25:"/plugin/GMapCustomInsert/";a:1:{i:0;a:3:{s:6:"plugin";s:9:"GoogleMap";s:8:"listener";s:21:"GoogleMapUI_InsertMap";s:5:"scope";s:5:"owner";}}s:18:"/plugin/GMapCache/";a:1:{i:0;a:3:{s:6:"plugin";s:9:"GoogleMap";s:8:"listener";s:15:"GoogleMap_Cache";s:5:"scope";s:4:"blog";}}s:15:"ViewPostContent";a:1:{i:0;a:3:{s:6:"plugin";s:9:"GoogleMap";s:8:"listener";s:14:"GoogleMap_View";s:5:"scope";s:4:"blog";}}s:17:"ViewNoticeContent";a:1:{i:0;a:3:{s:6:"plugin";s:9:"GoogleMap";s:8:"listener";s:14:"GoogleMap_View";s:5:"scope";s:4:"blog";}}s:20:"AddPostEditorToolbox";a:1:{i:0;a:3:{s:6:"plugin";s:9:"GoogleMap";s:8:"listener";s:20:"GoogleMap_AddToolbox";s:5:"scope";s:4:"blog";}}s:15:"ShowAdminFooter";a:1:{i:0;a:3:{s:6:"plugin";s:9:"GoogleMap";s:8:"listener";s:21:"GoogleMap_AdminFooter";s:5:"scope";s:4:"blog";}}s:25:"/plugin/shortenURLCreate/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:24:"getBitlyShortenURLCreate";s:5:"scope";s:4:"blog";}}s:26:"/plugin/twitterPostUpdate/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:20:"getTwitterPostUpdate";s:5:"scope";s:4:"blog";}}s:29:"/plugin/twitterDestroyStatus/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:23:"getTwitterDestroyStatus";s:5:"scope";s:4:"blog";}}s:31:"/plugin/twitterUpateMorePaging/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:25:"getTwitterUpateMorePaging";s:5:"scope";s:4:"blog";}}s:31:"/plugin/twitterCreateFavorites/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:18:"getCreateFavorites";s:5:"scope";s:4:"blog";}}s:32:"/plugin/twitterDestroyFavorites/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:19:"getDestroyFavorites";s:5:"scope";s:4:"blog";}}s:30:"/plugin/twitterRecipientsList/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:24:"getTwitterRecipientsList";s:5:"scope";s:4:"blog";}}s:26:"/plugin/twitterNewMessage/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:20:"getTwitterNewMessage";s:5:"scope";s:4:"blog";}}s:30:"/plugin/twitterDestroyMessage/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:24:"getTwitterDestroyMessage";s:5:"scope";s:4:"blog";}}s:32:"/plugin/twitterCreateFriendship/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:26:"getTwitterCreateFriendship";s:5:"scope";s:4:"blog";}}s:33:"/plugin/twitterDestroyFriendship/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:27:"getTwitterDestroyFriendship";s:5:"scope";s:4:"blog";}}s:38:"/plugin/twitterSavedSearchesOpenClose/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:25:"getSavedSearchesOpenClose";s:5:"scope";s:4:"blog";}}s:35:"/plugin/twitterCreateSavedSearches/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:22:"getCreateSavedSearches";s:5:"scope";s:4:"blog";}}s:36:"/plugin/twitterDestroySavedSearches/";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:23:"getDestroySavedSearches";s:5:"scope";s:4:"blog";}}s:7:"AddPost";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:27:"getUpdatingNewPostToTwitter";s:5:"scope";s:4:"blog";}}s:7:"AddLine";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:27:"getUpdatingNewLineToTwitter";s:5:"scope";s:4:"blog";}}s:16:"AddPostByBlogAPI";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:27:"getUpdatingNewPostToTwitter";s:5:"scope";s:4:"blog";}}s:19:"CreatePostSyndicate";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:31:"getUpdatingNewPostToTwitterSynd";s:5:"scope";s:4:"blog";}}s:19:"ModifyPostSyndicate";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:31:"getUpdatingNewPostToTwitterSynd";s:5:"scope";s:4:"blog";}}s:7:"Cron10m";a:1:{i:0;a:3:{s:6:"plugin";s:22:"JP_TC_PluginForTwitter";s:8:"listener";s:26:"synchronizeTwitterWithLine";s:5:"scope";s:4:"blog";}}}s:11:"tagMappings";a:3:{s:13:"SKIN_head_end";a:1:{i:0;a:2:{s:6:"plugin";s:9:"GoogleMap";s:7:"handler";s:16:"GoogleMap_Header";}}s:13:"SKIN_body_end";a:1:{i:0;a:2:{s:6:"plugin";s:9:"GoogleMap";s:7:"handler";s:16:"GoogleMap_Footer";}}s:20:"SKIN_local_rep_start";a:1:{i:0;a:2:{s:6:"plugin";s:9:"GoogleMap";s:7:"handler";s:25:"GoogleMap_LocationLogView";}}}s:15:"sidebarMappings";a:0:{}s:17:"coverpageMappings";a:0:{}s:14:"centerMappings";a:0:{}s:15:"storageMappings";N;s:18:"storageKeymappings";N;s:17:"adminMenuMappings";a:0:{}s:20:"adminHandlerMappings";a:0:{}s:14:"configMappings";a:4:{s:13:"DateConverter";a:1:{s:6:"config";s:2:"ok";}s:9:"FM_Modern";a:2:{s:6:"config";s:2:"ok";s:14:"dataValHandler";s:22:"FM_Modern_handleconfig";}s:9:"GoogleMap";a:2:{s:6:"config";s:2:"ok";s:14:"dataValHandler";s:23:"GoogleMap_ConfigHandler";}s:22:"JP_TC_PluginForTwitter";a:2:{s:6:"config";s:2:"ok";s:14:"dataValHandler";s:17:"getTwitterDataSet";}}s:14:"editorMappings";a:1:{s:5:"plain";a:1:{s:4:"name";s:17:"No default editor";}}s:17:"formatterMappings";a:2:{s:4:"html";a:2:{s:4:"name";s:4:"HTML";s:7:"editors";a:1:{s:5:"plain";s:0:"";}}s:4:"ttml";a:6:{s:2:"id";s:4:"ttml";s:4:"name";s:4:"TTML";s:6:"plugin";s:7:"FM_TTML";s:7:"editors";a:1:{s:6:"modern";s:0:"";}s:10:"formatfunc";s:14:"FM_TTML_format";s:11:"summaryfunc";s:15:"FM_TTML_summary";}}s:11:"editorCount";i:0;s:14:"formatterCount";i:1;}

Lighttpd

April 22 2009 03:52 ChangeLog
Lighttpd라는 웹서버가 Apache보다도 월등히 빠르다는 소리를 듣고 잽싸게 깔아보았다. 내친김에 Apache도 지워버리고 Lighttpd하고 PHP하고 묶어서 돌렸는데.......결과는........첫페이지만 뜨고 전부 404 Page not found.......

아!! rewrite!! 해서 찾아보니 Lighttpd도 rewrite mod가 있긴하다. 그런데 Apache와 설정방법이 다른데다. 사용자 디렉토리마다 둘 수 있는 .htaccess도 쓸수가 없어 Lighttpd의 설정파일에 직접 rewrite rule을 기술해줘야했다. 홈페이지용으로 만들어놓은 rule은 간단해서 금새 옮겨서 적용했는데.......
문제는 Textcube.

이래저래 해본답시고 수정하고 변환해서 겨우 돌아가게 갖춰놨지만 아무리해도 로그인이 안되서...rewrite mod가 없는 환경에서도 쓸 수 있도록 만든것 같긴 한데 비정상적이다 여러모로..
그냥 로그인할때만 Apache쓸까했지만 웹서버를 2개를 돌린다는게......tomcat따로 돌아가는 것도 있는데............결국 다시 Apache로 귀환

제로보드는 이미 Lighttpd용 스크립트를 제공하는데다 배포사이트도 Lighttpd로 운영되는데 Textcube는 겨우 일주일 전에야 Issue로 등록되었다. 아쉬운 부분이다. 제로보드쪽에선 블로그모듈을 만들고 있다고 한다.... 이거 까딱하다간 다시 넘어가는 일이 생길지도 모르겠다. 그만큼 Lighttpd가 매력적이였다.
April 22 2009 03:52 April 22 2009 03:52

서버이전 및 캐시구현

April 01 2009 03:40 ChangeLog
연습삼아서 캐시를 구현해보았다. 이번에 직접 서버를 만들고나니 SSD가 무척 지르고 싶어졌는데 역시 총알이 없어서 좌절하고만 있었다. 그러던중 문득 램디스크가 떠올라 램 용량을 조금 떼어다가 디스크로 만들었다. 웹페이지 전체를 버퍼에 쌓았다가 압축형태로 디스크에 넣게하고 캐시가있을때는 그 압축파일을 그대로 읽어다가 전송토록했다. 압축해제은 브라우저가 해줌ㅋ

일단은 텍스트큐브를 제외한 페이지에 적용이 되어있다. 심플한 html 같이 보이지만 자동 페이지생성이라던가 문자열 치환 등등 여러가지(?) 연산결과로 만들어진다. 결과적으로 용량면에서 50%, 페이지 생성속도에서 원래의 10배이상을 달성했다. 좀더 다듬어서 텍스트큐브에도 달아보고는 싶은데.....사실 느린이유중 가장 큰 이유는 자바스크립트와 css가 아닌가 싶다. ㅎ

자세한 캐시구현내용은 조만간 포스팅 하겠음~~
April 01 2009 03:40 April 01 2009 03:40

텍스트큐브 1.7.7 업데이트

March 07 2009 23:30 ChangeLog
텍스트큐브로 변경하고 처음으로 판올림을 했습니다. 1.7.6에서 1.7.7로.
압축파일을 받아서 그대로 덮어 쓰는걸로 충분하였습니다.
굉장히 간단하긴 했지만 이정도로 업데이트가 될 정도라면 관리자 페이지에 자동 업데이트 기능도 만들수 있지 않나 싶은데..... 이미 플러그인이 있을지도? 어쨌든 업그레이드는 성공적인 것같고 아직까진 어떤 문제도 찾지 못했습니다. 아- 업그레이드 직후 들어가보니 점검을 하던데 이건 정상적인거겠죠?

사용자 삽입 이미지


지금까지 써온 소감은 XE보단 약간 가벼운 느낌이고 xhtml도 제대로 지키고 있는것 같은데 에디터가 문제다. 에디터로 작성한 문서는 xhtml 표준을 지켜주지 못한다. 이는 에디터라기 보다는 브라우저 자체의 문제인듯 싶다. IE, Firefox, Chrome에서 쓴 글의 태그모양이 각각 다른걸 보아 dom node를 html태그로 변환할 때, 이를 잘 못맞춰 주는것 같다. 특히 IE는 태그가 모두 대문자로 변환되어 모든 태그에서 validator가 시비를 건다.
완성된 문서를 한번 걸러서 xhtml표준으로 보정해주는 필터같은것으로 해결 할 수 있지 않을까?(아마 이미 있을지도....)
March 07 2009 23:30 March 07 2009 23:30
─ tag 

굿바이 제로보드

Febuary 25 2009 02:09 ChangeLog
홈페이지에서 제로보드를 내려버리고 이젠 텍스트큐브로 간다~ 제로보도드 굉장히 좋은 프로그램이지만 블로그로 사용하기엔 약간 부족한 감이 없지 않다. 스킨을 직접 처음부터 만들어 올리면 더 좋은 결과가 나왔을테지만 시간이 없어 그러지 못하고 다른분들이 만들어 올려놓은 스킨을 받아 썼는데, 원하던 모습이나 동작을 보여주지 못할 때가 많았고 남이 짜 놓은 코드를 보는 것도 만만찮은 일이다. 이참에 블로그 툴을 써보자 하고 선택한게 텍스트큐브다. 쉽게 설치하고 기본 스킨을 변경해서 홈페이지에 끼워넣었다. 스킨파일이 한개로 이루어져 있어 수정하는데 있어 나름 편했다.

한가지 문제가 생겼다. 애초에 홈페이지 전체가 제로보드나 텍스트큐브만으로 만들어졌다면 발생하지 않을 문제겠지만, 이 홈페이지에는 내 소개라던지 첫화면등 다른 일반 페이지들이 있고 그들중 몇몇은 로그인한 유저만 볼 수 있어야 한다. 제로보드에선 외부페이지 기능이 있어 간단하게 제로보드의 기능을 내가만든 페이지에도 이어받아 쓸 수있었다. 하지만 텍스트큐브엔 블로그, 방명록 외에는 다른 페이지를 생성할 방법이 없다. 편법으로 공지사항 글을 쓰고 그 글을 일반페이지처럼 쓰면 된다는데 그렇게 만든 페이지에서 php코드를 못돌릴테니 솔루션이 되지 못한다. 결국은 세션 아이디를 직접 읽어 회원 테이블에서 불러오도록 해서 일반페이지에서의 로그인 체크를 문제를 해결했다. (파일을 잘 정리해서 배포해도 괜찮을듯?)

결론은
제로보드 XE : 사이트를 전체를 만들때 유용하다.
텍스트큐브 : 블로그를 만들때 유용하다.

그나저나 텍스트큐브 1.8부터는 PHP5만 지원하겠다는데..........호스팅 옮겨야 하나? ㄷㄷㄷ
Febuary 25 2009 02:09 Febuary 25 2009 02:09
─ tag 
menu openmenu close