TV WATCH

2001/01 20-31
Last Modified : 02/01 01:07
Total Access :
Today Access :
Your Access : COOKIE_TIMES: deprecated in static mode.

2001/01/20 (Sat)

#1 [ページ] のこり1MBきる

開始して1年、トータル4MBを越えた。 さて、どうしたものか。。。
イメージなんてぜんぜんのせていないのにこれじゃ ぜんぜんたりんぞ。 ほかのひとはどうしているんだろう。。。

#2 [実生活] ゆき

やー、雪が降ってつもってるよん。

2001/01/21 (Sun)

#1 [実生活] 晴れたけど寒い

まだ昨日の雪がつもっている。

#2 [プログラミング] CVS、LaTeXマクロ、Elisp

外出たくないしひまなので久しぶりに知識の再確認をした。
CVSはtag付け、マージの練習。
LaTeXはhere.sty、miscのlisting、eclbkbox.styのbreakbox、 eclclass.styを使って書いた。 「スタイルファイルのページ」 参考。
elispは関数を書く。これは全インデントをする関数。

(defun indent-all ()
       (interactive)
       (setq my-current-line (count-lines (point-min) (point)))
       (setq my-current-column (current-column))
       (goto-char (point-min))
       (while (not (eobp))
              (indent-according-to-mode)
              (forward-line 1))
       (goto-char (point-min))
       (forward-line (- my-current-line 1))
       (move-to-column my-current-column))

これはJUnitのテンプレートを入れる関数。

(defun junit-test-template ()
       (interactive)
       (setq my-test-class-name (read-string "Input TestClass name: "))
       (while (eq (length my-test-class-name) 0)
         (setq my-test-class-name (read-string "Input TestClass name again: ")))
       (setq my-current-point (point))
       
       (insert "import junit.framework.*;\n")
       (insert "\n")
       (insert "public class @CLASS@ extends TestCase {\n")
       (insert "    \n")
       (insert "    public testEmpty() {\n")
       (insert "        ;\n")
       (insert "    }\n")
       (insert "    \n")
       (insert "    public setUp() {\n")
       (insert "        ;\n")
       (insert "    }\n")
       (insert "    \n")
       (insert "    public tearDown() {\n")
       (insert "        ;\n")
       (insert "    }\n")
       (insert "    \n")
       (insert "    public static Test suite() {\n")
       (insert "        return new TestSuite(@CLASS@.class);\n")
       (insert "    }\n")
       (insert "    \n")
       (insert "    public @CLASS@(String name) {\n")
       (insert "        super(name);\n")
       (insert "    }\n")
       (insert "}\n")
       
       (goto-char my-current-point)
       (while (search-forward "@CLASS@" nil t)
              (replace-match my-test-class-name t))
       (goto-char my-current-point))

これだけで一応基本をおさえているはず。

#3 [ニューズ] ブッシュ新大統領

ブッシュ氏が新大統領になった。 結局クリントンの訴訟は全部終わることになった。 本来なら新大統領が弾劾すべきだが、僅差のために何もできなくなった。
さて最初の行動はなにになるだろうか。

#4 [プログラミング] JavaCVSのカスタマイズ

cvsをJavaプロジェクトにあうようにカスタマイズする方法。

 $ cvs init
 $ cvs co CVSROOT
 $ cd CVSROOT
 $ echo '*.class' >> cvsignore
 $ cvs add cvsignore
 $ echo '*.jar '-k"'b'" >> cvswrappers
 $ echo '*.war '-k"'b'" >> cvswrappers
 $ echo '*.jpg '-k"'b'" >> cvswrappers
 $ echo '*.png '-k"'b'" >> cvswrappers
 $ cvs ci -m 'For Java Project enhancement.'
 $ cd ..
 $ cvs rel -d CVSROOT

この意味は


ちなみにcvs up -r VERSIONで戻した場合Sticky TAGがつくので 一度cvs ci -AとしてSticky TAGを外してからcvs ciする必要があります。

2001/01/22 (Mon)

#1 [プログラミング] Elispつづき

こんどはcc-modeのカスタマイズです。 まずインデントをスペースで埋める方法です。

(add-hook 'c-mode-common-hook
          (function (lambda () (setq indent-tabs-mode nil))))

つぎはEnter改行ですぐインデントした位置にカーソルを置く方法 (\C-jと同じ)。

