2001年4月のn日記


過去のn日記


Generated by nDiary version 0.9.3.beta6

2001年4月1日(日)

zsh prompt

  zshの設定を変更した。

setopt prompt_subst
PROMPTCOLOR=31
PROMPT='%{PROMPTCOLOR=31+($PROMPTCOLOR-30)%7]m%}%#%{%} '
RPROMPT='%{PROMPTCOLOR}m%}<%U%n@%m:%~%u%{PROMPTCOLOR}m%}>%{%}'

2001年4月4日(水)

Java catch Exception

  例外の捕捉って一度全部catchした後、instanceofで関係ないのはthrowしなおすっていうのはダメ?


try {
   // InterruptedException と IOException が発生しうる。
} catch (Exception e) {
   if (! e instanceof InterruptedException && ! e instanceof IOException) {
      throw;
   }
   // 処理
}
魔道編

  セキュリティホール memoで紹介されていた。紹介されたのって魔道編だけ?


2001年4月5日(木)

2001年9月9日問題

  nifty:FC/MES/02/2998からのツリーで話題になってました。nifty:FC/MES/02/3007によると「2001年9月9日問題のネタもとのWWWページ」は「日立製作所 ソフトウェア&サービス」「[12/1] 西暦2001年9月9日以降に発生する問題のお知らせ」らしいです。

Ruby スクリプトの書き方(インデントなど)

  だいたいこういう方針でやってます。

RubyUnit

  通信やマルチスレッドと相性が悪くてなかなか使えなかったけど、初めて使った気がする。


2001年4月6日(金)

dot.rt.rd2rc

  mingw版だとOpen3でforkがNotImplementedErrorになって困るらしい。
というわけでTempfileを使って回避。
ついでにStringにメソッドを追加されるのもなんか嫌なので削除。


    f = Tempfile.new('rt_filter')
    f.print inn.readlines
    out.print(`ruby -S rt2 -r rt/rt2#{ext}-lib #{f.path}`)
JARH Queue

  require 'thread'
q = Queue.new
th = Thread.start do
while s = q.pop
print s
end
end
q.push 'Just '
q.push 'another '
q.push 'Ruby '
q.push 'hacker,'
q.push nil
th.join

プログラムの書き方(ifの条件式とか)
X-Mailer

  「X-Mailer: BeOS Mail」っていうのだとスレッドが切れるのが気になる。

Ruby IgnoreCase Hash

  「$=」でできるので、こんな風にしてみました。Perlのlocalみたいなのがあればもうちょっと楽にかけるます。それと同じことをするにはsuperのところをyieldに変えたメソッドを用意すればいいのですが、結局2度手間になるだけなのでそのままにしてます。


module IgnoreCase
  def [](key)
    save = $=
    $= = true
    val = super
    $= = save
    val
  end
  def []=(key,val)
    save = $=
    $= = true
    delete key
    super
    $= = save
    val
  end
end
h = Hash.new
h.extend IgnoreCase
h['from'] = 'foo'
h['From'] = 'bar'
p h #=> {"From"=>"bar"}

  ちなみにdelete keyをしないと{"from"=>"bar"}になってしまいます。

  moduleにする利点はHash以外でも使えるということらしいです。

dRuby Idiom

  IRCで教えてもらったこと。


# サーバ側を書くときのイディオム
uri = ARGV.shift
DRb.start_service(uri, front)
puts DRb.uri
puts '[return] to exit'
gets
 
# クライアント側
begin
  uri = ARGV.shift || raise
rescue
  puts "usage: #{$0} <URI>"
  exit 1
end
DRb.start_service
ro = DRbObject.new(nil, uri)

2001年4月7日(土)

JARH Crontab

require 'crontab'
tab = Crontab.new
tab.add("* * * * *"){print 'Just another Ruby hacker,'}
tab.run
no title 移転

  no titleからno titleに移転してたのに今頃気づく。
前のところも残ってるから気づかなかったのか。
no title?

links

  i31s nowからリンクされてた。


2001年4月8日(日)

