changeset 32:62e709cbaaae

todo ¤ÎÄɲäÈʸ»ú¥³¡¼¥ÉÊѹ¹
author gongo
date Fri, 21 Dec 2007 17:38:22 +0900
parents ccd1ad69a852
children ed70d3c76f7b
files ChangeLog
diffstat 1 files changed, 152 insertions(+), 112 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Dec 21 13:30:50 2007 +0900
+++ b/ChangeLog	Fri Dec 21 17:38:22 2007 +0900
@@ -1,50 +1,90 @@
+2007-12-21  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
+
+	* fix: 文字コード
+	研究室の方針で
+
+	## 漢字コードは utfで!! ##
+
+	ってことで、このプロジェクトも utf に変更しました。
+	参考として
+
+	% nkf --overwrite -w *.el 
+	これで *.el のファイルは UTF8 (-w) に変換できました。
+
+	* TODO:
+	- ファイル毎に buffer を用意し、コマンドが来たら
+	  対応する buffer に書き込む。
+	  buffer は buffer name をハッシュ値として、テーブルで持てばいいかな。
+	  確か lisp ではハッシュテーブルを作れた気がする。
+	  と思って調べてみたら、Emacs 21 以上からか hash 実装は。
+	  でも 「Emacs 20 以前でもシンボル表を用いればできる」そうだ。
+	  (参考->http://www.mew.org/~kazu/doc/elisp/hash.html)
+	
+	- 通信テストは、Session Manager 待ちではあるが、
+	  今のうちに、ある程度のテストルーチンを作ってた方が
+	  あとあと楽になりそうな気がしないでもなくも(ry
+
+	- 受け取ったコマンドは、どのタイミングで適用しようか。
+	  来た瞬間でいいのかなやっぱり。
+	  それとも、貯めて、自分が更新したら?そりゃちがうわな。
+
+	- 逆に自分が送る時はどうするんだろう。
+		1. コマンド発行
+		2. 適用前のコマンドリストとマージ
+		3. マージ後のコマンドを送りつつ、適用
+	  こんな感じかなあ。
+	  でも、「適用前のコマンドリスト」ってのがわからん。
+	  それなりの時間貯めとかないと重なるってことないんじゃない?
+	  そのためのマージなのか。それともやっぱり貯めたりほげほげするのか
+	  
+	
 2007-11-11  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
 
 	* redit-client-sm.el: redit-unpack-int
-	256 ʾǤʤäΤ4ХȤ餤
+	256 以上を取得できなかったのを修正。4バイトぐらい。
 
 	* redit-client-sm.el: redit-*-command
-	REPcommand Ǥ insert ʤΤ
-	Ǥ write ʤΤǡ𤹤롣insert ѹ
-	ơwrite-* ؿ insert-* ؿ˥͡ࡣ
-	ȡredit-*-command ȤȤˡʸƤΤ
+	REPcommand では 「insert」 なのに
+	ここでは 「write」 なので、時々混乱する。insert に変更。
+	それに総じて、write-* 関数を insert-* 関数にリネーム。
+	あと、redit-*-command を使うときに、文字列で定義されてるので
 
 	(string-to-number redit-read-command)
 
-	ȤʤȤʤä礤
-	̤ʸǤɬפϤʤפäƤȤ
-	ƿͤѹäڤä®
+	とかやらないといけない。今日の話し合いで
+	「別に文字列である必要はないぜ」ってことで
+	全て数値に変更。こっちの方が楽だし、きっと速い。
 
 2007-11-10  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
 
 	* redit-client-sm.el: set-process-coding-system
-	ѥåȤ binary ɤȻŦ
-	гΤˤǤpack/unpackΰ̣ʤ
-	äƤȤ 'utf-8  'binary ѹޤ
+	送受信するパケットは binary の方が良いと指摘。
+	そう言われれば確かにそうでした。pack/unpackの意味なす
+	ってことで 'utf-8 から 'binary に変更しました。
 
-	* redit-client-sm.el: process-send-string Ϣ
-	process-send-string ǡޤǤϡ륳ޥɤ
+	* redit-client-sm.el: process-send-string 関連
+	process-send-string で、以前までは、送るコマンドを
 
 	(format "%10d%10d" sid eid)
 
-	äƴʸƽϤƤޤ
-	ϡ̿Ѥ Perl ץȤ뤿ΤΤǤ
-	ϴˡlispľ SessionManager ˥ޥɤΤǡǤϤᡣ
-	ȤäƤɡ(redit-pack sid eid...) äƤΤѹޤ
-	򲿤ˤ뤫äƻͤǡ obsolete ʵҤĤƤϤޤ
+	って感じの文字列を生成して出力してましたが、
+	これは、通信用の Perl スクリプトに送るためのものでした。
+	今は既に、lispから直接 SessionManager にコマンドを送るので、これではだめ。
+	前々から使ってたけど、(redit-pack sid eid...) ってのに変更しました。
+	引数を何にするかって参考で、一応 obsolete な記述も残してはいますが。
 	
 	* redit-client-sm.el: redit-select-command (obsolete)
-	editor¦Ǥ select פʤäƤȤǡ
-	ǡeditor¦ɬפʤΤ join, put, quit, ¾Խޥɡ
+	editor側では select 要らないってことで。
+	これで、editor側で必要なのは join, put, quit, その他編集コマンド。
 
 	* add: translate.el
-	translate Υƥȥ롼󡣻Ȥ
+	translate のテストルーチン。使い方は
 
 	M-x load-file RET [translate.el]
 	M-x translate-test
 
-	äƤȡ*Message* Хåեˡ
-	translateη̤Ϥޤäȡ
+	ってやると、*Message* バッファに、
+	translateの結果が出力されます。きっと。
 
 	* redit-client-sm.el:unpack-int
 	< (setq num (* byte 4))
@@ -52,34 +92,34 @@
 	----------
 	> (setq num (* byte 4))
 	>   (string-to-char (substring pkt (- num 1) num))))