(add-hook 'c-mode-common-hook
          (function (lambda () (define-key c-mode-base-map
                               "\C-m"
                               'reindent-then-newline-and-indent))))

c-mode-common-hookはjava-mode、c-mode、objc-mode、c++-mode、idl-mode、 pike-modeなどで共通に使うhookです。そこにadd-hookで関数を追加しておくと そのモードになったときに登録したhook関数がよびだされます。
c-mode-base-mapはそれらのモードで共通に使うためのキーマップです。

2001/01/23 (Tue)

#1 [実生活] Lyee

XPをLyeeなんぞと同類に見られてしまった。 そやつはプログラマーではないのだが、それでもいやなかんじだ。
Lyeeなんぞ投資家をだまくらかす要素しかないが、XPはプログラムに 恩恵をあたえてくれるものだ。
まずXPはWebで自由に情報をしいれること使うことができ書籍も出ている。 一方Lyeeは独占技術(技術か?)だしあまつさえ特許を取っている (これは投資家にはうけるけどプログラムを作るほうにはぜんぜん歓迎されない)。 XPはさらにひろまる傾向にあるのに対し、Lyeeは誰も使わなくなるだろう。
内容もLyeeは簡単にいうと仕様を記述しそこから実装をつくるというものだ。 この「仕様」がくせものでこれをさいしょからきちんと書ける人間はとっても少ない。 さらにそれができる人はそんなわけのわからないものをつかわずに ずっとシンプルできれいなプログラムを作れるのである。 つまり、Lyeeはプログラムを書かない人には使えないし、 仕様をきっちり書けるひとはLyeeなんぞいらないのだ。
XPは口語のストーリーを中心にプログラムに肉づけしていくものだ。 ストーリーを実装していくうちにチームは認識をたかめ、技術もあげていく。 テスト中心でプログラムをつくり、必要になったときにその仕様を表現する テストを書いていき、そのテストが通るようにコードを実装する。 つまり、プログラムは常に存在し、それが徐々に仕様、機能とも(そしてチームも) にエンハンスされていくものだ。
いま、ソフトウェア開発に必要なのはすばやく高品質に動くものを開発すること、 それと開発者を中心にもってくることだ。 XPはそれが目標に入っている。LyeeはLyee自体がかわいいだけでプログラムや 開発者のことはその下になる。そんなものが世の中を席捲することなど まずありえない。

2001/01/24 (Wed)

#1 [プログラミング] SWIG

cでオブジェクトファイルを作ってそれをSWIGで使ってみる。 swig-rubyを使った。

 $ jed sample.c # ライブラリのソースを書く
 $ gcc -c sample.c
 $ gcc -shared -o libsample.so sample.o
 $ swig -ruby sample.c # デフォルトでモジュール名がSwigを作る
 $ gcc -c sample_wrap.c -I/usr/lib/ruby/1.6/i686-linux
 $ gcc -shared -o swig.so -L. -lsample
 $ jed sample.rb # つかうためのrubyコードを書く
 $ LD_LIBRARY_PATH=. ruby sample.rb
0
1

sample.cは

static int count = 0;

int get() {return count;}
void inc() {++count;}
coid set(int aCount) {count = aCount;}

sample.rbは

require 'swig' # swig.soをロード

p Swig.get
Swig.inc
p Swig.get

2001/01/25 (Thu)

#1 [雑誌] LinuxJapan3月

惹かれる内容はなかった。

2001/01/26 (Fri)

#1 [e生活] 本到着

ためしにAmazon.co.jpで頼んだ本が今日付いた。 注文から発送まで2日、到着まで1日の計3日でとどいた。

2001/01/31 (Wed)

#1 [実生活] 雪がとけない

いまだ家の前には雪が積もっている。 暗いときすべってきけんなのだ。

#2 [テレビ、ラジオ] モー娘。ベスト

今日が発売日。あちこちでずっと流れっぱなし。 「さあ諸君たちも楽しもうではないか!」 あ、なんか欲しくなったかも。


for 8 day(s).

[最新] [先月] [今月] [来月] [一覧]

[URL List] [Dictionary]

[static,style:t-hermes,jconv:NKF,cache:on]
Powered by Tomsoft Diary System 1.2.3
Copyright(C) 2001 by ichiyama ryoichi <ichiyama@jc4.so-net.ne.jp>. All rights reserved.