Cygwin Ruby Thread ``

  Cygwin版RubyのThreadの中で``を使うと止まる。仕方がないのでCtrl+Cで止める。systemだと止まらない。

C:\tmp>ruby -ve "Thread.new{`echo test`}.join"
ruby 1.6.3 (2001-04-06) [i386-cygwin]
-e:1:in `join': Interrupt
from -e:1
C:\tmp>ruby -ve "Thread.new{system 'echo test'}.join"
ruby 1.6.3 (2001-04-06) [i386-cygwin]
test
JARH __FILE__,$0

  ちょっと反則(Rubyスクリプトだけで完結してない)。__FILE__は$0でも同じ。シェルによってはquoteが必要だけど。


echo print __FILE__ > "Just another Ruby hacker,"
ruby "Just another Ruby hacker,"

2001年4月9日(月)

excite_world_text.rb

  コマンドラインで使い物にならない気がしたので改善した。
どうしてもReadlineとかが使えない場合のことを考えてしまうので長くなってしまう。
さすがにsttyをPATHから探すのは無駄過ぎる気がしたので、とりあえずRUBY_PLATFORMで判断してお茶を濁すことにした。

JARH kakasi

  無理があります。
ちなみにpotatoのパッケージが古かったので自分でmakeして~/lib/ruby/kakasi.soに入れてしまってます。


require 'kakasi'
print Kakasi.kakasi('-Ha', 'じゅst あのtへr ').capitalize
print Kakasi.kakasi('-Ha', 'るby はcけr,').capitalize

2001年4月10日(火)

nDiary topic

  JARHだけだと何についてのJARHなのかわかりにくいので、何を使ったJARHかとtopicにつけてみた。
それからruby diary allを実行するとエラーになった。年月指定でもエラーになった。
200101がallと同じエラーになるので1月分が原因っぽいが、1月分は何も変更していない。何か過去のバージョンと変わってる?

>ruby diary all

-- nDiary version 0.9.3.beta5 --

./ndiary-lib.rb:444:in `tohtml': undefined method `join' for nil (NameError)
from ./ndiary-lib.rb:474:in `writeHTML'
from ./ndiary-lib.rb:473:in `each'
from ./ndiary-lib.rb:473:in `writeHTML'
from ./ndiary-lib.rb:603:in `makeHTML'
from ./ndiary-lib.rb:600:in `each'
from ./ndiary-lib.rb:600:in `makeHTML'
from ./ndiary-lib.rb:723:in `main'
from ./ndiary-lib.rb:721:in `each'
from ./ndiary-lib.rb:721:in `main'
from diary:13

>ruby diary 200103

-- nDiary version 0.9.3.beta5 --

make '/(略)/200103.html'
./lib/topic.rb:35:in `diary=': undefined method `lastestFilename' for nil (NameError)
from ./ndiary-lib.rb:739:in `main'
from diary:13
JARH split

  一瞬print 'Just another Ruby hacker,'.split(/\Z/)[0]の間違いかと思ってしまったけど、どっちでも同じ。

ruby-dev, ruby-ext ML

  ruby-devはそこそこの流量だと思いますが、ruby-extって少ないと思う。
でも思ってたのとは違って0通の日ってほとんど無いみたい。
入っているRuby関係のメーリングリストで一番流量が少ないのはruby-projects。

excite

  enjaやjaenで呼び出されたときに、っていうのはいいかも。
と思ったのでサポート
ちなみに変更したのは直接実行されたときの部分だけなのでrequireして使う場合には影響なしのはずです。というか影響があると自分が作っている他のものに影響がでるので困ります。

  enjaまたはjaenを含む名前の時にしたのは、enjaやjaenという名前決めうちより便利そうだから。


2001年4月11日(水)

JARH Integer#timesなど

JARH = ['Just ','another ','Ruby ','hacker,']
4.times{|i| print JARH[i] }
(1..4).each{|i| print JARH[i-1] }
-4.step(-1,1){|i| print JARH[4+i] }
0.upto(3){|i| print JARH[i] }
4.downto(1){|i| print JARH[4-i] }
nDiary バグ潰し

  パッチをあててruby diary allするとこのエラーはまだでてきた。

./lib/topic.rb:35:in `diary=': undefined method `lastestFilename' for nil (NameError)
from ./ndiary-lib.rb:739:in `main'
from diary:13

  ついでにtopic_noフィルタを入れてみた。
っていきなりバグ発見です。「○ n2Diary」っていう感じでリンク先の方に数字がついてしまいました。
.+[^>]+にする方がいいかも。


--- filter/topic_no.rb  2001/04/11 14:56:19     1.1
+++ filter/topic_no.rb  2001/04/11 15:01:40
@@ -5,7 +5,7 @@
     case type
     when :AFTER_TOPIC
       if @diary.kind_of?(LastDiary) then  # 最新分の日記の時のみ処理
-        str.sub!(/<h5><a .+t(\d+)\">./i){
+        str.sub!(/<h5><a .+?t(\d+)\">./i){
           $& + '<small>' + $1 + '</small>'
         }
       end

  Quoteだとpreがつかないからインデントが崩れるのか。今まで気づいてなかった…。

whatsrd

  RDについての簡潔な説明。


2001年4月12日(木)

Ruby Singleton

  Singletonを使わなくても特異オブジェクトを使えば似たようなことができる。それぞれの利点と欠点は何?

Singletonと特異オブジェクト
Singleton特異オブジェクト
クラスとオブジェクトがあるのでわかりやすい。オブジェクトしかないので慣れていないとわかりにくい。
Marshalできる。Marshalできない。

  結局普通のオブジェクトと特異オブジェクトの違いと同じ?

  foo.rdをRDに変換って...。

nDiary+RTtool=>parse error

  謎のparse errorではまったので、とりあえずCodeにしておいた。


2001年4月13日(金)

nDiary+RTtool=>parse error 解決

  evalで使っている変数の後始末が不充分だったという感じみたい。
SyntaxErrorのおこるevalを使っているスクリプトで発生する可能性があったみたいだけど、SyntaxErrorで場合分けするようなスクリプトって滅多になさそうだから今まで見つからなかったみたい。

  ruby -dで動かしたときにSyntaxErrorを使ってるというのは気づいたけどそれが原因の1つだとは気づかなかった。インタプリタの実装については知らないので当然といえば当然かも。

  ndiary-lib.rbをみてて気になったところをついでに直してみた。
ローカルのCVSに入れて使おうとするとRCSのキーワードが入っているものってちょっと注意が必要。


--- ndiary-lib.rb   2001/04/11 14:52:00 1.7
+++ ndiary-lib.rb   2001/04/13 09:33:12
@@ -169,7 +169,7 @@
       begin
         ret = true if send(filter, str, type) == :THROUGH
       rescue NameError
-        $stderr.puts "\n** Filleter error: undefined method '#{filter}'.\n"
+        $stderr.puts "\n** Filter error: undefined method '#{filter}'.\n"
         @filterlist.delete(filter)
       end
     }
@@ -226,6 +226,7 @@
     @lastestFilename  = 'index.html'
     @monthlyFilename  = '%Y%0m.html'
     @filename         = ''
+    @topicSortReverse = false
   end
 
   # 日記ファイル取得
mhc cvs

  mhc-cvsを使い始めた。
.cvsrcに書いてある設定を補完するとこんな感じ?
今回追加したのは最後の2行。


# mhc first
  cvs -d :pserver:anonymous@cvs.quickhack.net:/cvsroot -z3 login
  CVS password: (そのまま Enter)
  cvs -d :pserver:anonymous@cvs.quickhack.net:/cvsroot -z3 co -Pd mhc-current mhc
 
# CVS以外をコピー
rsync -avC mhc-current/ mhc
# configureとmake
cd mhc
ruby configure.rb --disable-palm
ruby make.rb
# ~/lib/elispディレクトリからemacsにmhcというシンボリックリンクをはる。
ln -s .../mhc/emacs/ ~/lib/elisp/mhc
 
#!/bin/sh
# mhc-update.sh
(echo mhc update && cd mhc-current && cvs -qz3 update -dP)
echo rsync mhc-current
rsync -avC mhc-current/ mhc
cd mhc
ruby configure.rb --disable-palm
ruby make.rb
 
;;; for mhc
(setq load-path (append '("~/lib/elisp/mhc") load-path))
(autoload 'mhc-mew-setup "mhc-mew")
(add-hook 'mew-init-hook 'mhc-mew-setup)
 
(setq mhc-file-method 'mhc-cvs)
(setq mhc-cvs-repository-path nil)
Ruby

  自分でmakeしてみてruby.exeだけ入れ替えてみたら、makeしただけだと$LOAD_PATHが相対で/usr/local/binに移動したら$LOAD_PATHがi586-cygwinでnkf.soがrequireできず。

RuBBS autolink URL

  「(http://www.spc.gr.jp/bbs/RuBBS.html)」みたいに「(」で始まってたら「)」の前までにする、というのを思いついた。イメージとしてはこんな感じ。


parens = { '('=>')', '['=>']', '{'=>'}' }
if /(.?)(http:\S+)/
  if parens.keys? $1
    $2.sub /#{parens[$1]}.*/, ''
  else
    $2
  end
end
終了時に実行するメソッド JARH

  終了時処理JARHを確認してみると、インスタンスが消滅するときだとfinalizerしかなさそう。
finalizerからの参照でGCされないという問題があるのでちょっと難しいけど、finalizerが簡単ならこんな感じできました。
Procオブジェクトのbindingをインスタンスと切り離すのが難しかった。
これだと文字列しか渡せないので、tempfile.rbのようにクラスメソッドを使う方が楽そう。


class JARH
  def initialize
    ObjectSpace.define_finalizer self, eval %{
      proc { print 'Just another Ruby hacker,' }
    }, TOPLEVEL_BINDING
  end
end
JARH.new
GC.start

2001年4月14日(土)

@homepage for iモード

  作ってみたけど内容が無い。

Ruby フラグ系は別メソッド

  PerlのtrがRubyだとこんな感じで複数のメソッドに分かれてるのはそういうことかな。
ほとんど確認してないので間違いがあるかも。

Stringのメソッドに対応するPerlの演算子
PerlRuby
$_ =~ tr/*/*/$_.count('*')
$_ =~ tr/0-9//d$_.delete!('0-9')
$_ =~ tr/A-Z/a-z/$_.downcase!
$_ =~ tr/a-zA-Z//s$_.squeeze!('a-zA-Z')
$_ =~ tr/a-zA-Z/A-Za-z/$_.swapcase!
$_ =~ tr[\200-\377][\000-\177]$_.tr!("\200-\377", "\000-\177")
($_ = 'foo') =~ tr/o/f/s$_ = 'foo'.tr_s('o', 'f')
$_ =~ tr/a-zA-Z/ /cs$_.tr_s!('^a-zA-Z')
$_ =~ tr/a-z/A-Z/$_.upcase!
$_ =~ s/foo/bar/g$_.gsub!(/foo/, 'bar')
$_ =~ s/foo/bar/$_.sub!(/foo/, 'bar')

  RTのdelimiterを;にしたら見出しのところのdelimiterを変え忘れてた。
delimiterを後から変更するときは変更漏れが無いかどうかちゃんと変換後もみた方がよさそう。

nDiary+RTtool=>parse error 現状

  とりあえずtopics.htmlの生成を止めてしのいでます。

JARH make/batch

  なかださんの


nifty:FPROGORG/MES/19/497
@ c:
    @echo Just another make/batch hacker,

  をみて、無理矢理JARHにしてみた。
makeで1行目がどう解釈されているのかがわからないけどエラー無しで動いているので気にしないことにする。


@rem = %qd
@rem make:
    @echo Just another make/batch hacker,
@REM batch:
    @echo off
    @goto end
    print 'Just another Ruby hacker,'
    %qd
:end

2001年4月15日(日)

dRuby

  同じマシンの中でのプロセス間通信にTCPってちょっと重いかも。

Uva

  日本製のWin32用Java風言語って感じかな?
エイプリルフールネタとしてUvaRubyっていうのがあるし。
当日気づいてればリンクし返してたのに。

WebBBSs

  おおざっぱに分類するとこんな感じ。

WebBBSたち
MiniBBS型日付順でどんどん上に追加されていく。変種たくさん。メッセージを1行に限定したものはWebチャットと呼ばれることが多い。
ツリー型ツリーとメッセージ毎のページに分かれている。ツリーが深くなるとツリー表示が破綻しやすいと思う。
2ch型(?)元メッセージとそれに対するメッセージ群がセットになったもの。つっこみ用掲示板付き日記もこれに分類可能。元メッセージは複数行でつっこみは主に1行というものも結構多い。
Tiki型自由に編集可能なメッセージの集まり。自由に編集できる以外の特徴は普通のWebページと同じかも。なれないとかなり参加しづらい。
Web日記いろいろ
Web日記いろいろ
追加はいつも特定のページだけど一定期間毎に古いものが別ページに移動するパターンPhinloda's real underground page日記。など更新チェックはしやすいが、リンクが一定期間後に切れるのが困る。
一定期間毎に分かれているがフレームでいつも同じURLで最新を見えるようにしているパターン過ぎ行く今は星の瞬きなど毎月チェックするURLを変えないといけないのが面倒。
一定期間毎に変わるパターンNeXT STEP(長いので略)やす師匠(略)日記など
最新のみしかないパターンバカが征くなど見逃すとそれまで。
静的生成でrecentページと一定期間毎(月毎など)で分かれているパターンnDiary、Sushi Diaryなど普通のページなので更新チェックしやすい。
最新だけ自動生成しているパターン偽偽夜食日記の部屋外見はnDiaryなどと同じ。
CGIで最新も一定期間毎も対応しているパターンHNS、tdsなどCGIで更新チェックソフトを考えてくれているので更新チェックしやすい。リンクは&が入っていなければしやすい。
すべて動的なパターン晴空號航海日誌サイズが変わるのでサイズでチェックしていたらはまる。
最新のみURLが違うパターンNikki Engine 日記猿人など更新チェックはしやすいが、非常にリンクしにくい。
更新される毎にURLが変わるパターン結城浩の日記特定の日付へのリンクは不可能?

  &が入ってたらエスケープ地獄。面倒なのはエンコードではなく編集中に確認しようと思ったときにそのままクリックではダメでデコードしないといけないこと。

RT

  RT楽。だけど今まで使ったこと無い機能(ConfigBlockとか)を使おうとすると魔道編をみないと使えないのがちょっと面倒。

CVS

  CVSのログは基本的にASCII文字だけにしていたのにかなを入れてしまったので、cvs admin -mREV:MESSAGEで変更した。


2001年4月16日(月)

nDiary+RTtool

  nDiary用のRTフィルタって公開しわすれたかも。というわけでscript/filter/rt.rbとしておいてみた。
$stderr = $stdoutが入っているのはデバッグ用。
.


2001年4月17日(火)

JARH SyntaxError

print begin;eval'Just another Ruby hacker,';rescue SyntaxError=>e;e.to_s[/J.+,/];end
ruby

  ruby-1.6.4-20010416-i386-mingw32.tar.gzにしたらparse errorはでなくなった。

nDiary

  ruby diary allでindex.htmlが更新されないのが不思議。

Ruby (... rescue ...)

  1.6以降の機能です。(式1 rescue 式2)でifやunlessと同じように後置もできるようになったという感じ。

mhc

  ~/Mailでmv {,.}scheduleして(setq mhc-base-folder "+.schedule")を追加した。
これでSylpheedからみえなくなっていい感じ。


2001年4月18日(水)

Makefile @rem

  @remという変数に代入したことになるってことは変数名に@が使えるってことですが、他のmakeとかで問題が起こりそうであんまり使いたくない…。

JARH (... rescue ...)

  括弧が2重になっている理由はRubyの落とし穴参照。


print(('Just another Ruby hacker,' rescue nil))
日記システム

  日付ごとに入ってるアンカーは、current.htmlじゃなくてYYYYMM.htmlを指すようになってましたか。以前はなってなかったことがあったような…。


2001年4月19日(木)

日記システム

  いろいろ変更してみた。

ruby syscall Resource::getrlimit

 ■ システムプログラミングも」参考にしてsys/syscall.hをみればいいとわかったので、zshの機能を利用したワンライナーで「gcc -x c -E -dD =(echo '#include <sys/syscall.h>') | less」として使いたかった関数を探してみた。が、こういうのってCで書いた方が楽かも。

  というわけでhttp://www.ruby-lang.org/~kazu/ext/に適当に作ってみたResourceをおいてみた。まだ試作品というかLinuxにばりばり依存してます。
モジュール名を決めるのにPythonのresourceを参考にしたというのはちょっとだけ秘密。実行時間をFloatにしたのも同じ理由というのもちょっと内緒。
LinuxだとRUSAGE_BOTHはある(定数は定義されている)のに使えない。
"wrong second argument"というエラーメッセージはexecの"wrong first argument"を参考にしてみた。
#ifdef .. #endif」でくくったのはerror.cのErrno::E*の定義を参考にした。
INT2FIXではなくINT2NUMなのはFixnumに収まるかどうか確認してないから。その割にはintかどうかを確認せずにNUM2INTを使っていたり。


2001年4月20日(金)

リファクタリング

  短くするのならMARK2LEVEL[mark_str] or raise ArgumentError, "#{mark_str} is irregular for Headline mark."だと思うけどわかりにくいかも。

隠しファイル

  .xsessionでログをとるようにしているところに同じ問題があったのを思い出して修正。vncserverを実行するときのカレントディレクトリに気をつけていればいいだけだったんだけど、やっぱり根本的に直しておかないと。


-echo `date` `hostname` >> .xsession.log
+echo `date` `hostname` >> ~/.xsession.log
ruby-cvs

  [ruby-cvs:00588](X-ML-Name: ruby-cvsのX-Mail-Count: 00588)ですが、m68mってm68kのtypo?
commit logが間違ってたときは-fで空commit?

nDiary

  見出しでのリンクができなかったのもRDベースからnDiaryに移行した理由の一つ。


2001年4月21日(土)

debian kernel-image-2.2.19

  昨日kernel-image-2.2.19_2.2.19-3_i386.debのバグにはまった。
grubが無かったら再インストールしないとダメだったかも、と思ったけど、image=/vmlinuz.old label=LinuxOLDがあったか。でも2つ以上前のkernelを起動したくなったらやっぱりデフォルトのliloだと無理そう。lilo.confを書き換えるのは面倒だし、grubの方が汎用性があるのでいざというときはやっぱりgrubを使ってしまう。

if修飾節

  puts hoge if hoge = getsはNameErrorになるけどhoge = gets and puts hogeは大丈夫とかいうような問題も、っていうかこれはこんな書き方する方がダメなんだけど。

  orを使ったideomってPerl5のopen or dieぐらいしかみたことないような気がするんですが、そうでもない?

PStore

  PStoreの内容をみるためのワンライナー。-Ksとかは必要に応じて適当に。
これを使ってriのデータファイルをみてみようとしたら ClassModule が無いよってエラーになって見えなかった。そのあたりはPStoreの制限なのでどうしようもない。


ruby -Ks -rpstore -e "PStore.new(ARGV[0]).transaction{|s|p s.roots.collect{|k|[k,s[k]]};s.abort}"

2001年4月22日(日)

secure CGI

  できるだけsecureなCGIにするにはどうすればいいのか?

入力は信用しない。
formで入力できるものだけがCGIに渡されるとは限らない。
textareaじゃないから\nが渡されないとは限らない。
tabを押したらフォーカスが移動してしまって入力できなかったので\tは入力できないと思いこんではダメ
テキストとして扱う入力なら、最初に'\0'(NUL文字)などのゴミを除去。
\tや\r\nも(たとえば出力がHTMLで保存するのが行単位のファイルなら)適当にスペースに変換しておくと良い。
タグは最初に全部エスケープして許可するものだけ戻す。
エスケープはさっき除去したものを使うなどしてエスケープしていないものまで変換してしまわないように注意する。
複数エスケープするときは順番に注意する。(例:HTMLの&のエスケープは最初か最後か?)

2001年4月23日(月)

プログラミング言語

  プログラミング言語を使えるようになるのに必要なのは、主にこんなことかもしれない。

文法
とりあえず文法がわからないとどうしようもない。
(クラス)ライブラリ
ライブラリがわからないとhello, worldさえも作れない。
・イディオム
その言語での一般的な書き方。

2001年4月24日(火)

センチバ

  世紀末に解散してたはず。大物の解散の方が目立ってたので結構知られてない気がする。ていうか元々有名なのが1,2曲ぐらいしかないという気も。

w3m-0.2.1 Baby model

  Baby modelでmakeできなかった。エラーメッセージから推測するとno menuがうまくいかない?


map.o: In function `follow_map_menu':
map.o(.text+0xec): undefined reference to `optionMenu'
collect2: ld returned 1 exit status

2001年4月25日(水)

CVS版Sylpheed

  自動生成されるファイルがCVSから消えたので、makeできなくなったのでいつものように:-)、IRCで質問してみるとrubyのようにautoconf; ./configureではなく./autogen.shだと教えてもらった。
それでもpotatoには「libgdk-pixbuf-dev」というパッケージが無くて「aclocal: configure.in: 74: macro `AM_PATH_GDK_PIXBUF' not found in library」というエラーが残ってしまったので、gdk-pixbufのソースをとってきてgdk-pixbuf.m4をac/において(無理矢理)解決した。


