Home

日記
今日のスポクラ (11:40)Edit

安定稼働中に付き、特に書くこともなくなってきたな。

Published At2005-09-01 00:00Updated At2005-09-01 00:00

日記
今日のスポクラ (13:00)Edit

まあいつも通り。

Published At2005-09-02 00:00Updated At2005-09-02 00:00

日記
数値型に空文字列を代入すると0と評価される (18:58)Edit

いやまあ、PHP的には当たり前なんだけど、なかなか気がつかなかったんで。

$value = '';
$do =& new FooTableDataObject();
$do->intvalue = $value;
$do->find();

とかすると、

select * from FooTable where intvalue = 0

になるってことね*1。もちろん、

$value = NULL;
$do =& new FooTableDataObject();
$do->intvalue = $value;
$do->find();

ならば、

select * from FooTable

になる。

当たり前でもないのか

これは、ここの

/* this is probably an error condition! */
$this->whereAdd(" $kSql = ".intval($this->$k));

で数値化されているパターンに該当するんだよな。ってことは、this is probably an error conditionなわけか。っつーか、DB_DataObjectの作法としては、find前にvalidateしろってことなのかな。

*1 ちなみにintvalueはnot null。null許可でも同じ結果になるけど

Published At2005-09-02 00:00Updated At2005-09-02 00:00

日記
日本語対応の問題点 (15:54)Edit

autorespondで日本語(JIS)の自動応答文に対応させようと、/usr/local/share/qmailadmin/lang/jaをiso-2022-jpに変更したところ、qmailadminで登録する「実名」もJISで登録されてしまい、その結果vpopmailのアカウントデータベースを破壊するというやばい不具合が発生してしまった。

応急処置として、qmailadminで実名を登録できないようにしてみた(html/add_user.htmlとhtml/mod_user.htmlを書き換え)けれど、この副作用はしゃれならねーなー。autorespondは、中途半端に日本語対応するくらいならば「できない」ということにしておいた方がましっぽい。

それにしても、自分ではその手の項目には日本語文字列を使わないようにしてしまうから、自分でチェックしただけでは気づけないっつーのが、最大の敗因だな。

Published At2005-09-05 00:00Updated At2005-09-05 00:00

日記
今日のスポクラ (13:27)Edit

トレーニング前に、試しにVAAMのゼリーを飲んでみたんだけど、これって効くのかなー。あと、今日はマシンのペースをいつもよりも速めにしてみた。本を読みながらだと、バイクは100Wがいい感じ。110Wだと、気がつくとペースが遅くなっていたりする。

Published At2005-09-06 00:00Updated At2005-09-06 00:00

日記
mbstring.detect_orderを変更 (13:38)Edit

なんか最近文字化けが激しいようなんで、PHPのmbstring.detect_orderをautoからASCII,JIS,EUC-JP,SJIS,UTF-8に変更しました。これで改善されるといいけど。

Published At2005-09-06 00:00Updated At2005-09-06 00:00

日記
自動収集したWebサイトのタイトルを更新するように変更 (14:49)Edit

今までblogmapでクロールしていたWebサイトの情報は、初回DB登録時にタイトルを更新したら、それ以降タイトルが更新されていたとしても、DB側では更新していなかったのですが、DB上のタイトルと実際のタイトルの不整合がずいぶん多くなっている(&クローラーのバグのせいか、全然関係ないタイトルが登録されている例も見つかった)ので、RSSからのデータ収集時にchannel.titleを使ってサイトのタイトルをアップデートするようにしました。

Published At2005-09-06 00:00Updated At2005-09-06 00:00

日記
HTMLやCSSの著作権 (17:11)Edit

highbiscusさんとのやりとりに関しては、このあたりに関するhighbiscusさんのアクション待ちってことでおいておくとして、以前触れたHTMLやCSSコードの著作権に関する解釈(1)(2)について、ちょっと考えが変わってきたのでその辺を書いておきます。

以前は、HTMLやCSSは基本的に「プログラム言語」の一種であり、HTMLやCSSによって記述されたコードは「プログラムの著作物」として著作権による保護を受けうると考えていました。

と書いただけでは、対象となる「創造物」の範囲が明確ではない気がするので、具体的な例を挙げておきます。たとえば、

<style>
span.shout {
font-size: 150%;
color: red;
}
</style>
<p>そこで私は「<span class="shout">うがぁぁぁ</span>」と叫んだ。</p>

みたいなHTMLドキュメントがあったとして、それは、

<style>
span.shout {
font-size: 150%;
color: red;
}
</style>
<p><span class="shout"></span></p>

というHTMLやCSSによるコードと、

そこで私は「うがぁぁぁ」と叫んだ。

という日本語の文章に分離できるわけです。

で、後者の文章が「文芸」の著作物として著作権の保護を受けうるのと同様に、前者のHTMLやCSSによるコードも「プログラム」の著作物として保護を受けうるだろう、というのがもともとの私の解釈だったわけです*1

で、その後いろいろ関連する情報にあたった結果、現在はHTMLやCSSによるコードは、著作権による保護の対象外である可能性が高い、という解釈に変わってきました。

まず「プログラム言語」の定義について、基本的に私はコンピュータに指示を与える言語ならば、それは「プログラム言語」の一種であると考えていました。

