トップ «前の日(01-15) 最新 次の日(01-17)» 追記

猫熊は燃えつきた?!日記

最近なんにもやっていませんが、なにかやったらこちらに置くようにしています。
2002|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|
2011|09|
2012|02|


2003-01-16 (Thu) 'T', 'G', '[', ']', '{', '}' のキーは潰さないでね、みゅー

Namazu レディ

大場君が Namazu で検索出来るようにしてくれた。感謝。(といっても検索するほどの内容はない)

今日の Migemo

連文節は SKK のように大文字で切るようになっているけど、ぼくは SKK 使いじゃないので、どうにも SHIFT Key を押すのが苦手だ。そこで、スペースや各種記号でも文節を切るようにすると、"shigoto@tuka reta" で "仕事@疲れた" が検索できた。おぉ、瓢箪から駒だけど便利。 また、一つだけの空白は "[ \t ]*" に(\s は敢えて使わず)置き換えるようにしたら、"hoshi ittetsu" で "星一徹", "星 一徹", "星 一徹" が全部検索できるので便利だ。 改造点はこの二つ。Ruby 全然わからないから、きっと変だと思う。
  generate_regex_str = lambda {|pattern, with_paren|
    if (pattern == ' ')
      "[ \t ]*"
    elsif
      migemo = Migemo.new(static_dict, pattern)
      <>
 
def segment (pattern)
  #  pattern.scan(/[A-Z]?[^A-Z]+|[A-Z]+/)
  pattern.scan(/[^a-zA-Z]+|[A-Z]?[a-z]+|[A-Z]+/)
end
あとは全角アルファベットの ignore case だ。

"[", "]", "{", "}" はなにか?

"}" で今見ているメッセージバッファの複製を作る、"{" でそいつを消す、"[", "]" で上下にスクロールする。Mew は一つのフレームで一つのメッセージバッファしか扱えないので、もとのメッセージを見ながら、あそこのフォルダのあの辺り、とか、あの ML の何番、とか動くのがとってもめんどくさし、記憶力が皆無だからおぼえていらんないの。
(add-hook 'mew-summary-mode-hook
	  (lambda ()
	    (define-key mew-summary-mode-map "}" 'mew-summary-review-copy)
	    (define-key mew-summary-mode-map "{" 'mew-summary-review-copy-kill)
	    (define-key mew-summary-mode-map "]" 'mew-summary-review-copy-next)
	    (define-key mew-summary-mode-map "[" 'mew-summary-review-copy-prev)))
 
(add-hook 'mew-message-mode-hook
	  (lambda ()
	    (define-key mew-message-mode-map "}" 'mew-message-review-copy)
	    (define-key mew-message-mode-map "{" 'mew-message-review-copy-kill)
	    (define-key mew-message-mode-map "]" 'mew-message-review-copy-next)
	    (define-key mew-message-mode-map "[" 'mew-message-review-copy-prev)))
 
(defvar mew-message-dummy-buffer "*MEW MESSAGE REVIEW*")
 
(defun mew-summary-review-copy-kill ()
  (interactive)
  (mew-summary-review-copy 'kill))
 
(defun mew-summary-review-copy (&optional kill)
  (interactive "P")
  (let ((owin (selected-window))
	(mbuf (mew-buffer-message)))
    (if kill
	(mew-message-review-copy 'kill)
      (when (and (get-buffer mbuf) (get-buffer-window mbuf))
	(select-window (get-buffer-window mbuf))
	(mew-message-review-copy)
	(select-window owin)))))
 
(defun mew-summary-review-copy-prev ()
  (interactive)
  (mew-summary-review-copy-next 'reverse))
   
(defun mew-summary-review-copy-next (&optional reverse)
  (interactive "P")
  (let ((owin (selected-window))
	(mbuf (mew-buffer-message)))
    (when (and (get-buffer mbuf) (get-buffer-window mbuf))
      (select-window (get-buffer-window mbuf))
      (mew-message-review-copy-next reverse)
      (select-window owin))))
 
(defun mew-message-review-copy-kill ()
  (interactive)
  (mew-message-review-copy 'kill))
 
(defun mew-message-review-copy (&optional kill)
  (interactive "P")
  (if kill
      (let ((nbuf (get-buffer mew-message-dummy-buffer)))
	(when nbuf
	  (delete-windows-on nbuf)
	  (kill-buffer nbuf)))
    (let ((nbuf (get-buffer-create mew-message-dummy-buffer))
	  (msg (buffer-substring (point-min) (point-max)))
	  (owin (selected-window))
	  (start (window-start))
	  (end (window-end))
	  (w3mp (and (boundp 'mew-use-w3m-minor-mode)
		     (fboundp 'w3m-minor-mode)
		     (get-text-property (point-min) 'w3m)
		     mew-use-w3m-minor-mode))
	  new)
      (if (get-buffer-window nbuf)
	  (select-window (get-buffer-window nbuf))
	(setq new t)
	(split-window-vertically)
	(next-window)
	(pop-to-buffer nbuf))
      (setq rwin (selected-window))
      (setq buffer-read-only t)
      (mew-elet
       (mew-erase-buffer)
       (insert msg)
       (let ((mew-message-mode-map (copy-keymap mew-message-mode-map)))
	 (define-key mew-message-mode-map "q" 'mew-message-review-copy-kill)
	 (mew-message-mode))
       (when w3mp (w3m-minor-mode 1))
       (set-buffer-modified-p nil)
       (when (> (window-height) (/ (frame-height) 3))
	 (shrink-window (- (window-height) (/ (frame-height) 3))))
       (set-window-start (selected-window)
			 (progn
			   (goto-char end)
			   (forward-line (- (+ (window-height) (if new 1 -2))))
			   (point)))
       (mew-buffers-setup mew-message-dummy-buffer))
      (select-window owin))))
 
(defun mew-message-review-copy-prev ()
  (interactive)
  (mew-message-review-copy-next 'reverse))
 
(defun mew-message-review-copy-next (&optional reverse)
  (interactive "P")
  (let ((owin (selected-window))
	(nbuf (get-buffer-create mew-message-dummy-buffer)))
    (when (get-buffer-window nbuf)
      (select-window (get-buffer-window nbuf))
      (if reverse
	  (if (eq (window-start) (point-min))
	      (message "Beginning of buffer")
	    (scroll-up (- 3 (window-height))))
	(if (>= (window-end) (point-max)) ;; '>' for XEmacs
	    (message "End of buffer")
	  (scroll-up (- (window-height) 3))))
      (select-window owin))))

2004-01-16 (Fri) いつまでこんな生活が続くんだろう ;_;

minibuffer を migemo する

今日、[mew-dist: 24395]のパッチを出したあと、ふと思って残業モードに入る前に気分転換で作ってみた。Mew の summary の "mr", "tr" ぐらいでしか使い道が無いような気がするが、minibuffer 拡張シリーズということで。。。
minibuffer でなにかを入力中に "M-C-m" とするとその内容を migemo する。連続して "M-C-m" すると元に戻す。XEmacs だと minibuffer-exit-hook が走った後に history を追加しているために history がぼろぼろになるので、使わない方が良いと思う。見直す気はしないけど、なんだが処理が冗長だね、こりゃ。
(defvar minibuf-expand-migemo-original nil)
(defvar minibuf-expand-migemo-migemo nil)
 
(defun minibuf-expand-migemo ()
  (interactive)
  (when (featurep 'migemo)
    (remove-hook 'minibuffer-exit-hook 'minibuf-expand-migemo-delete-history)
    (let* ((again (eq last-command this-command))
	   (beg (if (fboundp 'field-beginning) (field-beginning) (point-min)))
	   (end (if (fboundp 'field-end) (field-end) (point-max)))
	   (string (buffer-substring-no-properties beg end)))
      (if (and again minibuf-expand-migemo-original)
	  (setq string minibuf-expand-migemo-original
		minibuf-expand-migemo-original nil)
	(setq minibuf-expand-migemo-original string)
	(setq string (migemo-get-pattern string))
	(setq minibuf-expand-migemo-migemo string)
	(add-hook 'minibuffer-exit-hook 'minibuf-expand-migemo-delete-history))
      (delete-region beg end)
      (insert string))))
 
(defun minibuf-expand-migemo-setup ()
  (when (featurep 'migemo)
    (setq minibuf-expand-migemo-original nil)
    (setq minibuf-expand-migemo-migemo nil)
    (remove-hook 'minibuffer-exit-hook 'minibuf-expand-migemo-delete-history)))
  
(defun minibuf-expand-migemo-delete-history ()
  (when (and minibuf-expand-migemo-migemo
	     (string= minibuf-expand-migemo-migemo
		      (car (symbol-value minibuffer-history-variable))))
    (set minibuffer-history-variable
	 (cdr (symbol-value minibuffer-history-variable)))
    (when minibuf-expand-migemo-original
      (set minibuffer-history-variable
	   (cons minibuf-expand-migemo-original
		 (symbol-value minibuffer-history-variable)))))
  (minibuf-expand-migemo-setup))
 
(unless (featurep 'xemacs)
  (add-hook 'minibuffer-setup-hook 'minibuf-expand-migemo-setup)
  
  (mapcar (lambda (map)
	    (define-key map "\M-\C-m" 'minibuf-expand-migemo))
	  (delq nil (list (and (boundp 'minibuffer-local-map)
			       minibuffer-local-map)
			  (and (boundp 'minibuffer-local-ns-map)
			       minibuffer-local-ns-map)
			  (and (boundp 'minibuffer-local-completion-map)
			       minibuffer-local-completion-map)
			  (and (boundp 'minibuffer-local-must-match-map)
			       minibuffer-local-must-match-map)))))

どっかーん

本業のリリースは失敗するし、不用意に書いたメールで叱られるし。。。

業務連絡 ^^;

ここいらへんにある、"goas.no-ip.org" を "ko.meadowy.net" に書き換えていただけるとうれしいです、松下さん。

あら、まぁ

半ば無責任にこんなことを書いたのだけど、ここまでとは。。。うーーむ。

山岡さんも書かれているけど、今の Emacs-21.3.50 より XEmacs-21.4.1x の方が軽くてよい面もあるのだよな。たとえば、Mew の local の scan は 3〜4倍 XEmacs の方が速いとか。

だけど、「アムロ終わってる」「アムロ行けてねー」ってなんのことだろう?「アムロ行きまーーす」ならしっているが。

エースをねらえ

単行本は知り合いが持っていったので全部読んだことがあるけど、アニメは見たことないなぁ。主題歌を思い出そうとすると『苦しくったって〜〜悲しくたって〜〜』と違うスポーツになってしまう。

お蝶夫人もそうだけど、ここを見ての感想は、藤堂さんのイメージが違いすぎること。宗像コーチと緑川蘭子はなかなかよいかも。


2006-01-16 (Mon)

tramp な gpg.el

森島さんからつっこみをいただいた
確かに gpg.el のソースを読むと(実験してもだけど)全然ダメですね。うーーむ、手元では
(defvar gpg-work-directory (expand-file-name "~/.gpg.work")
  "*Work directory of GPG.")
 
(defalias 'gpg-make-temp-file1
  (if (fboundp 'make-temp-file) 'make-temp-file 'make-temp-name))
 
(defun gpg-make-temp-file (file)
  (cond
   ((and (file-exists-p gpg-work-directory)
	 (file-directory-p gpg-work-directory))
    (set-file-modes gpg-work-directory ?\700))
   ((not (file-exists-p gpg-work-directory))
    (make-directory gpg-work-directory)
    (set-file-modes gpg-work-directory ?\700))
   ((and (file-exists-p gpg-work-directory)
	 (file-writable-p gpg-work-directory)
	 (y-or-n-p (format "%s is not directory. Remove it? " gpg-work-directory)))
    (delete-file gpg-work-directory)
    (make-directory gpg-work-directory)
    (set-file-modes gpg-work-directory ?\700))
   (t
    (error (format "%s has something error" gpg-work-directory))))
  (gpg-make-temp-file1 (expand-file-name (file-name-nondirectory file)
					 gpg-work-directory)))
こんなことをやりつつ、他のリモートファイルもケアして、gpg.el の機能や gpg for Dired が tramp 経由でも動くようにしてみたけど、もうちょっといろいろやらないと公開できないなぁ。

西遊記

先週の分を昨日ビデオで見た。いけないことだとは知りながら、ついつい昔の西遊記と比較してしまうのだが、それでもまぁまぁ満足。深津絵里さんを夏目雅子さんと比較してしまうのは可愛そうだから、まぁ、しょうがないが、猪八戒はやっぱり小太りの人がやった方が良いと思うぞ。いまなら、ホンジャマカの石塚あたりかな?あと、白馬がいないといざというときに竜が出てこれないなぁ。

悟空と沙悟浄は良いね。

本日のツッコミ(全4件) [ツッコミを入れる]

なおと [一時ファイルを作るのが切ないので、find-fileしてバッファをgpgに投げつけるようなコードをスクラッチから書こ..]

ぱんだ [stdin/out を使うのですよね。そっちの方がおしゃれだからぼくもやってみます。]

なおと [簡単な試験コード書いて実験したんですけど、ローカルのファイルだとうまくいく。でも、リモートだとgpgに投げるところで..]

ぱんだ [うーむ、最初 default-directory かな?と思ったのですが、違うみたいですね。がんばります。]


書いている人: 白井秀行 (mailto:shirai@meadowy。org)
訪問して下さった人: 今日: 人, 昨日: , 過去: 人 (2007年5月10日から)
RDF Feed