2001年4月29日(日)

Ruby

  SIGINTってmingwで問題が…、っていうのはWindowsがダメなのが原因らしいというのをFPROGで教えてもらった。

  daemonを作るときに2段forkして子(*1)をexit!するのはSIGCHLDの問題を回避するためだったような気が。

  File::basenameやFile::expand_pathがあるのに。DirではなくFileのメソッドだから見つけられなかったのかも。

  #!/usr/bin/env rubyについては「FreeBSD, Linux, Solaris, Cygwin あたりだと /usr/bin/env はあるからかなりおすすめ度は高いと思います。-eban」ということでおすすめなのですが、「#!/usr/bin/env ruby -Ks」とかすると「ruby」を引数「-Ks」で実行ではなく「ruby -Ks」を実行されてしまって実行できない…。

CVS for Win32

  いつの間にか1.11のバイナリもできてたらしい。
Cygwin版はなんか変だったので使っていないので、バージョンアップしてもいいかも。

著作権表示

  とりあえずruby本体を参考にするとか。

  パッチについてはChangeLogやcommit logに「thanks 誰々」って書いてあるものが多い気がする。
某ChangeLogにもう届かないメールアドレスが残っているのがちょっと気になったことがありますが、みんなそうなので、それはそういうものだと思うことにしてしまいました。

README.jp

  日本語のファイルってことならREADME.jaだと思うんですが。(Sylpheedとかirbとか)


*1: 親ではない。

2001年4月30日(月)

dRuby ローマ字かな変換

  ローマ字かな変換CGIを作ってみた。
dRuby経由で別プロセスと通信してアレするようにしてみたけど、あんまり意味はなかったかも。

Sylpheed IMAP

  SylpheedのIMAP部分を作っている方のよわよわ留年日記

ローマ字かな変換 続き

  Ruby/Romkanらしい。
romakanaはPerlのが見つからなかったから完全に自分で作ってみたけど以下のように目的が違うから無駄ではないはず。

  ちなみにromakanaをまだ公開していないのは辞書部分のメンテナンス中のため。


上へ indexへ
copyright © 2000 ZnZ