Ruby言語やLinuxのネタが多いです。
April 01, 2002 [おもひで]
■ FTPで転送したとき、namazu.cgiのみbinaryモードで転送しました? 実行権は大丈夫ですか?
■ それでもダメなら、XREAのサポート掲示板のmstkさんの投稿を参考にして、以下のようにtest.cgiを作って、namazu.cgiと同じディレクトリに置いて(もちろん、実行件付き)実行してみるともう少し分かりやすいエラーメッセージが出るかも。
#!/bin/sh echo Content-Type: text/plain echo ./namazu.cgi 2>&1
■ あきらめずにがんばってみてくださいね!
April 02, 2002 [おもひで]
■ 指摘してくださった点については修正版を出すつもり(手元では修正しました)ですが、yasqueeze.rbの仕様が変更になった関係でその他の部分もいろいろと修正しなければなりませんので、それもあわせて、タイミングはtDiary-1.4.1(1.4.0では動かなくなってしまったので)が出てからにしたいと思います。
April 03, 2002 たまには脱線しよう、そうしよう [おもひで]
■ そんな中、自分のLinuxビボ〜ろくを省みると、どうも技術一辺倒でイマイチ面白味に欠ける。もちろん、タイトルが示すとおり方向性としてはそれで間違いないのだが、少しも気の利いたことが書けない自分が歯がゆい。
■ tDiaryのプラグインもいくつか書いてみたが、ほとんど実用性を重視したモノばかり(fortune.rbはちょっと違うけど)。それはそれで良いのだろうがsawadaさんのスミ消しプラグインのようなセンスのいいプラグインを書いてみたいと思った。
■ そんなわけで作ってみたプラグインがこれ。その名も「伏せ字プラグイン」
使い方
<%= fuseji 'ひみつ' %> <%= fuseji 'ひみつ', 2, '★' %> 引数は、文字列、伏せる文字数(default=1)、伏せ字マーク(defaultは"○")の順。 文字列のみ必須。後はオプション指定。
ソースコード(こいつをEUC-JPでfuseji.rbというファイル名で保存してpluginフォルダに格納すればOK)。
def fuseji(str, num = 1, mark = "○")
array = str.scan(/./)
(0...num).each {array[rand(array.length)] = %Q[<span class="fuseji_mark">#{mark}</span>]}
%Q[<span class="fuseji">#{array.join}</span>]
end
■ これを使えば、いつもは言えない本音をストレス無く語りつくすことができるはず。指定した文字列は、検索エンジンもまともにキーワードとして拾うことができないはずだし、ある意味、スミ消しプラグインを超える暗号化も実現できたのではないだろうか(うそ)。
■ [Misc] 2002/4/11 追記
伏せ字プラグインはこの日記のものを使わず、こちらの新バージョンを使ってください。ただし、ここの伏せ字プラグインとは互換性がありません(引数が異なる)。もし、過去に、ここのプラグインを使ってしまった方は、新しいバージョンを使わないか、あるいは、過去の日記で伏せ字プラグインを使っているところは全て手作業で引数を修正してくださるようお願いします。
April 04, 2002 [おもひで]
■ [tDiary] 伏せ字プラグイン(高機能版)
意外に評判が良かったので、バージョンアップしてきちんとリリースしてみた。昨日のやつより高機能になってる代わりに互換性もなくなっちゃってるので、昨日のバージョンを使ってる場合は、入れ替えた直後にエラーが出るはず。まぁ、表示が崩れる以外の実害はないので、落ち着いて一つ一つ直していけば大丈夫。 え?互換性くらい用意しろ?んなものありませぬ。
今回のポイントは、複数の伏せ字用文字を指定できるところ。例えば、
<%= fuseji "あいうえおかきくけこ", "○×▲□" %> →
同じ文字を複数回使いたい場合は伏せ字をかけ算すればOK。
<%= fuseji "あいうえおかきくけこ", "○" * 5 %> →
こんなこともできる
<%= fuseji "あいうえおかきくけこ", "tDiary" %> →
■ やばい、伏せ字多用で、なんかな日記になっていきそうな気がする...。今までの雰囲気が〜(^^;)。
April 06, 2002 [おもひで]
■ [Misc] XREA + tDiary + Namazu
tDiary-1.4.1がリリースされましたのでそれに合わせてアップデートしました。まだの方はどうぞ。
April 08, 2002 [おもひで]
■ [tDiary] 「謎JavaScript。最終形態」
ZnZさんより。指定されたURL部分をハイライト表示としてくれる。便利なのでさっそく使わせてもらうことに(今まで知らなかった...(^^;))。
といっても、@footerにそのままっていうのは何なので、プラグイン化。hilitejs.rbとでも保存しておき、設定のフッタの部分で以下のように設定する。
<%= hilite "red", "yellow" %>
■ ソースは以下のような感じ。中身は謎JavaScriptをそのままコピペ。
def hilite(foreground = "#fff", background = "red", border = nil)
hilite_border = "hiliteStyle.border = \"#"{border}\";" if border
%Q[
<script language="JavaScript"><!--
var hiliteStyle = new Object();
hiliteStyle.color = "#{foreground}";
hiliteStyle.backgroundColor = "#{background}";
#{hilite_border}
: (ここは謎JavaScriptのコードそのまま)
]
end
■ これって、plugin化して標準で入っていても良いような気がするなぁ。どうでしょ>たださん
■ あ、最後のborderって部分はもう少し分解しても良いかも。
■ [Misc] 最近のきたさんとおざわさん
いやぁ、なんか私もその昔、ソースコードレビューをやっていたときはそんな感じでした。大変ですよね...。そういうのばっかり相手にしてたころ、ふと「自分が間違えているんじゃなかろうか。」と真剣に悩んだ時期もありました。
■ でも、それを乗り越えたとき、人間が一回り大きくなった気がしました。例えば、人に優しく接することができるようになったとか、何事にも動じなくなったとか、あきらめがはやくなったとか、見なかったことにできるようになったとか... っておぃ(^^;)。
April 09, 2002 [おもひで]
April 10, 2002 [おもひで]
■ [tDiary] XREAでCookieがきかない?
たださんに指摘されて気づく。いろいろ調べてみたんだけど、やっぱりmod_layout(広告自動挿入)に問題がありそう。さて、どうしたもんだか。
■ というわけで、自動挿入じゃなくて手動挿入にしてみたらあっさりOK(たぶん)。でも、固定で広告を挿入する関係で、携帯関係では読めなくなったかも(未確認)。ま、いっか(いいかげん)。
■ ちなみに、単純にCookieをセットするCGIをshellで書いて試したみたんだけど、これは問題なく(広告自動挿入でも)ブラウザ側で取得できた。
#!/bin/sh echo Content-type: text/html echo "Set-Cookie: TEST=hoge; expires=Date: Thr, 11 Apr 2002 14:44:15 GMT;" echo echo "test"
■ うーむ、何が違うんだろう?
April 11, 2002 [おもひで]
■ [tDiary] 伏せ字プラグインでエラー
Nanaさんの日記のエラーが出る部分を見てみました。4/4で使ってる伏せ字プラグインが悪さをしているみたいです。ご面倒おかけしますが、4/4分の日記のfuseji "xxx", num, "xx"の部分を全て新しいバージョンの形式にあわせてください。
fuseji "xxx", "xx" * numみたいな感じです。
■ 互換性が無いんで、新しいの入れたら過去のも全部直さないといけないんです。互換性残せばよかったかな〜、ちょっと反省。
■ 私の過去の日記の伏せ字プラグインも誤解されるといけないので直しておきますね。
■ ところで、むとぽんさんはやっぱり抵抗感が...(^^;)。
April 13, 2002 こなさんみんばんわ [おもひで]
■ [Misc] スネークマンショー
今日、なぜかふとスネークマンショーを思い出した。その中で、特にイブマサト(漢字忘れた)が、放送コードに挑戦するとかいって、2つの文の頭文字を入れ替えて放送禁止用語を叫ぶものがあった。それと似たようなモノをtDiaryのプラグインで作ってみたらおもしろいかな〜というわけで作ってみた。
#歳ばれる?(^^;)
<%= snake 'みなさん', 'こんばんわ' %> → <%= snake 'アン', 'ルイス' %> → <%= snake 'アールシー', 'サクセション' %> →
■ ソースコード(こいつをsnake.rbというファイル名で保存してpluginフォルダに格納すればOK)。
def snake(str1, str2)
array1 = str1.scan(/./)
array2 = str2.scan(/./)
tmp = array1[0]
array1[0] = %Q[<span class="snake-head1">#{array2[0]}</span>]
array2[0] = %Q[<span class="snake-head2">#{tmp}</span>]
%Q[<span class="snake"><span class="snake-1">#{array1.join}</span><span class="snake-2">#{array2.join}</span></span>]
end
■ せっかく作ったんだから遊んでみよう。
まずは身近なところから。
- ・・・ げっ。ムサオか...うーむ(^^;)。
- ・・・ 文無し。
- ・・・ ちょいエロ(?)。
■ アーティスト・芸能人ではどうだろう。
- ・・・合格シーズンには良いかも。
- ・・・おとこかよ(三村風)。
- ・・・スカやってないよね(^^;)。
- ・・・ある意味おもろい並び。
- ・・・ちょいオモロ。
- ・・・ちょいオモロ。
- ・・・かっくらきん?。
- ・・・オレンジジュース?。
- ・・・たべもの?。
- ・・・だめだって。
■ バンド名は結構オモロイかも。次は料理系。
- ・・・ちょっと食べたくない。
- ・・・ちょっと食べたくない。
- ・・・これも食べたくないな。
- ・・・にゅって...(^^;)。
- ・・・想像できん。
■ 基本的に食べたくなくなるな...。映画はどうかな。
- ・・・ うーむイマイチ。
- ・・・意味変わるな。
- ・・・わけわからん。
■ 政治家とか。
- ・・・発音できん。
- ・・・いまいち。
- ・・・すねちゃイカン。
- ・・・さすが金持ってる(^^;)。
- ・・・強かった...かも。
■ にしても、政治家というとどうしてこういうメンツしか思い出せないのだろう(^^;)。まいっか。そろそろ飽きてきたので次で最後。
- ・・・これでアホな言葉も違う意味に(^^;)
- ・・・あり?かわらん(^^;)
■ うーむ、作ったは良いけどめちゃくちゃ使い道無いな、これ...(^^;)。
April 21, 2002 いやぁ、一週間空いちゃいました [おもひで]
■ [tDiary] アクセスカウンタ表示プラグイン 1.0.0 リリース
tDiary用のアクセスカウンタ表示プラグインを作ってみた。オレが作るモノの割には結構高機能だ(^^;)。
- 今まで全て・今日・昨日の3種類のアクセス数をカウントできる
- 各数字は画像も使えるが、画像を使わずにCSSでデザインを指定することも可能
- 今まで全ての場合は初期値を与えられるようにしてあるので、他のアクセスカウンタからの移行も容易
■ プロトタイプは結構前からできてた(結構前からこの日記では使ってた。気づいていた人はいないだろうけど(^^;))んだけど、方式を変えたり、手を加えたりしているうちにかなり時間がたってしまった。まぁ、それだけに、結構自信作なので是非使ってみて欲しいな。そんでもってバグ報告よろぴくっておぃ(^^;)。
■ [tDiary] tDiary: myプラグイン拡張
遅ればせながら導入してみた。便利。
■ [tDiary] アクセスカウンタ表示プラグイン 1.0.1リリース
あうぅ。バグ報告をっていきなりNTさんに2件も指摘されてしまいました。ご迷惑おかけします。
数字が合ってないのはバグで、私も24時回った瞬間にこりゃまずいと気づいて(^^;)直してました。一緒にCSSの方は_を-に直してみましたんで試してみてください。
■ NTさん以外にも1.0.0を使用して日付が変わってしまった方は、早急に1.0.1にバージョンアップをした上で以下のように3番目の引数を+1してください(日付が変わるところのカウントの仕方にバグがありました)。
あるいは、@data_path/cache/counter/counter.datを一度削除して最初から初めてください。
<%= counter 5, "", 1 %>
■ まさか、このために3番目の引数を使うことになろうとは...(-o-;)。
#本稼働は早くても明日の夜24:00以降が妥当かも(^^;)。
April 22, 2002 [おもひで]
■ [tDiary] アクセスカウンタ表示プラグイン
カウンタプラグインは一応、無事に24時を超えました。これで大丈夫かな...。ちょっと心配。
#こりゃ、Version 0.1から始めりゃよかったかな(^^;)。
■ [Linux] Kondara MNU/Linux 2.1
昨日から今日にかけて、Linux WORLD 5月号別冊付属のCD-ROMを使ってようやくバージョンアップ。なんとなく全般的に速くなったような気がする(いつもそう思うんだけど)。
■ にしても、GUIはタブが全盛期だね。Mozilla, galeonはともかく、XEmacsにタブがついてるのには驚いた(←遅すぎ?(^^;))。
■ でも、なんでバージョンアップするたびにフォントが変になるんだろう。Mozillaで小さい文字がホント小さくて見えん。うーむ、こりゃ追々直していかないとダメだなぁ。
■ あ、もちろんこれはオイラの環境での話。ちょっと特殊なことをしてるもんで。
April 23, 2002 [おもひで]
■ [tDiary] アクセスカウンタ表示プラグイン 1.0.2 リリース
いろいろご迷惑おかけしているアクセスカウンタ表示プラグインですがひとまずNTさん, たださんの不具合について、HEADリクエストはカウントしないようにしました。
その他、ちょこちょことバグ修正しています。また試してみてください。
■ それから、アビーさんの件ですが、これは現在のtDiaryとtlink.rbの実装(User-AgentをDoCoMo compatibleな端末としている)の場合は問題ありませんので対応してません。
■ [Linux] fluxbox
タブ付きのWindowManagerですか。知りませんでした。っていうか、以前、きたさんの日記で読んだような記憶も....(^^;)。まだ、試していませんがおもしろそうですね〜。暇なときでも見てみます。
April 24, 2002 [おもひで]
■ [tDiary] アクセスカウンタ表示プラグイン
nakajimaさん、ご報告ありがとうございます。もしかして、これは、以下の手順で発生したモノではないですか?
- counter.rb-1.0.1(以前)を使う
- 途中で(おそらくcounter.rb-1.0.1のバグがらみで(^^;))、一度counter.datをクリアして最初からカウントを始めようとした
- 合計の数が今日の数より1多い状態、というより、合計=1, 今日の数=0になった
■ 実は、(2)の際にcookie情報が残ったブラウザからアクセスし直すとこのような状況になってしまっていました。この不具合は、1.0.2で修正しました。
■ もし、これとはちょっと違ったなぁなんてことがあったらもう一度、できるだけ詳しく教えてください、ってソース追えよ>自分(^^;)。
■ [tDiary] アクセスカウンタ表示プラグイン 1.0.3をリリースしました
って、またバグ発見。ツッコミを入れるとエラーが出ます。うーむ、ダメすぎ。こちらから最新版(1.0.3)を取得してアップデートください。
April 25, 2002 [おもひで]
■ [tDiary] アクセスカウンタ表示プラグイン
NTさんご指摘のとおりです。これはデグレードです。申し訳ないです。今日中に直して1.0.4を出します。
■ 1.0.3を使っている方はNTさんのご指摘のとおりに修正していただければひとまず動作します....。ごめんなさい。
■ [tDiary] アクセスカウンタ表示プラグイン 1.0.4
というわけで1.0.4です。実はもうちょっといじりたいところがあるんだけど、それはもう少し落ち着いてからやります。
April 27, 2002 [おもひで]
■ [Tools] VIM
最近、tDiaryのプラグインを書くときにvimを使うようにしているんだけど、Kondaraを2.1にバージョンアップしてから<DEL>と<BS>の挙動が以前と変わってしまったので自分で.vimrcを書くことにした(なんでだろう...?ま、いっか(^^;))。で、今の.vimrcはこんな感じ。
syntax on set showmatch set ts=3 set showmode set ruler set fileencoding=euc-jp imap ^H <BS> imap ^? <DEL> map ^H <BS>
■ なんか、もっとこうすべし!ってのがあったら教えてくだされ。
■ そうそう、上の.vimrcをそのままコピーアンドペーストしてもコントロールシーケンスの部分はうまく使えない。で、^H, ^?の部分はCtrl+V → Backspace/Deleteキーという感じに自分で入力する必要アリ。
April 28, 2002 [おもひで]
■ [tDiary] アクセスログプラグイン
アクセスログが取れるプラグイン by HAL99さん。とっても便利そうなんだけど、残念ながら今のアクセスカウンタ表示プラグインとは一緒に使えない。
■ 理由は、tDiary 1.4.1の実装では全てのプラグインでcookieを1つしか使えないから。
■ CVS版ならadd_cookieというメソッドが追加されているから、プラグイン毎に複数のクッキーを使うことができるんだけどなぁ。tDiary-1.4.2が出たら使ってみよう。
■ ちなみに、アクセスカウンタ表示プラグインは、CVS版にも対応できる形になっている....はず(^^;)。
April 29, 2002 [おもひで]
■ [tDiary] Plugin#add_cookie
NTさん、ご報告ありがとうございます。きちんと動いてるんですね、良かった。あ、もちろん、手元では動作確認はしたので大丈夫だとは思っていたんですがイマイチ最近の自分の品質に自信がなくて...(^^;)。
HAL99さん。厳密に言うと、今のCVS版tDiaryでは現在のアクセスログプラグインは(CVS版側がその辺の仕様を@cookieからadd_cookieに変えた関係で)、使えなくなっています。以下のようにすれば、1.4.1でもCVS版でも対応できるはずです。
cookie = #ここにCGI::Cookieのインスタンスを代入する。
if defined?(add_cookie)
add_cookie(cookie)
else
@cookie = cookie
end
■ add_cookieが定義されていたらそれを使い、定義されていなかったら@cookieに代入しています。
■ もちろん、この場合でも、1.4.1ではプラグイン全部でCookieは1つという問題は回避できませんが。
■ [tDiary] アクセスカウンタ表示プラグイン 1.1.0リリース
カウンタプラグインですが日別のログをファイルに書き出す機能を追加してバージョンアップしました。よろしかったらバグ出し使ってみてください。
■ それから、その他、私が作ったプラグインのコードをクリーンアップしました。といっても、yasqueeze.rbの文字コードを変えたのと、fortune.rbをちょこちょこっといじったくらい。まぁ、こちらは機能的に変わったモノはないんで、すでに使ってる人は変える必要ないです。

▲ 恵司 [動きました!かなりお間抜けなミスで恥ずかしい限り。 ただマニュアルにちょっとミスあったので、修正お願いします。]