-	̤ǡSMACKˤ
-	eid  sid Ǥʤ
+	通りで、SMからのACKにある
+	eid や sid を取得できない訳だ。
 	
 	* error: redit-put-command
 	cmd(redit-put-command, 0, 0, 0, 0, str-length, str)
-	ߤȡGUI SessionManager Ǽʸ󤬲롣
+	みたいに送ると、GUI SessionManager で受け取る文字列が化ける。
 
 	emacs || GUI SessionManager
 	------++-------------------
-	gongo -> ͯ
+	gongo -> 杯湧
 
-	ɤäʤΤ
+	どっちが原因なのか・・・
 	
 	* TODO
-	ʸХȤȤˤʤ
+	送信文字数がバイトとかになるんで
 
 	(length str)
 
-	餤ǤȻפäɡSMʸƤ
-	⤷ñʸɤꡩǤä "hoge" ʤ
-	ޡˤƿ褦 (AM2:16)
+	ぐらいでいけると思ったけど、SMで文字化け。ずれてるんだろうか、
+	もしくは単に文字コードの問題?でも送ったの "hoge" なんだわ。
+	ま、それは明日にして寝よう (現在AM2:16)
 
 2007-11-09  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
 
-	* redit-client-sm.el: TCP/IP̿μȼpack/unpack
-	סιǤ
+	* redit-client-sm.el: TCP/IP通信の実装、それに伴うpack/unpack
+	久々の更新ですわ。
 
-	open-network-stream ɲäƤߤ
+	open-network-stream を追加してみた。
 
 	redit-join-command()
 	< (setq redit-client-process
@@ -91,31 +131,31 @@
 	>                             "localhost"
         >                             8766))
 
-	nil  buffer ʤɡ褯狼Τ nil ¿ʬȤʤäȡ
-	localhost/8766 ϡѹ SM ϥǡǻĤ餷Τǡ
-	ۥ̾/ݡֹ ᤦǡ
-	ѤǡϥץƱ褦˻Ȥޤ
+	nil は buffer なんだけど、よくわからんので nil 。多分使わない。きっと。
+	localhost/8766 は、何か仕様変更で SM はデーモンで持つらしいので、
+	ホスト名/ポート番号 決めうちで。
+	ここ変えるだけで、後はプロセスを同じように使えます。
 
 
-	PerlץȤȤʤʤäΤǡѹȤƤ
-	lisp REPޥ"äݤʸ" -> Perl ʸä
-	      pack->SessionManager 
-	ߡlisp ľ REPޥɤ -> SessionManager
+	Perlスクリプトを使わなくなったので、変更点としては
+	以前:lisp からREPコマンド"っぽい文字列" -> Perl で文字列受け取って
+	      ここでpack->SessionManager へ
+	現在:lisp から直接 REPコマンドを -> SessionManagerへ
 
-	äƤȤ lisp  pack/unpack 
-	(defun pack-int) (defun pack-int-loop) (defun unpack-int) Ǥ
-	⤦Ȥ٤ʤ
-	 SessionManager ȿǤƤΤ ϤƤߤ
+	ってことで lisp 内で pack/unpack を実装。
+	(defun pack-int) (defun pack-int-loop) (defun unpack-int) です。
+	もう少しちゃんとやるべきなんだろうか。
+	ちゃんと SessionManager で反映されてるので 成功はしてるみたい。偶然?
 
 	
 2006-12-26  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
 
