HTTP/1.0 500 Internal Server Error Date: Thu, 10 May 2007 01:48:09 GMT Content-Type: text/html Server: Apache/2.0.59 (FreeBSD) mod_ssl/2.0.59 OpenSSL/0.9.7e-p1 DAV/2 省略 MS-Author-Via: DAV Via: 1.1 mnc08 (NetCache NetApp/6.0.4P1D4), Version 1.1-Build_SOL_1074 省略 <h1>500 Internal Server Error</h1> <pre> Permission denied - tdiary.conf (Errno::EACCES) /usr/local/tdiary/tdiary.rb:497:in `initialize' /usr/local/tdiary/tdiary.rb:497:in `open' /usr/local/tdiary/tdiary.rb:497:in `load' /usr/local/tdiary/tdiary.rb:425:in `initialize' /home/shirai/public_html/diary/update.rb:21:in `new' /home/shirai/public_html/diary/update.rb:21 /usr/local/lib/ruby/site_ruby/1.8/apache/ruby-run.rb:53:in `load' /usr/local/lib/ruby/site_ruby/1.8/apache/ruby-run.rb:53:in `handler' /usr/local/lib/ruby/site_ruby/1.8/apache/ruby-run.rb:53 </pre> <div>スペースたくさん</div> Process *request to ko.meadowy.net* connection broken by remote peer
% ls -la /home/shirai/public_html/diary/tdiary.conf -rw-r---- shirai shirai ...... tdiary.confだったので、
% chmod 644 /home/shirai/public_html/diary/tdiary.confで直るかと思ったら、やっぱり直らなかった。まかせた。
(setq tdiary-update-rb "update.cgi")で、OK。サンキュー。
2ch を navi2ch とかで読んでいるとき、AA をちゃんと見たいときは 'v' を押して、aadisplay や popup を使うが、個人的には
のであまり好きではない。当然、(setq navi2ch-mona-enable t) で全部モナーフォントで表示しても良いのだけど、
のだ。と、結構以前からず〜〜〜と思っていた。
;;; Emacs だけで動く AA Viewer
;;
;; Meadow3 と Emacs 22 ぐらいで動く。XEmacs もとりあえず対応したつもり。
;;
;; navi2ch 以外でも region を指定して M-x my-aaview でも OK
;;                  region がなかったら buffer 全部表示
;; そうすると、今のフレームより一回り小さいフレームで AA 表示。
;; そのフレームは、'q', 'スペース', 'mouse-1', 'mouse-2' で閉じる。
  
;; window-system => t のときだけね
(when window-system
  (setq navi2ch-article-view-aa-function 'my-aaview))
  
(defvar my-aaview-font-path "c:/usr/fonts/mona-font"
  "*mona font path (for Meadow).")
  
(defvar my-aaview-font-width 8
  "*mona font width")
  
(defvar my-aaview-font-type "medium" ;; または "bold" も OK
  "*mona font type.")
  
(defvar my-aaview-mode-hook nil
  "*Hook of my-aaview-mode.")
  
(defvar my-aaview-fontset-name "aaview"
  "*Fontset name for my-aaview.")
  
(defvar my-aaview-font-height (* my-aaview-font-width 2)
  "*mona font height")
  
(defun my-aaview-create-face ()
  (unless (or (and (fboundp 'find-face)
		   (find-face 'my-aaview-face))
	      (and (fboundp 'facep)
		   (facep 'my-aaview-face)))
    (make-face 'my-aaview-face)
    (cond
     ((featurep 'meadow)
      (unless (member my-aaview-fontset-name (w32-font-list))
	(let ((dir my-aaview-font-path)
	      (w my-aaview-font-width)
	      (h my-aaview-font-height)
	      (b (if (string= my-aaview-font-type "medium")
		     "" "B")))
	  (w32-add-font
	   my-aaview-fontset-name
	   `((spec
	      ((:char-spec ascii :height any :weight any :slant any)
	       strict
	       (bdf-font ,(expand-file-name
			   (format "mona%dx%da%s.bdf" w h b)
			   dir)))
	      ((:char-spec katakana-jisx0201 :height any :weight any :slant any)
	       strict
	       (bdf-font ,(expand-file-name
			   (format "mona%dx%dr%s.bdf" w h b)
			   dir))
	       ((encoding . 1-byte-set-msb)))
	      ((:char-spec latin-jisx0201 :height any :weight any :slant any)
	       strict
	       (bdf-font ,(expand-file-name
			   (format "mona%dx%dr%s.bdf" w h b)
			   dir)))
	      ((:char-spec japanese-jisx0208 :height any :weight any :slant any)
	       strict
	       (bdf-font ,(expand-file-name
			   (format "monak%d%s.bdf" (* w 2) b)
			   dir))))))))
      (set-face-font 'my-aaview-face my-aaview-fontset-name))
     ((featurep 'xemacs)
      (set-face-font 'my-aaview-face
		     (format "-mona-gothic-%s-r-*--%d-*-*-*-p-*-*-*"
			     my-aaview-font-type
			     my-aaview-font-height)))
     (t
      (unless (query-fontset (format "-*-%s" my-aaview-fontset-name))
	(let* ((prefix (format "-mona-gothic-%s-r-*--%d-*-*-*-p-*-"
			       my-aaview-font-type
			       my-aaview-font-height))
	       (fontset (concat prefix "fontset-" my-aaview-fontset-name))
	       (font (concat prefix "%s")))
	  (new-fontset fontset
		       (list (cons 'ascii
				   (format font "iso8859-1"))
			     (cons 'latin-iso8859-1
				   (format font "iso8859-1"))
			     (cons 'katakana-jisx0201
				   (format font "jisx0201.1976-0"))
			     (cons 'latin-jisx0201
				   (format font "jisx0201.1976-0"))
			     (cons 'japanese-jisx0208
				   (format font "jisx0208.1990-0"))))))
      (set-face-font 'my-aaview-face
		     (query-fontset (format "-*-%s" my-aaview-fontset-name)))))))
  
