September 2000
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
ruby-1.6.0 2000-09-01 です。 昨日の問題は、GC のパッチで OK です。 よかった。 それと、ほとんど同じものと思いますが ftp で登録されていた pre 1.6.0 も確認しました。 こちらは、ほぼまっさらな HP-UX 11 で OK でした(GC パッチ後のものと思います)。 私が普段使っている HP-UX は、けっこうフリーソフトが入っていて、リファレンスにはよくなかったのです。 試せる環境が増えて、ほとんど HP-UX もまっさらの状態でコンパイルを試したので、大丈夫と思います。 コンパイラパッチはあててありますが。 root 権限がないので、--prefix=$HOME して試しています。 私の場合、Ruby が使えるとかなり作業が楽になるので、ホント助かります。 lex.c の mtime 方も、調整していただいてすいませんでした。
で、作業できてしまいました。 楽ちん。$ ./configure --prefix=$HOME && make && make test && make install
まだまだ暑そうです。 お互い体調には気をつけましょうね。
日付の確認。 ファイルの日付を細かく確認したかったので、ftime.rb というものを作りました。 以前も作った記憶があったのですが、ファイルがみつからなくて? 最初は、時間だけを表示するものだったんですが、使ってみると時間順に並べたくなったのでソートオプションを追加。 ということで、 「 file の時間 」 です。 実行結果はこんな感じ。
$ pwd /t/src/ruby-1.6.0-pre1 $ ftime.rb keywords lex.c m(05/28/00 02:04:08) c(09/01/00 20:23:12) a(09/01/00 20:23:11) keywords m(05/28/00 02:04:17) c(09/01/00 20:23:12) a(09/01/00 20:23:11) lex.c $ cd ../ruby-1.6.0-20000901/ $ ftime.rb keywords lex.c m(05/30/00 13:24:01) c(09/01/00 19:53:29) a(08/31/00 19:04:56) keywords m(05/30/00 13:24:01) c(09/01/00 19:53:29) a(09/01/00 19:54:12) lex.c
Mozilla M17 する。 けっこういいですね。 エラーレポートも日本語でできるそうなので。 雑誌の付録に入っていたというのが試す理由の一つではあるんですけど。
ll.rb の話。 /etc/DIR_COLORS ファイルがない場合も、ターミナルによってはきめうちでカラーになるように。 HP-UX 上で使うときに不便だったので、サポートしてしまいました。 別ページを用意するので、そのときまでお待ちください。 細かい解説はなしで、とりあえずスクリプトをみえるようにしたいと思います。 用意しました。 「 ll (ls -l) コマンド 」 です。
そうそうスタイルシート。 OD の連載(もっと宣伝した方がいいかな)のメンバーのごとけんさんが Netscape でも解釈できるスタイルシートを書いてくれたので活用です。 ありがとうございます。 スタイルシートって便利ですね。 HTML は、いままでとまったく変わらないのに。 かなり以前試したのですが、当時は Netscape のサポートがあまりよくなくてあきらめていたのです。 他の HTML にもスタイルシートを扱うように修正しないと。
コマンド関係 をいくつか追加。 いままでこの辺のページにあったものですけど。 せっかく作ったスクリプト、まとめないとダメですよね。
9 月なんですものね。 日照時間が短くなってきていますね。 暑さもそろそろなんとか...
暑い。 と思っていたら、なんと最高気温が 37.8 度。 今年一番の暑さだそうです。 最低気温も 28.2 度。 なんちゅう暑さ。 自宅の温度計で外気温も計測しているのですが、これも日中ずーっと 36 度を示していました。 平年の最高気温は 29 度だそうです。 早く平年並みになってほしいですね。
てくてく本屋さんへ。 「Java の鉄則」 「仕事で使う CGI」 「電脳社会の日本語」 の三冊。 読みもの的なものもほしかったのですが、いい感じなものをみつけられなくて。 そのほかコミック「赤い牙 8,9」です。 この辺全然読んだことがないみたいで、この先どうなるかわくわく。
スクリプトを独立します? 現在、スクリプトは HTML に埋め込なんです。 これだと使いにくいですよね。 さて、HTML からスクリプト抜きだすスクリプトでも書きますか。 それだとちゃうかな? あ、そうそう普段使っているスクリプトにこの機能があったんだっけ。 HTML へ変換するスクリプトがあって、このスクリプト逆変換も持っているのでした。 ダウンロード用にスクリプトを入れておくかな? そして、これをまとめるページも作っておけばなおさら便利? 「 ソースコードの version 一覧 」 で、クリックして落とせるようにするのもいいな。 ということで検討します。
スタイルシートの本。 かなり以前に購入した本ですが、いま役立ちそうです。 「できるだけシンプルに」という感じでしょうか。 Netscape 4.72 と Mozilla M17 で確認しているんですが、Netscape はまだまだですね。 フォントの指定がうまくできないので採用できないページもあります。 IE では、試していないのですが...
レイアウトの変更。 スタイルシートを使いはじめたので、しばらくページの更新情報が落ち着かなくなると思います。 ついでに見直しも?
九月中旬まで暑いとか。 あらら。 でも、本日は昨日にくらべれば楽ですね。
ちょっと気になる動き。 Ruby で Thread するときどうも Thread#join などで終わり待ちだとうまく行かないことがあったりします。 頻度はすくないのですが。 さて、どうやって追いかけようかな。
最近 exit 書かなくなったけれど。 スクリプトが終わる場合に exit を指定しなくても、ちゃんと Ruby が終了値を設定してくれるので省略していました。 でも、私のツールの一つの 「 もう一つのプロファイラ 」 は、exit を期待していたりしたのでした。 あらまぁ。 たまに使うプロファイラ、普通必要ないけれどこのために exit を書く?
Mozilla M17 が普段のブラウザ? けっこういい感じです。 w3m 以外には Mozilla になってしまいそうです。 個人で使うのには、すでにかなりの完成度ではないでしょうか? リリースが楽しみです。
最近自分でコンパイルするもの。
液晶の右 3cm の幅で表示されない VAIO の話。 キーボードはかなりいい感じなので、早く修理したいと思っているのですがなかなか。 ある程度のファイルはバックアップしたのですが、さて LILO が残っていると問題かな? 修理には、引き取り修理が基本らしいのですが、引き取り日が休日にできないとけっこう大変かも。 すこしやり取りして確認しないと。 めんどうな感じ。
2 年前の Ruby 日記。 ちょっと読み直してみていたのですが、「2000 年には Pentium が 700MHz がでるそうですから」とか書いてありました。 実際には 1GHz がでていたりしますけど、すごいですね。 ホント、インタプリタ向きだと思いませんか? 同僚が、年末には 1GHz x 2 を作りたいと話していました。 こういうシステムって、もう感覚違うような気がするんですが。 私も使ってみたいなぁ。 でも、コンピュータを使うために場所に制約がでてしまうディスクトップは自宅では使えないかな。 あ、LAN すればいい? 会社では、パワーがあっても困らないから? 会社のシステムを入れ替えたいな。
ちょっとでかいです。 Mozilla M17 のディレクトリ構造。 「 Ruby でディレクトリの tree 表示(tree.rb) 」 にて確認してみました。 ふーん。 かなり大きいですね。 ディレクトリが 149 もあります。
$ tree.rb -d -level=2 |-+ . |-+ chrome | |-+ locales | |-+ overlayinfo | |-+ packages | |-+ skins |-+ components |-+ defaults | |-+ pref | |-+ profile | |-+ wallet |-+ icons |-+ plugins |-+ res | |-+ entityTables | |-+ html | |-+ rdf | |-+ samples |-+ searchplugins 18 directores
現場の知識。 日本での製造業をなんとかしているのは、「現場の知識」だったりするそうです。 専門職の人たちのもっている「対応する力」を大切にしないと、ものづくりはできないのだと思います。 あれこれいうだけで、手を動かさない人が気がつくと思います? マネジメントが、そういうことに気がつかないと。 いや、決定権を持っている人が気がつかないとダメなんですよね。 こういうの。 でも、目の前のことばかり考えていたら無理かな。 これから会社を選ぶ人は、しっかり、ものづくりをする会社を探しましょう。 もちろん、違うタイプもありですけどね。
ruby-1.6.0 2000-09-04 です。 ruby-1.6.0 pre2 は、HP-UX 11 で特に問題なく OK でした。
Ruby のカンファレンス。 京都なんですよね。 内容はどんな感じかな。 有給ないなぁ。
スタイルシート。 pre の場合、フォントの指定がうまくいかないですね。 IE でも均等幅のフォントが使えなくて。 Netscape 4.72 と IE 5.0 (Win) がだめです。 Mozilla M17 は大丈夫です。 もし使えたら、全面的にスタイルシートを使うようにしてもいいんですけど。 ソースコードなどが読みにくいなぁ。 まあ、w3m を使えば問題なしなんですけどね。
で、Win98 に IE 5.5 入れました。 ダメです。 タイトルのところが、文字を表示できません。 対処方法もでていたのですが、それでも表示できません。 入れるんじゃなかった...
Mozilla です。 一部変ですが、とりあえず Linux でも Win98 でも Mozilla です。
涼しいです。 最高気温が 26 度くらい? ここ数日の温度差がすごすぎという感じ。 でも、涼しいのはいいですね。 ホント。
今日は雨...
涼しくて。 寝るのもすこし遅かったのもあって、朝、起きれませんでした。 それにしても、ホントいいですね。
ここしばらく、Web ページの見直しをしています。 スクリプト自身も手を入れたものなどもあります。 近くこの辺でもお知らせを書こうかなと思っています。 Tips ページなど、もっとちゃんとさせて、実例のページへリンクも入れて。 使っている実例があるとわかりやすいですよね。 私のスクリプトは、ややこしいことはやっていませんが、それでも参考になればと思っています。 スクリプトについては、更新時間だけでなく、新規作成時間も入れたくなってきました。 いつごろ作ったかというのを自分がみたいので...
スタイルシート。 pre タグで、固定幅のフォントを使いたいのです。 それだけなんですが、うまく解釈してくれるブラウザがすくないです。 IE 系は、日本語対応? の方が変な感じです。 フォントの指定などが、うまくできていないのでは? と思ってしまいます。 ちゃんとしているのは、いまのところ Mozilla M17 です。 INTERNET Magazine 2000/10 に Mozilla M17 Linux/Mac/Win が付属しています。 興味がある方はいかがでしょうか?
会社。 福利厚生関係が、また。 よくなる方向にみえないのだけれど。 既得権を持っている人たちだけがメリットがあるやり方って、強い不公平感のもとなんですけどね。 意思決定権を持っている人たちが、もっとしっかりしないとダメだと思うなぁ。 *高い* 給料分働いているのかな? (おいおい) 「いま、どれだけ働いたか?」で、評価しようとしているらしいので、なおさらちゃんとした評価を行ってほしいものです。 「上の人もちゃんと評価されている」というのを、ぜひみせてほしいものです。 頑張っている人を評価しないとダメですよね。 なにもしていない人が高い給料をもらっているとダメですよね。 たくさんもらっている人が働けばいいと思ってしまいますから...
公開しているスクリプトの version は? 使っているものと、HTML 中に入っているものとの間に差がないか確認するスクリプトを書きました。 ほとんど大丈夫というのがわかりましたけど、フォローしていないものもありました。 更新しておかないと。
「 新着・更新情報 」も、見直し。 すこしわかりやすくなったでしょうか?
朝、眠いです。 夏の疲れが、いまごろの時期にでるとか。 みなさん注意してくださいね。
ちょっと微妙。 会社のシステムは VineSeed で kernel 2.2.16 に USB backport しています。 これ、なにも問題なくとても平和です。 自宅のノートは、同じ kernel と ALSA と PCMCIA とサスペンドのためか、たまに USB が調子悪くなります。 いきなり落ちるとか固まるようなことにはならないので、いいんですが。
う、コマンド名をミス。 はずかしい間違いでした...
ドラクエ VII の CD 買ってきました。 ゲームしたいなぁ。
DVD をすこし。 ノート PC 用に DVD-ROM ドライブを買ってあったので、再生を試してみました。 MATRIX が 2,700 円で売っていたのを買ってきてあったので。 ノート PC なので画面はたしかに小さいですけれど、とりあえず観るのにはいい感じです。 DVD のソフトほしくなってしまうなぁ。 まずいです。
サポートツール。
スケジュール。 夏休みのスケジュールを一週間ずらしても全然問題なかったというのが、本日わかりました。 ちょっとスケジュールミスかな。 夏休みが終わったら、すぐ送られてくると思ったのですが...
jnethack のフォント。 フォントの設定なのか、jnethack でまったく漢字が表示できません。 メニューは化けているし、HELP などはアルファベットだけ表示。 典型的な必要な漢字フォントをロードできていない系なんですが、リソースがわからなくて。 JG の新しいものがでているか確認した方がいいかな? ゲームをするというより、ちょっとだけ動かしてみたかっただけなんですけど。
HTML 中のスクリプト。
version が古かったりしないか? の確認スクリプト。
HTML ファイルは、「~/public_html」以下に入っています。
ここから必要な情報をとりだし比較しています。
私の場合、Emacs でへッダ部分を自動生成しています。
定型の情報があるので、それをとりだしています。
#! /usr/local/bin/ruby
# /home/tetsu/src/ruby/toolbox/version.rb
# Created: September 05,2000 Tuesday 21:52:39
# Author: tetsu(WATANABE Tetsuya)
# $Id: version.rb,v 1.4 2001/09/17 05:22:56 tetsu Exp $
# usage:
def id(file)
return [] unless File.exist?(file)
arr = []
f = File.open(file)
while f.gets
if ~/# (\/\S+\.rb)/
src = $1
end
if ~/\# \$Id: (\S+),v (\S+) (\S+) (\S+) tetsu Exp/
arr.push([$1, $2, $3, $4, src])
end
end
f.close
arr
end
require 'find'
top = '~/public_html'
html = {}
src = {}
Find.find(File.expand_path(top)) do |f|
if /\.html$/ =~ f
id(f).each do |i|
s = i[4]
w = id(s)
if w == []
puts "BAD: #{s}\t#{f}"
else
html[s] = i + [f]
src[s] = w[0] + [s]
end
end
end
end
html.keys.each do |s|
h_ver = html[s][1].to_f
s_ver = src[s][1].to_f
if s_ver > h_ver
p html[s]
p src[s]
end
end
このスクリプトで確認してみたら、すこし修正が必要なものもあるようなので、そのうち。
今日も雨みたいです。
う、まずい。 目が覚めたからといって、ドラクエを聴きながらスクリプトを書いたりあれこれしていたらもうこんな時間。 いまから寝るのは問題ないけど(たいてい起きれます)、でも遅すぎるなぁの朝の 6 時半。 それに眠らないと、睡眠時間があまりに短すぎるし。 早く会社に行って、早く帰ってくるというのもいいんですけどね。 さて?
DVD の話。 やっぱり Linux 上で観たいです。 というのは、Win98 を立ち上げてしまうと、なにもできなくなってしまうからです。 私の場合「ながら」なので、Linux 上で観れるとうれしいです。 できるといいのになぁ。
そろそろ? 涼しくなってきたようなので、ノート PC のクロックをあげてもいいかな?
「 入り口のページ 」 に「ねこさん」の絵を。 この絵、UNIX では xneko とか oneko のものですね。 ある Web ページで、「自由にお使いください」ってなっていたのですが、オリジナルの絵のライセンスってどうなっていましたっけ? この絵は、想いでがあります。 最初 Mac の上で動いているのをみて「いいなぁ」と思っていました。 次に X の上で動くものがあって、「わぉ」って。 その後、当時(1992? 年頃)の同僚だった人が、xneko のソースに SHAPE extention を使って oneko を作ったのでした。 まったく同じころに、世の中にも oneko が広まりましたけど。 同じようなことをしていた人がたくさん? いたのですね。 なつかしいなぁ。 いま、Kondara には oneko-1.2.sakura.5-1 というのがあるんですね。 なごめるような? ソフト? も、いいですね。
ruby-1.6.0 2000-09-07 です。 昨日書き忘れていました。 preview3 については、HP-UX 11 で OK でした。 preview2 について、HP-UX 10.20 のすこし環境がおかしいもので確認してみました。 libc パッチを実施することで missing/vsnprintf.c を使用する必要がなくなるので、コンパイル可能でした。 HP-UX の場合、コンパイラ系のパッチなどは、実施してからの方がいいようです。
涼しくてよく眠れるのかな。 朝がつらいです。 あ、昨日あまり寝ていないからかな。
会社で使っている、ある情報を検索する CGI の話。 依存関係があり、あるものを使用するときは、別のものも必要な場合があります。 オリジナルのデータでは、この依存関係については、最新の対象を持っていません。 リプレースされた場合は、自分でその情報を「one click?」余計に確認する必要がありました。 これを GDBM で依存関係の最新の情報を持たせて、一覧表示の際に置き換えるように。 いままで、すこしだけ不便と思っていたのです。 確認するのは難しいことではなかったので、「いいかな」という感じでした。 ですが、使用している別のユーザさんがうまく活用できていないようだったので変更するようにしました。 内部的な話ですが、検索対象は 2000 くらいのファイルになります。 これをほぼ grep するような形で検索しています。 キーワードが曖昧でも、検索が可能なように。 なので、ちょっと速度的には遅いです。 なんとかしたいところです。 キーワードが決まったものの場合には、Namazu も内部的な検索エンジンとして使用できますので、こちらを使えば速いです。 いくつかの条件をキーワードの検索で、結果を表示し、実際のデータへアクセスできるようになっています。 CGI の可能性として、対話的に情報にアクセスして、結果を得るようなものには、かなり有効だと思います。 Web ブラウザ経由で、多くのユーザさんにも使ってもらえますし。 個人的な動機で作成したのですが、できあがれば、これが共有できるツールになってしまいますし。 みなさんも Ruby で CGI しませんか?
Linux で DVD の話。 情報いただきました。 末安さん、ありがとうございます。 「 http://uguu.dyn.to/~sueyasu/dvd/ 」 です。 ノート PC なので、ガンガン DVD というわけにはいかないようなのですが、参考にさせていただきます。
jnethack 動きました。
メッセージ関係が化けていたのですが、
「
http://his.luky.org/ML/ Linux related Web/ML/ftp full text retrieval
」
で検索したら一発でした。
ML のみなさんと検索システムを運用しているみなさんありがとうです。
Vine Linux 2.0 の場合にだけ起きることのようなのですが、/etc/ld.so.conf へ /usr/lib/gconv を追加することで対応できました。
よかったよかった。
手がコマンドになれていないので、すこしずつ?
そうそう、起動時に環境変数 LANG と LC_ALL の指定をお忘れなく。
私は普段、この二つの環境変数は指定していません。
必要なときに、コマンドの前で指定できるように ~/.zshrc で次のように設定しています。
必要なコマンドだけに使用できるように。alias U='LANG=ja_JP.ujis LC_ALL=ja_JP.ujis'
休日なのに早起きだなぁ。 と、ここを書いてまた寝てしまったのでした。 おいおい。
今回の Linux magazine 2000/10 は、いいですね。 「Ruby で行こう」にて、変数のスコープを扱っています。 すこしレベルアップしてきたら、この辺は注意が必要な内容ですね。 Thread を使うときなど、注意しないと「あれ?」ということに。 私もつい最近までスコープと Thread 関係で解決できない動きがありました。 Thread#join のときの動きがおかしいと思っていたのは、スコープ関係の話だったのでした。 解決できてよかったです。 スクリプトの書きやすさ、問題を入りにくくするシンタックスが Ruby のメリットです。 この辺にさっさとなれてしまうといいと思うのでした。 「今後の Ruby 1.7」の話題も気になるところです。 さて、1.7 でどのようになっていくのか? 「ANSI C 化」については、HP C Compiler がチェッカーとしてお役に立てるかも? (うるさいから) 「インタプリタの書き換え」については、なかなか大変そうですね。 高速化は魅力的な話題なのですが...
本屋さんへ。 空が青くてきれい。 風も気持いいです。 でも、すこし暑いですね。 近くでお祭りがあるようです。 にぎやかでいいですね。 本は、よさそうなものがみつからずに空振りでした。 私の田舎の方でもお祭りがあるんですが、自分が参加できるお祭りってないのが残念です。 母方の田舎は、お祭り大好きで、お祭りの中心的存在だったりします。 小学校のころにそのおかげで参加できたりしたのですが(学校休んでお祭りにいったっけ)、いまとなってはまったく。 一時的? に遠くに住んでいたこともあってもう何年もいっていません。 またいってみたいな。 ご無沙汰しているのでちょっと顔をだしにくい感じだったりしますけど。
Namazu の設定。 Let's note の Linux 環境では、まだ自分用の Namazu していませんでした。 Vine Linux のドキュメント関係は有効に使っていますけどね。 ドキュメント関係は、検索できてなんぼなので、Namazu です。 やっぱりいいですね。 使っていない方は、ぜひ!
題材。 CGI で NDTP する。 けして使いやすいとは思わないけれど、フレームの上部で辞書検索のキーワードを入れて、左下に一覧、右下に検索結果。 一覧のどれかをクリックしないと結果をみることができない仕様です。
私はいつも Emacs で一気に複数の辞書を検索してしまいます。 作成した CGI は、one click 余計に押さなければならないので、使いやすいとは思わないのですが、みかけはよさそうな感じです。 しばらく使うと、単純にすべての結果をだす方が、みかけは悪いかもしれませんが、使いやすそうな気がします。 でも、「*」を使った検索などでやたらと候補が多い場合は、こちらの方がいいかも? CGI の中に、最低限の NDTP へのアクセスのためのクラスも組み込んだので、可搬性はよさそうな気がします。 このスクリプト 200 行くらいです。 このくらいで、辞書を Web ブラウザから扱えるようになります。 試してみてはいかがでしょう? とりあえずは、NDTP のサーバが必要ではあるんですけどね。+--------------------------------+ |key[ ] | +-------+------------------------+ |1. | ............... | |2. | ............... | |3. | | |4.____ | | | | | | | | +-------+------------------------+
「翻訳魂」入れていなかった。 環境整備しないと。 まだまだだなぁ。 たまに使いたくなるので...
睡眠パターンが...
辞書検索 CGI の話。 フレームをわけて、候補を任意に選択できるようにするために、いままで使っていた NDTP ライブラリに API を増やすことが必要になりました。 結果としては、CGI に必要なものだけに機能をしぼった結果になったのですが。 「キーワード」から、複数の「辞書」を検索して、「候補」一覧を作成します。 この候補一覧から辞書を読みたい「候補の一つ」をクリックして、「辞書の内容」を表示します。 操作としては、「キーワード」を入力、候補一覧から「候補」選択という感じです。 そこそこ便利です。 でも、複数の人が使うということがライセンス的にできない(パブリックのなものを除く)場合が多いので、CGI のメリットがあるかな? キーワード入力後の検索を行って、候補一覧を表示する部分までは、こんな感じです。
決めうち部分がありますが、そのうち調整ということで。 辞書が手軽に検索できることって大切ですよね。 GUI の手軽さも大切だと思います。 なので、Web ブラウザとの組合わせはいいかなと思うのでした。 自分用の CGI って、作っています?移動しました
そろそろ...
辞書検索。 CGI の方がいいところは、参照がある場合に、one click なことです。 私が作成した Emacs での検索の場合、そこまでは手軽ではありません。 汎用的な方法がひとつあって、その方法で逃げてしまえるので、カーソル移動でそのまま検索は実現していないのでした。 CGI の場合は、その辺もカバーしたので、辞書を追いかけるのはなかなかいいかも。 読みものとして。 最初と違った意見ですけど。 要求によって、必要なツールを使うということで。 作成してよかったという感じです。
グループミーティング。 なんか? うーん。 中途半端です。 あれじゃ、だれもやるっていえないなぁ。
大雨。 すごい降りです。 自然災害は、予想が難しいですが、気象情報はもっとリアルタイムに公開されればいいなと思います。 いまの状況はどうなっているか? 一時間前の情報では遅すぎませんか?
あーん、アップし忘れ。
ruby-1.6.0 2000-09-12 です。 ほとんど、本物?
Tue Sep 12 16:02:20 2000 Yukihiro Matsumoto <matz atmark ruby-lang.org> * stable version 1.6.0 released.
今日も雨ですね。
朝、でかけるときには降っていませんでした。 すこし歩いたら大降り。 あっというまにグシャグシャ。 あんまりすごいので戻ってきてしまいました。 ということで、会社にはゆっくり出社。 ふぅ。
会社の帰り。 同僚とカレー屋さん。 おいしかったし、おもしろかったし。 いい感じ。 プログラムをつくることって、やっぱり楽しいよね。 うんうん。
「 Ruby の grep 」 の話。 オプション「-v」がありませんでした。 使おうとして、「あれ?」って感じで。 インプリメントは簡単なので、すぐに。
辞書検索。 Emacs 上も自作です。 当時? 私が試したものは、複数の辞書を網羅的に検索してくれるものはありませんでした。 なので、自作なんです。 検索自身は、Ruby のスクリプトが実施して、結果を buffer へ。 私のパターンなんですが、Emacs Lisp はよくわかっていません。 なので、コマンドを実行してそれを buffer へ入れちゃうのです。 検索に便利なように、「単語」は C-% とかにわりあてています。 あとは、region を探すように。 これが汎用検索だったりします。 辞書は、いろいろ入っています。 「辞典盤」の古いものと、500 円の「マイペディア」(雑誌付録)に ASCII 2000/5 付録の「フリーの辞書」などです。 一気に複数の辞書を検索して、その結果を確認するので、なかなかいい感じです。 Emacs Lisp で、便利に使っているもう一つが a2ps を buffer の内容に送り込んで印刷するものです。 これ、半角カタカナを全角に変換してから送るとかやっていて、どの buffer でも使えるのでとっても便利。 あ、もう一つ。 汎用へッダ生成 Emacs Lisp もあります。 テンプレートファイルを用意しておいて、buffer のタイプやファイルの拡張子でへッダ部分を生成します。 楽ちん環境実現 Emacs Lisp ですね。 この辺も紹介したいところなんですが、けっこうわかっていない私が書いた Emacs Lisp なのですごいはず...
辞書検索 CGI の話。 こんなところに書いて? フレーム用の HTML です。 ここが入り口。
で、CGI は次のような感じです。 私的には、フレーム部分も CGI を呼ぶだけでつくりたいところなのですが、とりあえず。<html> <head> <title>DIC (Japanese)</title> </head> <frameset rows="10%,*"> <frame name="welcome" src="/cgi-bin/dic.rb"> <frameset cols="20%,*"> <frame name="search"> <frame name="result"> </frameset> </frameset> </html>
#! /usr/local/bin/ruby
# /home/tetsu/src/ruby/cgi/dic.rb
# Created: September 10,2000 Sunday 02:50:23
# Author: tetsu(WATANABE Tetsuya)
# $Id: dic.rb,v 1.5 2000/09/12 13:37:48 tetsu Exp $
# usage:
require 'socket'
require 'cgi-lib'
require 'nkf'
class Ndtp
RCS_ID = %q$Id: dic.rb,v 1.5 2000/09/12 13:37:48 tetsu Exp $
def ck_ndtp_type
send 'v' + "\n"
$_ = recv
@ndtp_type = if /ndtpd/; 'ndtpd' else 'dserver' end
end
private :ck_ndtp_type
def user_auth(name) # name のチェックは?
send 'A' + name + "\n"
while $_ = recv
case $_
when /^\$A/
return
when /^\$N/
@ds.close
STDERR.print 'dserver: not authentication', "\n"
exit 1
end
end
end
private :user_auth
def dic_get_list
send "t\n"
while $_ = recv
break if /^\$\*/
no, dicname, dic = split
@dic_no[dic] = no
@dic_name[dic] = dicname
end
end
private :dic_get_list
def cmd(cmd)
send cmd + "\n"
$_ = recv
if /\$\*/ then true else false end
end
private :cmd
def send(msg)
@ds.print msg
end
private :send
def recv
@ds.gets
end
private :recv
def dic_select(dic)
d = if @dic_no.key?(dic) then @dic_no[dic] else 0 end
unless cmd("L#{d}")
STDERR.print "Jisho set failed\n"
@ds.close
exit 1
end
@dic = dic
end
private :dic_select
def get(dic, pos)
dic_select(dic)
ret = ''
send 'S' + pos + "\n"
while $_ = recv
break if /^\$\$/
next if /^\$1/
ret.concat($_)
end
dic_select(0)
ret
end
def initialize(host = 'localhost')
@dic = ''
@dic_no = {}
@dic_name = {}
@ds = TCPSocket.open(host, 'ndtp')
@ds.sync = true
ck_ndtp_type
user_auth((ENV['USER'] || ENV['LOGNAME'] || 'noname') + '@' + %x{hostname}.chop)
dic_get_list
end
attr :dic
attr :dic_name
def close
send "Q\n"
@ds.close
end
def entry(dic, word)
dic_select(dic)
ret = ''
dup_ck = {}
for cmd in
if @ndtp_type == 'ndtpd' then ['a'] else ['k', 'a'] end
cmd.tr!("ak", "AK") if /^\*/ =~ word
send 'P' + cmd + word + "\n"
count = 0
while $_ = recv
break if /^\$\$/
if /^\$\?/
STDERR.print "bad argument\n"
return nil
end
next if /^\$0/
chomp!
if count % 2 == 0
ret.concat($_ + ' ')
else
unless dup_ck.key?($_)
ret.concat('→' + @dic + '<' + $_ + ">\n")
dup_ck[$_] = true
end
end
count += 1
end
end
dic_select(0)
ret
end
def dic_list
@dic_no.keys
end
end
def welcome_page
CGI::print {
CGI::tag("html") {
CGI::tag("head") {
CGI::tag("meta",
{"http-equiv"=>"Content-Type",
"content"=>"text/html; charset=ISO-2022-JP"}) +\
CGI::tag("base", {"target"=>"search"}) +\
CGI::tag("title") {"cgi-bin dic.rb"}
} +\
CGI::tag("body",
{"bgcolor"=>"#e0e0e0",
"text"=>"#0f0f0f",
"link"=>"#0000ff",
"vlink"=>"#000080",
"alink"=>"#ff0000"}) {
action_script = if ENV.key?('REQUEST_URI') then ENV['REQUEST_URI'] else $0 end
CGI::tag("form", {"name"=>"DIC", "action"=>"/cgi-bin/dic.rb", "method"=>"GET"}) {
CGI::tag("strong") {'word:'} +\
CGI::tag("input", {"type"=>"text", "name"=>"word"}) +\
CGI::tag("input", {"type"=>"submit", "value"=>"Submit Query"}) +\
CGI::tag("input", {"type"=>"reset", "value"=>"Clear"})
}
}
}
}
end
def search_page(cgi)
word = (NKF.nkf('-e', cgi['word']))
ndtp_msg = ''
ndtp = Ndtp.new
ndtp.dic_list.each do |dic|
ret = ndtp.entry(dic, word)
unless ret.size == 0
ndtp_msg.concat('<h3>● ' + ndtp.dic_name[dic] + '</h3>')
ndtp_msg.concat(ret.gsub(/^(.+?) →(.+?)<(.+?)>$/) {
a, b, c = $1, $2, $3
a = a.sub(/</, '<').sub(/>/, '>')
"<a href=\"/cgi-bin/dic.rb?dic=#{b}+pos=#{c}\">#{a}</a>"
}.gsub(/\n+/, '<br>'))
end
end
ndtp.close
msg = NKF.nkf('-jZ', ndtp_msg)
CGI::print {
CGI::tag("html") {
CGI::tag("head") {
CGI::tag("meta",
{"http-equiv"=>"Content-Type",
"content"=>"text/html; charset=ISO-2022-JP"}) +\
CGI::tag("base", {"target"=>"result"}) +\
CGI::tag("title") {"cgi-bin dic search"}
} +\
CGI::tag("body",
{"bgcolor"=>"#e0e0e0",
"text"=>"#0f0f0f",
"link"=>"#0000ff",
"vlink"=>"#000080",
"alink"=>"#ff0000"}) {
msg
}
}
}
end
def result_page(cgi)
dic, pos = cgi['dic'].split
pos.sub!('pos=', '')
ndtp_msg = ''
ndtp = Ndtp.new
ndtp_msg = ndtp.get(dic, pos).gsub(/<([\da-f]+:[\da-f]+)>/,
"(<a href=\"/cgi-bin/dic.rb?dic=#{dic}+pos=\\1\">参照</a>)")
ndtp.close
msg = NKF.nkf('-jZ', ndtp_msg)
CGI::print {
CGI::tag("html") {
CGI::tag("head") {
CGI::tag("meta",
{"http-equiv"=>"Content-Type",
"content"=>"text/html; charset=ISO-2022-JP"}) +\
CGI::tag("title") {"cgi-bin dic search"}
} +\
CGI::tag("body",
{"bgcolor"=>"#e0e0e0",
"text"=>"#0f0f0f",
"link"=>"#0000ff",
"vlink"=>"#000080",
"alink"=>"#ff0000"}) {
msg
}
}
}
end
cgi = CGI.new
if cgi.size == 0
welcome_page
elsif cgi['word']
search_page(cgi)
elsif cgi['dic']
result_page(cgi)
end
print "\n"
わりと手軽なんで、NDTP が使える方は、試してみてはいかがでしょう?
外字のサポートはまったくありませんけど。
w3m でも辞書検索できて便利ですよ。
余談ですが、CGI は、CGI だけで完結している方が、私は好きなのです。
今回は違いますが、そのうち?
サポートするための HTML があると、あとで CGI と HTML がバラバラになってしまうと動かないとか...
そろそろ、その二?
CGI と Namazu とか。 最初は、自分用として作ったりします。 よければ、他の人にも使ってもらえるように。 CGI や Namazu などは、個人用として使っていない人もいるように思いますが、とても便利です。 Ruby のマニュアルなども Namazu しておけば便利ですよ。 CGI もちょっとした GUI を作ることが必要なときに利用できますし。 Web ブラウザを利用できるということは、次から次へ、追いかけるときにいいですね。
ハリーポッター。 朝、本屋さんの平積みスペースに、空きがありました。 あれ? と思って、帰りにみたら、入っていました。 それも「六刷」でした。 え? 別の本屋さんにいったら、かなりの数が入っていて、それは初版でした。 予定日前日ではありますが、書籍ってそんな感じですね。 東京は一日早かったりしますから。 原書の方は、発売日をすべての販売店でそろえたそうですね。 すごい人気でしたし、フライングは「なし」ということらしいです。 日本って、どんな感じなんでしょう? そこまで統制するほどにはなっていないのでしょうね。 買ってしまったので、読んでしまいそう。 ハリーポッターは、情景が目に浮かぶようないい本です。 かなり、イメージしやすくていつのまにか、ストーリーのイメージが残っています。
Linux の kernel をあげる。 困ったことはないのですが、USB などがもっとよくなっているかもしれないので。 今日気がついたのですが、Vine Linux 2.0 の updates に kernel-2.2.16 も入っていました。 私は Vine Seed を利用しているんですが、updates のほうがいいかも?
なにかやりたいことないの? コンピュータ関係の会社に就職して、なにも興味がないとしたら? 続くかな? ハマる要素があれば、この世界にハマっていくと思いますが、どうも違うタイプみたい。 毎日つらいんじゃないかと、心配してしまいます。 どうも、趣味の人らしく、自分の趣味を持っているようなんで、それはそれでいいんですけど...
連休ですね。
いつもなら何度か目が覚めて眠りが浅いのですが、今日は気がつくと朝。 久しぶりの感覚。
組織のミーティング。 やろうとしていることの、やり方がいまいちなので、「それでいいの?」って聞いてしまいました。 「それでまわるの?」とも。 形だけ? みかけだけ? 目的はあげているけど、手段が...
ZIP を忘れる。 朝、せっかく入れておいたファイルがあったのに忘れてしまって。 情けないなぁ。
システム中の持ち主不明ファイル。 uid が直接表示されてしまうファイルってありますよね。 それをみつけるスクリプト。 Ruby とシェルと。 まあ、みつけるだけで、それ以上はなにもしないのですが、けっこうありました。 root で tarball を展開するのって...
#! /usr/local/bin/ruby
# /home/tetsu/src/ruby/toolbox/find_nonuser.rb
# Created: September 14,2000 Thursday 14:21:54
# Author: tetsu(WATANABE Tetsuya)
# $Id: find_nonuser.rb,v 1.2 2001/03/21 04:58:37 tetsu Exp $
# usage:
require 'find'
require 'etc'
uid2n = {}
bad2n = {}
Find.find(ARGV.shift) do |f|
begin
lstat = File.lstat(f)
rescue
puts f
end
Find.prune if lstat.symlink? ||
(lstat.directory? && ! lstat.readable?) ||
f == '/proc' ||
f == ENV['HOME'] ||
lstat.owned?
# エラーじゃないときも出力する?
next if uid2n.key?(lstat.uid)
if bad2n.key?(lstat.uid)
puts "#{f} #{lstat.uid}"
else
begin
uid2n[lstat.uid] = Etc.getpwuid(lstat.uid).name unless uid2n.key?(lstat.uid)
rescue ArgumentError
puts "#{f} #{lstat.uid}"
bad2n[lstat.uid] = lstat.uid
end
end
end
やっぱり? 使い続けるって大切ですよね。 自分で作ってそれを使い続ける。 よく使うコマンドだからこそ、いい感じ? こうして経験値を増やしていけばいいと思うのは、私だけかな? 「どこにも存在しないから作る」というのも、とってもいいことですよね。 「同じだけど自分で作る」というのも、いいことだ思ったりするのでした。 「きっかけ」は、いろいろだけれど、とりあえずは「作る」ということを楽しみましょう! あ、「書く」ってことも? 最近の私の課題だったりします。
気がつくと...
ハリーポッター。 読んでしまっていました。 一気に読んだというわけではなくて、とぎれとぎれだったのですが、昨日の夜から、読んで寝て、読んで寝てと。 気がつくと読み終わっていて、お昼過ぎ。 とっても、楽しかったです。 ああ、次が読めるのは来年なんですね...
mailbox の話。 現在 Emacs/cmail を使っています。 フォルダ分けなどは、自動化していますけれど、それでもトラフィックが多いものはたまってきます。 なので、月単位とかでまた分けるようにしています。 フォルダに入れない INBOX 上でたまったものも月単位で。 ちゃんと分けた方が便利かなと思いつつ、「時間感覚」でのフォルダ分けもそれなりに便利なので。 技術的な情報は、フォルダで分けられていると便利ですけど、仕事関係だと数か月前の E-mail って、使わないですから。 最近は、検索も Ruby で書いた grep で便利になったので、あんまり入れ場所は気にしなくてもいいかも? とりあえず、普段の動作が軽く感じる程度にしておけばいいかなと思うのでした。
PHS の電波? かなり変動があります。 PHS 端末の性能のためか、近くのアンテナが不安定なのか。 しばらく使っていないアンテナは、自粛モードに入ったりするようにみえるんですが。 または、定期的にお休みするとか。 複数のアンテナがカバーしあっているところはいいのですが、そうでないところは...
ゾンビ(zombie)の作り方。
#! /usr/local/bin/ruby
# /home/tetsu/src/ruby/eater/proc.rb
# Created: September 15,2000 Friday 21:23:02
# Author: tetsu(WATANABE Tetsuya)
# $Id: proc.rb,v 1.3 2000/09/15 12:40:50 tetsu Exp $
# usage:
1.upto(10000) do |i|
begin
if Process.fork.nil?
exit
end
rescue Errno::EWOULDBLOCK # EAGAIN
p i
exit 1
end
end
sleep 10
プロセステーブルを埋めてしまうのが目的なんですが zombie を作っています。
いくつプロセスが作れるか?
確認するためだったりします。
ちなみに、リミットになると Errno::EWOULDBLOCK になるんですね。
Linux は EAGAIN と同じなんですね。
最近はそうなのかな?
大雨。 1970 年代では、100mm/h の雨というのは、3 回だけだったそうです。 2000 年、一年だけですでに 15 回だとか。 備えるという意味では、想定する規模がかなり大きくないとダメのようです。
天候不安定ですね。
Linux で音。 ALSA のサポートカードを調べてみては? doc/SOUNDCARDS には、次の記述がありますよ。
configure して make install して /etc/conf.modules を書けば OK ですよ。ID: ESS Solo-1 ES1938 IF: MIXER,PCM
BSD magazine はいいですね。 Tech Linux がどうも休刊? 廃刊? になったような話を聞いたのですが、そうなると残るのは? 意味不明...
久しぶりに NIFTY していたり。 読んではいたのですが、ほとんど書けずにいました。 NIFTY では、Ruby 関係の話題がすくないですね。 Win 関係だとフォローできないから、なおさら書けずにいるんですが。
ソケット(socket)と SIGPIPE の確認。 うーん、なかなか? C でプログラムも書いてみたんですが、「ふーん」って感じです。 ソケットで SIGPIPE が起きるときは、相手が close(2) してしまっているときなので、プロトコルがあっていない場合ですね。 知識としてはしっていたのですが、自分でスクリプトやプログラムを書いて確認したことはありませんでした。 ソケットする場合は、あれこれ前提知識がやっぱり必要? サクサク書いていて問題が起きない場合はいいのですが、起きたときにどうして起きたか? を、みつけるのに役立つ感じの知識ですね。 「Stevens 先生」の本、とっても参考になって、ここぞというときにはこれがないと困ったりするんですが、どうも廃刊? らしくて。 出版社の都合もあるんでしょうけど、なんとかなるといいのに。 いい本はいい本としてちゃんと宣伝することが必要だと思ったりするのでした。 こういう本を読んでプログラムを書いていれば、システムコールなどのレベルでのトラブルはすくなくなるはずなのに。 プログラマを多く抱えるプロジェクトリーダは、こういういい本をちゃんと知っている人であってほしいかも?
シグナル(signal)の話。 いま、System 7 のころのシグナルモデルをそのままというシステムってあります? HP-UX の signal(2) くらいしかないのかな? HP-UX のものは System III のインプリのようなのです。 BSD 4.2 のインプリメントの signal(2) も -lBSD 指定を行えば使えます。 でも、普通は -lBSD しませんから、「あれ?」ってことに。 sigaction(2) すればいいのですが、よくない? 参考書とかが signal(2) の注意をあまり書かずに済ませていたりして、それがそのまま。 アプリケーションでシグナルを使うときには、自分の考えている動きを実現できるか確認してほしいです。 シグナルになれていないかたは特に。 あ、システムに負荷をかけることをお忘れなく。 System 7 系のシグナルモデルで、再定義をしていたりすると、負荷やシグナルを送る頻度などで動きが...
夕方、食べ物の買いだし。 かなり雨が降っていて、上着の方も濡れてしまうのでした。 タイミング悪かったかな? 朝から食べていなかったのでお腹空いていたし。 反動で買いすぎ...
お休みって早いですね。 あっと...
天候が悪くて本屋さんに行けませんでした。 残念だなぁ。 連休だったのに。 あの、大雨。 台風だったんですね。 きていたのはしっていたのですが、それがそばを通っていったというのはしりませんでした。 すこし納得。 そろそろ秋になるのかな。
jcode.rb の話。 漢字でも String#tr などは、ちょっとした確認では jcode.rb を使わなくても動いているようにみえてしまいます。 気がつけばいいのですけどね。 Ruby には jcode.rb があるので、必要なときに使われるといいのですが。
オリンピック。 参加して頑張っている人はいいのですが、参加できなかった人は? 参加できる実力があった人は、参加できればよかったのに。
月曜日かぁ。
仕事関係は忙しくなくて平和というか、これでいいのかなという感じ。 私のいる部署が暇だということは? ビジネスの形態が変わってきたのかな? それとも? 別の会社では、同じような職種の求人があったから、業界全体が暇ということではなさそう? うちの会社のやり方が、うちの部署も同じ社内なのに気がつかずに、変わっていったということかな? うちの会社と、求人している会社の違いが、この辺にあったりして?
コンピュータでものしり? どこかの番組で、「コンピュータを使うようになって、人はものしりになりました。」とかいっていました。 コンピュータを自分の知識を広げるためにうまく活用している人ってどのくらいいます? たしかに、Web で検索って便利ですけど。 いろいろな使い方をしている人がいるとは思うのですが、知識を広げる系ってそれほど多くないような。 こういうのがうまく行くとしたら、仕事に使わないのはもったいないよなぁ(ここに落とす?)。
書きたいことを書く。 って、難しいですね。 書きたいことあるんですが? なかなか。 時間的な問題もそうですけど、タイミングが難しいというか。 うまくまとめることができればいいんですが。 スクリプトを書く方は、それはそれで楽しくていいんですけどね。
定年。 って、考えます? そんな先のことはよくわからないですけど、食べるために働くんでしょうね。 やっていけるかなぁ。 働くって、生活のためには必要なんですが、生活の基盤が別にできれば、やりたいことがしたいかな。 食べていければ、ボランティアでもいいので、スクリプトを書いて使ってもらえたら、それでいいかなとか。 ギスギスしたビジネスではなくて、どこかに役立ててもらえるようなものに...
祝! ruby-1.6.0 リリースです。
タブの展開しています? 「本日のお題」とか、シリーズにしたりして? ネタになるかな? 私が使っている方法です。
class String
# perlfaq4.html#Data_Strings
# 1 while $string =~ s/\t+/' ' x (length($&) * 8 - length($`) % 8)/e;
def tab_expand(tab_size = 8)
1 while self.sub!(/\t+/) { ' ' * ($&.size * tab_size - $`.size % tab_size) }
self
end
end
依存関係の依存関係。 表面的情報は、階層として一レベルの依存関係しかありません。 しかし、依存している「先」にも依存関係があります。 これを追いかけ回して。 単純に追いかけていくと、ループに入ったりするので、終了判定をちゃんと加えて。 こういう情報は、本来実施したいことを手軽に扱うことができるようにするためには必要です。 でも、その作業に注意を促すためには、逆効果かもしれません。 あまり便利にすると、情報のもとを確認しなくなるかもしれないので。 あればあれで便利なんですけど、確認しないでそのまま使われるとまずいかな。 実装は、GDBM を使った単純な DB です。 依存関係の表面的情報(一階層だけということ)だけ持たせます。 このほかに、該当するものについて最新はどれか? という情報も持っています。 これらの情報を組み合わせて、依存しているもの「すべて」を「最新」のものでリストアップします。 便利すぎ? って思うのは苦労したことがある人だけかな。 該当件数が多くなると、人の手では大変なので、やっぱり必要なツールかも。 便利なものがあって、それがどう実装されているか? 興味を持つといいと思ったりするのでした。
睡眠不足。 条件判断とかがちゃんと書けずに、単純な if 文でも悩んでしまいます。 まずいなぁ。 こういうときは、さっさと寝るんですが、すぐ目が覚めてしまって。 あれれ。
ないしょですが? ruby-1.6.1 2000-09-20 です。
ようやく涼しいというか、過ごしやすいです。 よかったな。 気象関係は、今後いままでに起きなかったようなことが起きてくるのでしょうか?
最近なんだかわからない話題がでてきていましたが、あれは OS のパッチ情報についてなんです。 パッチは、依存関係があって、それを解決しないと入れることができません。 依存関係は、古いパッチを対象にしてあったりするので、最新のパッチに入れ替わっているのを簡単に確認もしたいのです。 一つ二つのパッチならまだいいのですが、10 個くらいパッチの依存関係を手作業でみつけるとなるとなかなか大変です。 パッチのデータベースのようなものもあるのですが、古くから使われている catalog ファイルを自分で処理して作業しています。 キーワードで検索する CGI は、ずいぶん前から使っていました。 最初自分で使うために作成した CGI ですが、そこそこ便利なので固定的な利用ユーザがつくようになりました。 でも? 私の近所の人は使っていないようなんですけどね(便利なのに)。 最近、「え?」ということもあり自分のためというよりは利用ユーザのために、最新の情報をだすことと、依存関係についての情報をすぐにわかるようにしました。 あまり便利にしてしまうと、情報を読まなくなりそうなので、心配ではあるんですけど。 依存関係の部分は、別だしの CGI にしました。 もともとの CGI に組み込むことを考えたのですが、独立していても使えそうなので。 依存だけ調べたいときは、URL に引数を渡すと簡単に。 CGI の URL をみて、いろいろ自分で活用するような使いかたをしてくれるといいんですけど、どうもそういう使い方をする人はいないみたいなんです。 こういうの残念です。 わざわざ GET にしているのになぁ。 ドキュメントを Web ページとして書いて、それに組み込めばうまく使えるのに。
CVS は ruby-1.6.1 2000-09-21 です。
いろいろ整理しないと...
Thread をすこし。 排他制御って必要なものですね。 排他制御なしで試してみたのですが、まれにですがやはり結果がおかしくなりました。 ということで、排他制御が必要なことを再認識。 あたりまえですけどね。 これで OK という基本パターンを試している感じかな。
仕事関係。 なんか、トラブルみたい。 「それでいいのマネージャさん?」とか思うくらい、依頼もとのマネージャさんが現状把握していないままこちらの部署へ投げちゃっています。 こちらのマネージャさんも、受けるならもっとちゃんとしてほしいぞ。 トラブル処理は、うちの仕事じゃないもんね! (よく依頼あるけど) この件、受けるとお休みがなくなってしまうらしいので、受ける元気がないなぁ。 それにしても、表面的に伝わってくる「〜ができない」は、ホント基本機能だから、設定が悪いとか、そういうレベルなのに。 どうして、こんな基本機能の話を、カットオーバを目の前にしてやっているの? どこかで止まっていて解決しないからこちらへきたのかな? 基本機能なのに?
ミーティング。 決定権を持っている人に決断してほしいって、ミーティングを開催したんだけど、結果あやふや。 それでいいのかぁ。 情報収集させてあげたのにぃ。 ぶつぶつ。
CVS は、ruby-1.6.1 2000-09-22 です。
週末も天気がいいといいなぁ。
最近は gzip フォーマットで送ってくる HTTP サーバーもあるんですね。 どういう HTML が送られてくるのか、確認してみたくて。 サーチ結果を Sidebar に反映される理由がしりたくて。 HTTP や HTML は、特別なものはないような気がするので、単純にブラウザの機能で相手に合わせているだけにみえるのです。 自分で使えたら便利そうなんですけどね。
トラブル。 やっぱりというか、ちゃんと問題点を把握していないマネージャさんが、間違った情報を持って要求をだしていました。 「大丈夫?」って思ってしまうんですけどね。 物理設計の問題のようなので、システムの構成を決めた担当の人とデータベースの物理設計担当者を含めて構成検討が必要に思います。 ただ、時間がないので、いまのタイミングに構成変更はできないと私は考えています。 私はタイプ的に、お客様のシステムをガンガン「変更」するのは避けています。 世の中には、ガンガン構成を変更していく人もいるんですが、私の場合はそういうことができません。 私の場合は、先に現象の確認をして、変更はちゃんと前準備を行ってからでないと。 お客様に対して、なにをどうするかを伝えて、同意を得てからでないと手をつけられません。 お客様がその場で、すぐに「結果」だけを求めている場合でもです。 結果だけを求めているような場合でも、すぐに変更をはじめないのは、お客様自身が「結果への影響」を考慮できていない? と思っているからなんです(おいおい)。 データベースなどは、オプチマイザの動作などもあり、一つの問題を解決しても他への影響なども考えられます。 本番運用を目の前にしているとか、本番運用中である場合、その運用が可能であるかの影響確認がとても重要です。 それを行わなくては、到底できないと思います。 バランスが崩れたら、いま以上に悪くなる場合もありますから。 経験が増えてくると、効果の方もある程度は想像できるので、「その場で対応する」ということもできてしまいます。 でも、効果の範囲がお客様の使っているアプリケーションを含んだ全体になると、なかなか難しいのが現実だと思うのでした。
パフォーマンスベンチマークの場合は、ちょっと違っているんですけどね。 本番環境ではないので、最悪入れ直しが可能ですから。 時間内に問題解決ができるか? がポイントで、あれこれ試してしまいます。 しめ切りまぎわの構成変更は、かなり悩みますけど。 新しいディスクなど、経験がすくないものについては、こういう構成変更を含めた確認が必要になったりもします。 事前にディスクの特性を確認できている場合はいいのですけど。
会社の帰り。 同僚と沖縄料理のお店へ。 とってもおいしかったし、楽しかったです。 同僚はこのお店のおなじみさん。 お店の人といろいろ話して時間の過ぎるのを忘れてしまうような、気がつけばいい時間。 ほんと、あっというまぁ。 最近話題になっていて食べてみたいと思っていた美味しいマンゴーも食べることができて、とってもよかったです。 いいなぁ。
やっぱり雨みたいですね。
Ruby 1.6 については、使い続けていたので移行で引っかかることはほとんどなのです。 たぶん、ややこしい使い方? をしていなかったというのが理由かもしれませんけど。 スクリプトも見直しをして、調整したいと思いつつ。 ややこしい使い方かぁ。 私にとってはよくわかっていない部分ってまだまだたくさんあるんですが、あんまり困っていなかったりして?
日本、シドニーに行けませんでしたね。 おしいところがたくさんあって...
本屋さんへ。 雑誌とコミック。 久しぶりに洋書も。 買っても読めないので洋書を買うのはやめていたんですが、Harry Potter のペーパーバックがあったのでついつい。 翻訳は、家族に送ってしまったんですが、記憶があるうちに読んでみようかなと思って。 いままで、コンピュータ関係のものはけっこう買ったりしていました。 参考になるものがどうしてもほしくて。 役立つものもあるんですが、ちゃんと読むとなるとなかなか大変なので、最近買っていないのでした。 うーん。 あ、そういえば昨年「The Practice of Programming」買ったけれど、翻訳早くでないかな。
土曜日が祭日。 土曜日って、必ず休みとは限らない、週休二日のところばかりではないためか、代休ありませんね。 あるといいのになぁ。
今日の天気は? ほしい CD あるのですけど、探しにいきたいな。
体調が? 暑かったころはけっこう体調がよかったかなと思っていたのですが、気候の変化に弱いのか、ちょい調子が悪いです。 私の場合にはホルモン関係の調整が自動ではできないためかも。 薬で補充しているので、必要なときに多くとか、不要なときにすくなくとかができないんですよね。 ということで、寝てばかりでした。 よくあれだけ寝ていられるものです。 まずいですね。
Ruby の何冊目かの本。 私も書く予定になっています。 ruby-list などで、要求を聞いてみるのもいいかなと思ったりしています。 でも、私なりに書くしかないかな? とも思ったり。 ここの Web で書いているようなことをちゃんとまとめて本にするのも一つの方法ですよね。 できるだけ実例を多くして、便利なクラスを使って、自分でもすこしクラスを書いたり追加したり。 これだけでもかなりの応用が可能になると思うのです。 Ruby をはじめるきっかけになるような話題を。 そして、ある程度身につくまでに、使い続けられるような課題とか話題とかを提供できるように。 ここの Web でも書いているように、普段使っているコマンドなども自分で作ってみる的アプローチ。 まあ、普段使っているものをわざわざつくるということに、あまり興味を持てないといわれると終わっちゃうんですけど。 現状は、サンプルとしてのスクリプトをためている段階なのです。 まだ、文章の方は書けていません。 私の書くアプローチとして、スクリプトを先に配置して、それの間を文章で埋めていきたいと思っているのでした。 こういう方法を考えたのは、この本の原稿が、書いている途中でオープンになる予定なので、順番通りに書かなければならないためです。 私的には、書きたいところから書くというのが一番いいのですが(先に応用編を書きたくて...)、そうもいかなくて苦肉の策だったりします。 書く方は、ペースがつかめれば書けるつもりになっているのですが、依頼があってからもう二か月も文章書けずにいます。 スクリプトはけっこうたまってきているんですけどね。 入門用ということ、出版社としては後発でもある程度売れてほしいと思っているでしょうし、さてさて? Linux(UNIX) をあまり全面にだすと Win ユーザが敬遠するかな? 私が書く程度のものは、かなり Win でも動くと思うんですけどね。 ここに、経過を書くと、よくないかなとか思いつつ。 ちなみに、予定ではさっさと書いてさっさと本にしたいという当たり前な要求がでています。 私は、上記のような状態で心苦しく思っています。 という感じでした。 また、ここの話題にしちゃいますね。 ruby-list で本の話題がでちゃったのでいいかなと思うし? そうそう、スクリプト言語的アプローチの本ということで、よろしく!
CVS は ruby-1.6.1 2000-09-24 でていました。 早朝に気がついたのでした。 で、CVS ruby-1.6.1 2000-09-25 も。 なんか遅くなっているんですけど。 あ、なおっていました。 9/26 早朝の CVS で。
あ、月曜日。 いろいろできなかったし、いろいろありそうだし。 うーん。
関数の戻値。 返したり返さなかったり。 どうなるか? ってことは、C の実装の話をすこししっているだけで容易に想像できるんですが、そういう知識を前提にしてはいけないのですよね。 むかしむかしのコンピュータ雑誌には、C のポーティングの話とか何度も載っていたように思うのですけど、いまはないですものね。 あ、私がそういうのによく引っかかっていただけかな?
JavaScript の Date#getYear() (という表記するのかな?) は、IE と Netscape では違うんですね。 いままでずーっと、IE を使っていなかったので気がつきませんでした。 IE は 2000 と返してくるし Netscape は 100 と。 3900 年ってなに? って思ってしまいました。 100 と返してくる Netscape に対して文字列「19」を加えて扱っているサンプルなんかも世の中にあって、2000 年問題がこんなところにもとか思うのでした。 もうすぐ 2000 年というときに出版された本だったりするんですけど。 同じ問題が ftpd にもあって、いまだに入れ替えられていないシステムも存在するようですね。 私は net/ftp.rb にパッチをあてて対応していたりします。
仕事関係。 「トラブル」という話だったんですが、依頼もとがちゃんと状況を把握していないので差し戻し。 すくなくてもトラブルならちゃんと依頼もとが状況を把握していないのはまずいでしょと、返してしまったのでした。 時間がないのにこういうことをしているのもなんですが...
帰ってきてすぐ寝てしまったのでした。 イマイチな感じ。
コンビニのケーキ。 お腹が空いていて、買ってきて、食べようとしたら「虫」。 はじめ、包装の外に小さなハエがいるのかなと思ったら、中に。 「どこから入ったんだぁ」とよく包装をみてもすぐに入れそうなところはないので工場かな? あーあ、食べる気分になっていたのでガックリな感じ。 ぶぅ。 最近いろいろ話題になっているのに、「うちは大丈夫」ってみんな思っているんだろうな、と感じたのでした。 しらせたほうがいいのかな?
オリンピック。 ソフトボール。 すごいですね。 結果がわかっていたので、安心してみていられたんですがそれでもハラハラ。 LIVE では、とてもみていられなかったかも。 私って、どきどきハラハラゲームはけっこう弱くてみていられなかったりします。 LIVE ならちゃんと応援すればいいのにね。
CVS は、ruby-1.6.1 2000-09-26 です。
9 月が終わってしまうぅ。
いまのうち? に RD 関係を。 rdtool-0.6.5 racc-1.2.4 optparse-0.7.5 で。
HTML 関係のツールを整備しないと。 本のような大きなドキュメントを書く場合、論理構造も大切ですし、修正による反映も自動化できるようにしたいです。 Makefile を使用し、インデックスなども自動生成したいし、この辺のツールも整備が必要ですね。 私的には、手作業はできるだけすくなくしたいので。 とりあえず、書き進めていかないと、具体的にどうするかというのがみえてこないかな。 HTML を 2 パスにする? それとも...
仕事関係。 かなりいろいろやりとり。 今月来月は、うちの会社としていろいろある月なので。 E-mail のトラフィックもすごい感じ。
ruby-1.6.1 がリリースされました。
あ、今日のスケジュールまずいぞ...
仕事関係。 巨大ディスクのセミナーと、そのほかもあってスケジュールがなかなか。 ディスクの特性について、突っ込みを入れたかったのですが肩透かし。 「資料」だけで、実際に触っていない人が説明しているのでした。 あぅ。 まあ、情報がまとまっただけでもよかったんですが。 触りたいなぁ。 自分であれこれ試してみたいです。 でも、自由に使えるような空き時間はなくて...
時間が解決するのかな? 周囲のメンバーと、いろいろなきっかけつくったんですけど。 でも、興味を持てないようです。 もう、指示通りに動いてもらうしかないのかなとこちらも悩んでしまいます。 作業をブレークダウンして、スケジュールを確認して、ちゃんと相談してねってお願いしても、これもうまくいかなくて。 自分から興味を持ってなにかをやるのと、ただいわれるままに進めるのでは全然理解度が違うと思うのです。 そのため、興味が持てそうなことを課題としてフォローしたのですが。 マニュアルを読むにしても、興味がないのに最初から読んでも全然理解できないですよね。 でも、興味があることがあって、「あれ?」って思うことがあって、それを調べたくてマニュアルを読むと違うと思うのです。 それができないと、コンピュータ相手にしているのって辛いと思うんですけどね。 きっぱり、「なにかをやりたいかと聞かれても全然わからない」っていわれちゃいました。 ふぅ。 本人も悩んでいるようなんですが、周囲もたくさん悩んでいたりするんです。
ってことで。 Ruby 触る時間もなくて(インストールしましたけど)、同僚とあれこれ話し合って帰りも遅くて。 にゃかにゃかなんです。 興味持てることあるといいのに、にゃ。 トロちゃん風?
仕事関係、今日はいろいろ、しめ切り。
むかしの同僚と朝まで飲みに。 集まったメンバーは、それぞれすごい。 ちょっと? たくさん? 癖のあるメンバーだけれど、「やれる」メンバー。 このメンバーなら、いろいろできるんだけどね。
自宅についたのが朝の 4 時。 ということで。
もう一寝入りする?
そのまま起きて、準備して会社へ。 わりと普通に? (ちょい大変) 仕事関係は、他部署とのやり取りが大変でした。 「よろしく」以外に情報がないのって、なぜ?
金銭感覚が違う世界。 たしかに最近、現金で都心のマンションを買うような人たちがいます。 こういう人たちは、いまの時代でうまくやっている人たちですが、ほんと感覚が違うと思うのでした。 昨日飲みにいったむかしの同僚は、そういう世界に入ったのです。 うまくまわれば、完全に変わってしまう世界。 彼はきっと成功するんじゃないかと思うのです。 いま一番動いている世界。 いいですね。
「 Ruby で grep 」 していますが、ちょい拡張。 ファイルが圧縮されていたり、「.tar.gz」だった場合に、拡張子に対応するコマンドを実行してその結果を grep するように。 「.tar.gz」は、中身ではなくてファイル名を、「.bz2」や「.gz」は bzcat や zcat を実行して。 ますます対象ファイルを「*」でも OK になるように。 自分の作業を便利にするっていいですよね。 このアイディアは、Perl でつくられている mg (歌代さん magic)というコマンドがあって、以前からあったものです。 mg で便利だなと思う機能はだいたい入ったので、もう mg を使うこともないかな? すでに使っていないのですけど。
Ruby で、めざすもの? 「日常の便利」かな。 あまり大きなものは作っていないですが、「あるといいな」をすこし。 作れるっていいですよね。 「作る」ということが楽しいことって気がつくといいのに。
「 ソースコードの version 一覧 」 も、ちょい拡張。 「日記」中のスクリプトを便利に。 クリックすると該当日にジャンプです。 こういう自分のための便利スクリプトって、作りためています?
10 月になっちゃいますね。 まだ、液晶の壊れたノート PC、修理だしていないぞ! まずぅ。
Ruby 日記よりむかし? の Web 日記。 というのがありました。 Web ページを立ち上げたころ、Linux や Ruby や Web ページの更新などを中心に書いていたんです。 ちょっと読み返してみたら、なつかしい。 ここでは公開されていないのですけど。 Web ページを持つようになったのは 1998/1 後半から。 当時といまとは URL も違います。 以前の URL ではカウンタが 53000 を越えるくらいまでいきました(98/5 - 99/11)。 いまのカウンタと合わせると 10 万越えるんですね。 ありがたいことです。 カウンタは、私のホームページ以下に最初にアクセスしたときだけカウントされるようになっています。 JavaScript で。 JavaScript を使わないようにしているとか、使えないとか、画像を表示しない場合にはカウントアップしません。 それでも、いまのような数字になるんですね。 実は私自身がカウンタはあまり好きではないのですが、書き手としてはやはりアクセスがあるか気になります。 もし、NIFTY がアクセスログを公開してくれるのでしたら、カウンタは必要ないのです。 どのページにアクセスが多いかというのもとても気になるのですが、これは情報をとることができないのです。 自分用の Web サイトが持てるようになったら、もっとアクセス情報を活用して、工夫したいところです。 以前公開していた Web ページで、移行していないものもあったりします。 Web ページベースのアクセス傾向がわかれば、どれを選択すればいいかわかりやすくていいんですけどね。 本関係とかは、持ってきたいのですけど、いまとなっては空白の期間が...
検索エンジン。 最近よく使うのは 「 http://www.google.com/intl/ja/">http://www.google.com/intl/ja/ Google 」 です。 けっこういい感じ。 もしまだのかたは試してみては?
この前の飲み会での話。 別のむかしの同僚さん。 最近連絡していないので気になっていたんですが、飲みにいったメンバーに聞いてみたら、元気にバリバリやっているそうです。 よかったよかった。 今度飲みに行こうね。
Ruby/Linux/Perl のカンファレンス。 なかなかよさそうなプログラムが多いです。 ごとけんさんも参加ですね。 いきたいなぁ。 三日間京都か、うーん。 Linux の応用で、ハンディキャップのある方に使ってもらうものとか、興味があります。 プログラムを見ると、参加したいものが重なっていて困ってしまう感じです。 Ruby 同士でも重なっているし、さらに...
会社の mail server が Exchange になるんだって。 POP と IMAP は使えるらしいけど。 ぶぅぶぅ。 いままで UNIX mail を使っているユーザは平和だったのに。 これからめんどうになってくるなぁ。 検閲が目的かな? (勘繰ってしまう) 最近そういう問題があって辞めさせられた人がいたけど、mail server の移行がはじまってから? まあ、mailing list 関係は UNIX mail のアドレスのまま使えると思うので、大丈夫とは思うけれど。 まさか、技術系の mailing list に文句つけないよね? エンジニアにとって不自由な会社って嫌だな。
カッコイイ。 スポーツしている人ってかっこいいなぁ。 すごい。
top コマンドの話。 Linux の top は TERM 環境変数を dumb にすれば、画面制御コードがでません。 HP-UX の場合は -f オプションでファイルへの出力が可能です。 これで、リソースを多く使うプロセスを一般コマンドから確認できますね。 こういうの大切と思うのですけど?
雨の中を本屋さんへ。 コミックを数冊だけ。 雑誌系もほしいのあったのだけれど、結局買わずに。 きっと、ほしいと思っている本はこの辺じゃ入ってきても気がつかないかも。 数がすくなすぎて。 久しくいっていないけれど、やっぱり書泉いきたいな。 ごぶさた。
いまいるオフィスビル。 雑誌コミック関係の編集部もあったりします。 このビル、夜 12 時には出入りができなくなるんですが、編集部があっても大丈夫なの? と思ったりしたんですがやっていますね。 私も仕事で 12 時ぎりぎりまで粘ったのが何日あったことか? (むかしの話) 徹夜は多くないですけどね(お願いすれば泊ることは可能なんですが)。 守衛さんとも仲よしになったんですけど、ここから来年には引っ越しです。 引っ越しってちゃんと段取りができる人がいないと大変なんですけど大丈夫か不安ですね。 最近、落とせないベンチマークという感じの仕事がなくなってしまって、遅くまでオフィスにいる必要がなくなっています。 平和といえば平和だけれど、やりがいのある仕事がねぇ。 遅くなるときは、調整とか状況確認とか、技術と関係のないところばかり。 なんでぇ?