2007年03月26日(月) [過去の今日]
#1 PHP 4.3.11以前にsuper global変数上書きのバグ
PHPでプログラムを書いてたのだが、なんか挙動がおかしい。どうもバグっぽい。 最小再現コードはこんな感じ。
<?php session_start(); print $foo.'<br>'; $_SESSION['foo'] = 'foo'; $foo = 'bar'; print $_SESSION['foo'].'<br>'; ?>
これでリロードしてると、$fooの中身が$_SESSION['foo']と同じポインタ(?)になってるのがわかる。最初から値が入ってたり、$fooを書き換えると$_SESSION['foo']まで書き変わったりする。逆も然り。
どうもPHP 4.3.11以前でなおかつregister_globals = Onの時に出るバグのようだ。
Debian sargeのPHPは4.3.10なのな。PHPプロジェクトに直接投げる気もしないし、こっちに報告してみた。
でもなー、どうせもうすぐetch出るし、今時4.3系列ってのもナニだし、register_globalsなんてふつーoffだし、別にどうでもいいバグという気もしなくはない。
いや、そんなバグにひっかかった俺も俺なんですが orz
まあしょんぼり極まりないバグとはいえ、一部のレンタルサーバはregister_globals = Onにして提供されてたりするようだし、4.3.11以前のPHPが入ってたりする事もあるようなので、気をつけられたし。
(@471)
@ Debianの決定は正しいと思う:
BTSで返事 をもらった。Debianはregister_globalsをサポートしない、とのこと。これは非常に正しい判断だと思う。
伝わるかどうかわからないが、それを支持する旨を書いて送っておいた。いい加減この中学生以下の俺の英語力はどうにかせんとなあ……。
(@073)
2006年03月26日(日) [過去の今日]
#2 ppp0とppp1
フレッツISDNとBフレッツを繋いでるせいで、pppインターフェイスが二つある。のだが、設定の都合上ppp0とppp1が入れ替わられると困るわけで。しかし、ちょっとISDNのpppが手間取るとすぐBフレッツ側がppp0になってしまう。ISDN側がppp0を前提にしてるので、困る困る。
結局Bフレッツ側のpre-upにppp0が検出されるまで待つスクリプトを入れて解決はしたが、不恰好だよなあ……。
(@666)
#1 pppdのISDN接続が遅い……
まあ、いまだにフレッツISDNで固定アドレスのサーバ立ててるのも珍しいんだろうが、woodyからsargeになって、pppdがやけに遅くなった。遅いというのは動作が、ではなく、初期化コマンドを送ってからの反応。なんでこんなに遅いんだろう。1分くらい待たされてるような。
普通にシリアルボードからTAに繋いでるだけなんだけどなあ。
あ、結局IPCPでlocal addressを拒否すると繋がらない問題は継続。なんで手動でifconfigしてアドレス書き換えてやらにゃならんのか……。
2004年03月26日(金) [過去の今日]
#1 チェザリス
アンドレア・デ・チェザリスの名前を久しぶりに聞いた。お昼の番組でハルウララ特集をやっており、その中で連敗記録保持者という特集に出ていた。チェザリスは200連敗以上してるんだと。
まあ、確かに長くいたからなあ。お父さんがスポンサーだったからとか言ってたが、そうだっけ。それだけならユーンももっと長くいたと思うのだが。
もっとも、ミカ・ハッキネンあたりは100連敗くらいした後念願の初勝利をあげ、そのあとガンガン勝って二年連続チャンピオンを獲得したわけだわね。勝ち味を知る、と表現されるが、ハルウララも勝ち味を知ったらがんがん勝つのかなあ。それとも一勝に終ったジャン・アレジとかと一緒かね。
(@193)
2003年03月26日(水) [過去の今日]
#2 Exerbのdebianパッケージ
#1 tramp動作不良
ここ1ヵ月ほど悩んでたtrampが使えない問題だが、どうやら バグかなんか だった模様。2.0.29で治っているので、バージョンを上げれば問題無く使えた。
しかし、debianパッケージはいまだ2.0.28なので、 ここ から最新版を拾って来て、uupdateを用いてパッケージのバージョンを上げてリビルド。
(@687)
2002年03月26日(火) [過去の今日]
2001年03月26日(月) [過去の今日]
#2 ATOK X用.emacs設定
#1 ATOK X on Debian(Woody)
インストールは簡単。
# apt-get isntall atokx
ここでATOK Xが置かれているディレクトリを聞かれるので、そのディレクトリを入れる。狐志庵はディレクトリ指定を間違えてはまってしまった。削除しても覚えてくれているようで、間違ったディレクトリを探してないぞないぞといってくれるのね。しょうがないので間違ったディレクトリにATOK Xをごろごろと置いて、ふたたびインストール。
で、あとはXの起動スクリプトに
. /usr/lib/im/locale/ja/atokserver/atokx_client
と、書き足し、Xのリソースで
#define XIM htt *inputMethod: XIM
と、うちでは設定してある。ベースはuser-ja-confなので実際はもっといっぱい書いてあるが。
あと、KtermはXIMを使わないで起動してしまうらしいので、
*1
alias kterm='kterm -xim'
と、~/.bashrcに書き込んでおいた。
あとはログインしなおすだけ。
あとはKtermなりIRcatなりMozillaなり、Ctrl+SpaceでIMが起動する。
狐志庵はこのキーバインドが気に入らないので、
# touch /usr/lib/atokx/im/locale/ja/atokserver/shift_space
として、Shift+Spaceで切り替えるようにした。 なぜファイルの中身じゃなく、ファイルの名前で設定されるのかは謎、、、
@ ATOK X on Emacs:
EmacsでのATOKの使用は不都合を伴うとの情報があった。CannaのようにバッファごとにIMのトグルをしてくれるのではなく、Emacs全体でトグルされてしまうのだとか。
そのため、esecanna-atokxを使う必要があるとのことなので、対応の最新開発版を拾ってきてコンパイルした。事前情報ではatoklibというジャストシステムのライブラリを組み込まなくてはならないとのことだったが、現在の開発版はそんなものはいらないのかな。ドキュメントをあさっても特にそのような記述は見あたらなかった。
なのでふつうにコンパイル。コンパイル自体はあっという間にすむものの、全く動作が安定しない。というか使えない。ふつうに起動したように見えるのだが、いざesecannaがATOKサーバに文字列を送ると固まってしまう。
これで半日以上悩んで、とりあえずこのままじゃ日記も書けないやってんでIIIMECFを使う方法でやってみた。
# apt-get install iiimecf
これで依存パッケージのmule-ucsも拾ってきてバイトコンパイルしてくれる。 ~/.emacsの設定はWebから拾ってきた。URLを忘れてしまったのだが、その方には感謝感謝。
;;; ************************ for ATOK X ************************** (setq emacs-ime "atokx") (if (or (equal emacs-ime "atokx") (equal emacs-ime "atok") ) (progn (require 'un-define) (setq coding-category-utf-8 'utf-8) (setq iiimcf-server-control-hostlist '("localhost")) (setq iiimcf-server-control-default-language "ja") (setq default-input-method 'iiim-server-control) (require 'iiimcf-sc) (define-key global-map "\C-o" 'toggle-input-method) (setcar default-mode-line-format "") ) )
で、現在この日記を書いてる訳なんだが、不都合は全くない。あるとすればちょっと重いということだけかな。ちゃんとバッファごとにIMをトグルしてくれるし、当然だけどsshで別ホストから入っても、ちゃんと使えた。なによりCannaとは比べものにならないほど賢い。昔やってた全文一括変換の癖を取り戻せそうだ。
ただ、重い。重量感がある。実際は重くないのかもしれないが、非常に重く感じる。うーん、この重量感はどうにもならないのかな。
ちなみにマシンのスペックは、Celeron533A、128M、HDD 4.3G(ATA66)ってところ。
どこで重いのだかよくわからんのだが、、、
@ 半角文字:
MS-IMEではShiftを押した直後の文字列は半角にしてくれる。これが便利でWindows時代は大好きなATOKからMS-IMEに乗り換えたんだが、当然LinuxのATOKはそんなことしてくれない。だけど全文一括変換のためには、半角文字もそのまま変換前に入力できなくてはならない。んー、どうしたらいいのかな。