(if (fboundp 'frame-parameter)
    (defalias 'my-aaview-fpram 'frame-parameter)
  (defun my-aaview-fpram (frame param)
    (cdr (assq param (frame-parameters frame)))))
  
(defun my-aaview (&optional str)
  (interactive)
  (setq str (or str
		(if (or (and (fboundp 'region-active-p)
			     (region-active-p))
			(and (boundp 'mark-active)
			     transient-mark-mode mark-active))
		    (buffer-substring (region-beginning) (region-end))
		  (buffer-substring (point-min) (point-max)))))
  (my-aaview-create-face)
  (let* ((header (condition-case nil
		     (navi2ch-article-default-header-format-function
		      (navi2ch-article-get-current-number)
		      (navi2ch-article-get-current-name)
		      (navi2ch-article-get-current-mail)
		      (navi2ch-article-get-current-date))
		   (error nil)))
	 (oframe (selected-frame))
	 (top (my-aaview-fpram oframe 'top))
	 (left (my-aaview-fpram oframe 'left))
	 (fore (my-aaview-fpram oframe 'foreground-color))
	 (back (my-aaview-fpram oframe 'background-color))
	 (height (- (my-aaview-fpram oframe 'height) 2))
	 (width (- (my-aaview-fpram oframe 'width) 3))
	 (frame (or (catch 'detect
		      (let ((frames (frame-list)))
			(while frames
			  (when (my-aaview-fpram (car frames) 'my-aaview)
			    (throw 'detect (car frames)))
			  (setq frames (cdr frames)))))
		    (make-frame `((my-aaview . t)
				  (name . "my-aaview")
				  (height . ,height)
				  (width . ,width)
				  (line-spacing . 0)
				  (minibuffer             . nil)
				  (vertical-scroll-bars   . nil)
				  (horizontal-scroll-bars . nil)
				  (menu-bar-lines         . nil)
				  (visibility             . nil)))))
	 buf)
    (if (numberp top)
	(setq top (+ top 16))
      (setq top 16))
    (if (numberp left)
	(setq left (+ left 16))
      (setq left 16))
    (modify-frame-parameters frame
			     `((foreground-color . ,fore)
			       (background-color . ,back)
			       (top   . ,top)
			       (left  . ,left)))
    (when (eq (frame-visible-p frame) 'icon)
      (make-frame-visible))
    (select-frame frame)
    (raise-frame frame)
    (setq buf (get-buffer-create "*my-aaview*"))
    (let ((buffer-read-only nil)
	  (inhibit-read-only t)
	  pos)
      (set-buffer buf)
      (erase-buffer)
      (when header (insert header))
      (setq pos (point))
      (insert str "\n")
      (goto-char pos)
      (put-text-property (point) (point-max) 'face 'my-aaview-face))
    (my-aaview-mode)
    (set-window-buffer (frame-selected-window frame) buf)))
  
(defun my-aaview-close (&optional args)
  (interactive)
  (kill-buffer (current-buffer))
  (delete-frame))
  
(defvar my-aaview-mode-map nil)
(unless my-aaview-mode-map
  (setq my-aaview-mode-map (make-keymap))
  (define-key my-aaview-mode-map [mouse-1] 'my-aaview-close)
  (define-key my-aaview-mode-map [mouse-2] 'my-aaview-close)
  (define-key my-aaview-mode-map " " 'my-aaview-close)
  (define-key my-aaview-mode-map "q" 'my-aaview-close))
  
(defun my-aaview-mode ()
  (interactive)
  (kill-all-local-variables)
  (setq major-mode 'my-aaview-mode)
  (setq mode-name "my-aaview")
  (use-local-map my-aaview-mode-map)
  (setq buffer-read-only t)
  (setq truncate-lines t)
  (cond
   ((boundp 'auto-hscroll-mode)
    (set (make-local-variable 'auto-hscroll-mode) t))
   ((boundp 'automatic-hscrolling)
    (set (make-local-variable 'automatic-hscrolling) t))
   ((fboundp 'auto-show-mode)
    (auto-show-mode 1)))
  (buffer-disable-undo (current-buffer))
  (setq mode-line-format "Type `q' to close.")
  (run-hooks 'my-aaview-mode-hook))
;;;;
navi2ch 以外でも動くので、emacs-w3m なんかで『あ、これ AA で見たい』とかいうときは便利かもしれない。
あーえーと。今回の変更でSuEXECも使うようにしたのでshirai:shiraiでおkです。<br>書いてなかったですが更新用のURLが変わってupdate.rbからupdate.cgiになったので、そこだけ直せば動くかと。<br>update.rbはmod_ruby用なのでそのうち消します。<br>更新用は、そんなに頻繁に使わないからFastCGIにしなくていいかなとupdate.cgiにしちゃいました。
tDiaryスタイルだとプラグイン呼び出しのステートメントがWikiスタイルと違ってたね。こう書くといけると思うんですがどうでしょう。<br><%=code(<<'EOS','elisp')<br>(lambda (x) (+ x 1))<br>...ここにプログラムをはさむ...<br>EOS<br>%><br>それにしてもmy-aaviewすばらしす。eaaviewとかにしてリリースしてはどうか。
'-'いれたほうが堅いかな。<br><br><%=code(<<-'EOS','elisp') <br>(lambda (x) (+ x 1)) <br>EOS <br>%>
サンキュー。LangScan 使って書き換えてみました。emacs-w3m だと色が出なくて寂しいけどね ;-p<br><br>eaaview かぁ、まとめるのがめんどくさいけど、やってみますか。