ですが、ウィキペディアの「データ記述言語」なんかを読んでも分かるように、HTMLのようなデータ記述言語は「コンピュータ言語」の一種ではあるが、「プログラム言語」とは別のものという解釈の方が妥当なようです。

また、著作権法では「プログラムの著作物」の定義として、

電子計算機を機能させて一の結果を得ることができるようにこれに対する指令を組み合わせたもの

と書いています。

一般的なプログラム言語では、そのコードは基本的に「電子計算機」への指令になるわけで、上記の要件を満たしています。しかしデータ記述言語の場合は、そのコード自体は直接「電子計算機」への指令にはなりません。

データ記述言語で書かれたコードは、そのデータ記述言語に対応した「プログラム」(HTMLやCSSの場合はWebブラウザ)への指令であり、実際に「電子計算機」に対して指令を与えているのは、それを読み込んだ「プログラム」(Webブラウザ)の方になります*2

つまり、データ記述言語で書かれたコードは、著作権法における「プログラムの著作物」の要件を満たしていない、と考えられます。

また、HTMLやCSSに関して言えば、「「知恵蔵」のレイアウトに関する判例(1999年)」というものが参考になります。これは、本のレイアウトフォーマット(データ)に関する著作権について争った裁判で、

控訴人は、本件レイアウト・フォーマット用紙は被控訴人から独立したブックデザイナー固有の知的創作物である旨主張する。しかし、年度版用語辞典である知恵蔵のような編集著作物の刊行までの間には、その前後は別として、企画、原稿作成、割付けなどの作業が複合的に積み重ねられることは顕著な事実であるところ、本件における前記一認定の前提事実に照らすと、本件レイアウト・フォーマット用紙の作成も、控訴人の知的活動の結果であるということはいえても、それは、知恵蔵の刊行までの間の編集過程において示された編集あるいは割付け作業のアイデアが視覚化された段階のものにとどまり、そこに、選択され配列された分野別の「ニュートレンド」、「新語話題語」、「用語」等の解説記事や図表・写真を中心とする編集著作物である知恵蔵とは別に、本件レイアウト・フォーマット用紙自体に著作権法上保護されるべき独立の著作権が成立するものと認めることはできない。

という判断が下されています。この判例においては、レイアウトフォーマット自体に独立した著作権は認められない、という結論が下されたわけです。

そこから敷衍すると、あるコンテンツに対して構造表現やレイアウトなどを行うために作成されたHTMLやCSSコードに関しても、そのHTMLやCSSコード自体に独立した著作権は認められない、という可能性が高いと考えられます。もちろん内容によっては、HTMLやCSSによって構成されたコード自体に著作物性が認められる可能性はゼロではありませんが、一般的なHTMLやCSSの使い方の範疇においては、上記判例を判断基準として採用するのが妥当でしょう。

というわけで、基本的な考えとしては、「HTMLやCSSによるコードも著作権による保護を受けうるが、そのための条件をクリアするのは難しい」で違いはないのですが、

  • 分類として「プログラムの著作物」は適用できないだろう
  • 以前は「そのまま丸パクリならば著作権に引っかかるだろう」と考えていたけど、現在は「丸パクリの場合でもよほど特殊なHTMLやCSSコードでない限りは、著作権を主張するのは難しいだろう」と思っている

というあたりが以前とは変わった、という話です*3

ちなみに

上記の「知恵蔵裁判」に関しては、「知恵蔵 裁判」でググるといろいろ関連情報が見つかるので、その周辺事情も知っておいた方がいいかもしれません。

*1 ただし「誰が書いても同じようなコード」のような場合は対象外になるため、HTMLやCSSのコードにおいては、それをクリアするのは難しいとは思うが

*2 単に中間に別のプログラムが挟まるというだけならば、インタプリタ方式によって動作するプログラム言語などでも同様なのだが、HTMLやCSSの場合、そのコード自体と電子計算機への指令との対応関係が非常に希薄である、という点が大きな違い

*3 そこからテンプレート言語の著作権について話を持っていく、という展開はもうちょい様子見

Published At2005-09-06 00:00Updated At2005-09-06 00:00

日記
ジョグダイアル故障 (09:28)Edit

ここ数日W21Sのジョグダイアルの調子がおかしい。ふつうに回しても反応せず、半押ししながら回したりするとなんとか反応する、といった状態。悪いときには何をやっても全然反応しなくなる。ジョグダイアル携帯でジョグダイアルが使えないと、できることがものすごく少なくなる。ショートカットキーとかを駆使しても代替が効かないことが多いし。

で、選択肢としては修理に出すか買い換えるかなんだけど、本当は来年のSuicaに最初から対応している機種(のできればカシオ)が出たら、それに乗り換えようと思っていたんだよなー。W31CAも悪くはなかったんだけど、W21CAIIとの差があまりに小さくてやる気が失せたんで、次まで待つ気になっていたのに。

ひとまずW31CAとW32Sをもうちょい調べておこう。

Published At2005-09-07 00:00Updated At2005-09-07 00:00

日記
文字コードを自前でチェックするようにしました (11:34)Edit

文字コード自動判別の設定を変えたところ、UTF-8のページが化けるようになってしまったんで、自動判別任せはやめて、自前の文字コードチェック処理を追加しました。これで化ける率は低くなったかな。

Published At2005-09-07 00:00Updated At2005-09-07 00:00