-	* Ȥ
-	󡢤äѤpack/unpackνϥۤʡ
-	ǤǽФ餷礦ʤäƸ򤷤Ƥ
-	ΤȤ0255ޤǤǤʤΤǡʲΤ褦ѹ
+	* 独り言
+	うん、やっぱりpack/unpackの処理はアホだな。
+	暫定版で出したんだからしょうがない、って言い訳をしておこう。
+	今のところ0〜255までしかできないので、以下のように変更
 
-	;; num   : pack
+	;; num   : packする整数
 	;; count : byte length
 	(defun pack-int-loop (num count)
 	  (if (> count 0)
@@ -126,26 +166,26 @@
 	(defun pack-int (num)
 	  (pack-int-loop num 4))
 
-	ex. num  30000byte length 4(32bit)λ ('X'=)
+	ex. num が 30000、byte length が4(32bit)の時 ('X'=不定)
 	;; loop start
-	count 4 -> (% num 256) => 48  1Х
-	           (/ num 256) => 117 2Х
+	count 4 -> (% num 256) => 48  を1バイト目
+	           (/ num 256) => 117 を2バイト目
 	XXXXXXXX XXXXXXXX XXXXXXXX 00110000 (0 0   0 48)
-	count 3 -> (% num 256) => 117 2Х
-	           (/ num 256) =>   0 3Х
+	count 3 -> (% num 256) => 117 を2バイト目
+	           (/ num 256) =>   0 を3バイト目
 	XXXXXXXX XXXXXXXX 01110101 00110000 (0 0 117 48)
-	count 2 -> (% num 256) =>   0 3Х
-	           (/ num 256) =>   0 4Х
+	count 2 -> (% num 256) =>   0 を3バイト目
+	           (/ num 256) =>   0 を4バイト目
 	XXXXXXXX 00000000 01110101 00110000 (0 0   0 48)
-	count 1 -> (% num 256) =>   0 4Х
-	           (/ num 256) =>   0 5Х
+	count 1 -> (% num 256) =>   0 を4バイト目
+	           (/ num 256) =>   0 を5バイト目
 	00000000 00000000 01110101 00110000 (0 0 117 48)
 	;; loop end
 
-	ǤkǤPerl¦ unpack ǥǡǤޤ
-	ʴǤΤʡpack
-	ȤunpackޤñpackƱȤФΤ
-	int ǤΤʡưȤǤ͡
+	これでおkでした。Perl側の unpack でデータ取得できました
+	こんな感じでいいのかな。packソース見たい。
+	あ〜あとはunpackか。まあ簡単かなpackと同じことすればいいのか。
+	int だけでいいのかな。浮動小数とかいやですね。
 
 	
 2006-12-24  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
@@ -154,92 +194,92 @@
 	< (progn (redit-client-write-line beginl nil)	;; t)
 	-----
 	> (progn (redit-client-write-line currline nil)	;; t)
-	while ǥ롼פƤΤ
-	äbeginläƤΤϤʡȻפä
+	while でループしてるのに
+	ずっとbeginlってのはおかしいかな〜と思った
 	
-	* Ȥ
-	pack/unpackɤǤޤʳʤΤȤ߹Ǥޤ
+	* 独り言
+	pack/unpackもどきができた。まだ使用段階なので組み込んでません。
 	- pack
 	(defun pack (num) ;; num=42
-	    (concat (char-to-string 0)     ;; 4Х
-	            (char-to-string 0)     ;; 3Х
-	            (char-to-string 0)     ;; 2Х
-	            (char-to-string num))) ;; 1Х
+	    (concat (char-to-string 0)     ;; 4バイト目
+	            (char-to-string 0)     ;; 3バイト目
+	            (char-to-string 0)     ;; 2バイト目
+	            (char-to-string num))) ;; 1バイト目
 	=> 00000000 00000000 00000000 00101010
 
-	lispǥХ򰷤꤫褯狼ʤä
-	ǤʤȤrep_manager.pl unpack ǤƤޤ
-	ǥȤͤɬפ뤫ʡ
+	lispでバイト列を扱うやりかたがよくわからなかったけど
+	これでなんとかrep_manager.plが unpack できてました。
+	エンディアンとか考える必要あるかな。
 
 	- unpack
-	äǡ顢(commandeid etc...)Ф
+	受け取ったデータから、各値(command、eid 、etc...)を取り出す。
 
-	1458912131617202124
+	1〜4、5〜8、9〜12、13〜16、17〜20、21〜24
 	cmd    sid   eid     seq    line    t_siz
 
-	1Х()ͤäƤΤ
-	(substring pkt 3 4) => "*" ;; (char-to-string 42) => "*" ʤΤ
-	(string-to-char "*") => 42  ͼ
+	下位1バイト目(?)に値が入ってるので
+	(substring pkt 3 4) => "*" ;; (char-to-string 42) => "*" なので
+	(string-to-char "*") => 42 ・・・ 値取得成功!!
 
-	ޤޤľꤢꤽɡ
-	ޤд lisp  REP Ǥޤ
+	まだまだ見直す所ありそうだけど、
+	うまくいけば完全に lisp だけで REP できますね
 	
 2006-12-15  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
 
-	* Ȥ
-	open-network-stream  rep_manager.pl ³Ǥ
-	ɡlisp ¦ǡޤƤʤ
+	* 独り言
+	open-network-stream で rep_manager.pl に接続できた。
+	だけど、lisp 側で送信データがうまく作れてない。
 	(format "%4d%4d%4d%4d%4d%4d" 41 0 0 1 0 0)
-	ȡʤ󤫤ޤʤ
-	pack/unpackʤʡ
+	だと、なんかうまくいかない。
+	pack/unpackないかな・・・
 	
 2006-12-14  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
 
-	* Ȥ
-	ʤ lisp  network  TCP ³ˡäݤ
+	* 独り言
+	なんか lisp から network に TCP 接続する方法があるっぽい
 	(open-network-stream NAME BUFFER HOST SERVICE)
-	ޤ¾ڤƤޤ󤬡ʤ󤫻ȤäݤǤ(ex. navi-2ch)
-	ޤСredit_client.pl Ϥʤʤ뤫⡣
-	ʸɴطϤɤ褦decode-coding-* 餤
-	ɤˤʤʤʡʤʤ⡣̵̤ʥإåղä롦
+	まだ実証してませんが、なんか使えるっぽいです。(ex. navi-2ch)
+	うまくいけば、redit_client.pl はいらなくなるかも。
+	文字コード関係はどうしよう。decode-coding-* ぐらいで
+	どうにかならないかな。ならないかも。無駄なヘッダ付加される・・・
 	
 	* redit-client-sm.el - redit-client-close ()
-	linenum ƤʤäΤǡ 0 ˤޤ
-	̤0פǤ͡close ¿ʬ
+	linenum が定義されてなかったので、 0 にしました。
+	別に0で大丈夫ですよね?close だし。多分。。。
 	
 	* redit-client-sm.el - redit-client-exec-write-line (string)
-	ʤ Warning ǤƤΤ
+	なんか Warning でてたので
 	< (end-of-buffer)
 	-----
 	> (call-interactively 'end-of-buffer)
 
-	end-of-buffer  interactive ؿʳ
-	ƤӽФܤ餷Ǥ
-	Ĵ٤Ƥ餳 Warning ФʤΤ夭ޤ
-	Τʤǡ
+	end-of-buffer は interactive 関数以外で
+	呼び出したら駄目らしいです。
+	いろいろ調べてたらこれで Warning 出ないので落ち着きました。
+	いいのかなこれで。。。
 	
 2006-12-12  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>
 
 	* redit-client-sm.el
-	obsolete function ѹ
+	obsolete function を変更
 
 	since Emacs 22.1
 	< (process-kill-without-query redit-client-process)
 	-----
 	> (set-process-query-on-exit-flag redit-client-process nil)
-	2 non-nil ȡemacsλ
-	`Active processes exist; kill them and exit anyway?' 
-	äʹƤޤprocess  redit_client.pl ΤȤǤ
-	¿ʬʤΤ nil ޤ
+	第2引数が non-nil だと、emacs終了時に
+	「`Active processes exist; kill them and exit anyway?' 」
+	って聞いてきます。process は redit_client.pl のことです。
+	多分いらないので nil を入れました。
 
 	since Emacs 21.1
-	< (make-local-hook 'before-change-functions) ;; after
+	< (make-local-hook 'before-change-functions) ;; afterも
 	-----
 	> ;; (make-local-hook 'before-change-functions)
-	not necessary 餷Ǥ21.1ɬܤߤǤ
+	not necessary らしいです。21.1以前だと必須みたいですが。
 
 
-	* Ȥ
-	defstruct ȤȤ
-	(eval-when-compile (require 'cl)) ä
-	byte-compile-file ƤȻȤ롣
+	* 独り言
+	defstruct を使うときは
+	(eval-when-compile (require 'cl)) を加えた後に
+	byte-compile-file してからやると使える。