年: 2005年

とばっちり?

CNet Japanでも「米で史上空前の情報流出–4000万件のクレジットカードに影響か」と報道されているように日本で影響があったクレジットカード発行会社としてNICOSがあります。

私もNICOS郵貯VISAカードを持っています。支払日が近いのですが明細書が届いていなかったのでWebから確認しようと思い、NICOSのWebサイトに行くと重くて使えませんでした。サーバが混雑していたのはMASTERカードの情報漏えいの影響ではないかと推測しています。

前から気になっていたのですがNICOSのサイトはSSLが不必要なページでもSSLが使われていたりします。一時的に経営危機があったとは言えそれなりの作りになっていて高負荷時でも問題無く動作するように作られている、と思っていたのですがそうでは無かったようです。
# 備考:SSLを使った通信と普通の通信を比べると、SSLを使った
# 通信の方が大きな負荷がサーバにかかります。

ところで、アメリカでは無差別攻撃的なフィッシングはもう古い手口になっています。今回のMASTERカードから漏洩した情報には社会保障番号は含まれていないようですが、住所、氏名、電話番号、勤務先、社会保障番号などの個人情報を含んだメールを送信し信用させ更に重要な情報を取得する詐欺が多発しています。中にはこのような手間をかけずに盗んだ個人情報で勝手にクレジットカードを作り使用する犯罪も横行しています。

カードの不正利用は保障されるので過剰反応する必要はありませんが、利用明細は必ず確認した方がよいでしょう。大学いた頃の話なので随分昔の事ですが、経営学の教授は毎月のように使った覚えのない航空券の請求がくる、と言っていました。幸いまだ私はこのような不正利用による請求はありませんでしたがクレジットカード利用者であればありえるリスクです。
# 不正利用は保障されますが暗証番号を伴う取引は保障されない可能性が
# 高いです。店頭などで暗証番号は入力しない方がよいと思います。

PHP4でpublic

PHP本家の開発ML internals@lists.php.net ではPHP4でpublic宣言を行えるようにするかどうかで盛り上がっています。

PHP5を使っている方はご存知の通り、PHP5からオブジェクトのプロパティはpublic, protected, privateにアクセスレベルを限定できるようになりました。それと同時に古いプロパティ宣言であるvar宣言は使わないよう推奨されています。

初めの頃のPHP5のリリースではPHP5で追加されたE_STRICTエラーを表示する為の記述に間違いがありました。E_ALLではE_STRICTエラーでは表示されず、E_ALL | E_STRICTにしなければなりません。E_STRICTエラーにはvar宣言についてもvarではなくpublic, private, protectedを使用する旨のエラーが発生します。E_STRICTエラーを表示する設定方法に間違いがあったため、E_STRICTエラーには気が付きづらかったと思います。E_STRICTレベルエラーを有効にしてエラーの数に驚いた方も多いかも知れません。

しかし、var宣言エラーの問題さえクリアすればほとんどE_STRICTレベルのエラーを回避し、PHP4とPHP5の両方で実行できるコードを書くことも可能になります。現状ではPHP4ではクラス定義の際、プロパティは必ずvar宣言しなければならないのでクラスを使えばE_STRICTエラーは必ず発生します。

class foo {
public $var;
}

をPHP4でも使えるようにするメリットはあります。PHP4用のコードと言いつつPHP4.4より古いPHP4では実行できなくなるのも困るというのも分かります。

私はPHP4の文法は拡張せず最初に読み込むアプリケーションの設定ファイルなどで


error_reporting(E_ALL);

を実行する方がよいのではないかと思っています。
この方法には最初に読み込まれるファイルが在ること、そのファイルにクラス定義が含まれないと前提条件もありますがこれでも十分ではないかと思います。

# 最悪、auto_prependでerror_reporing設定を変える方法も使えます。

pgpool 2.6 alpha

pgpool 2.6の人柱を募集中とのことです。こういったものは広く告知した方がよいのでpgsql-jp MLのメッセージをそのまま貼り付けます。

石井です.

久々にpgpoolのバージョンアップをしようとしています.ついては,できたばかりのV2.6のアルファ版を,

http://www2b.biglobe.ne.jp/~caco/pgpool/tmp/pgpool-2.6.tar.gz

に置きましたので,人柱になっても良い,という方は是非ご協力をお願いします.

2.6の目玉は,SERIAL型への対応です.といっても,やっていることはごく単純で,INSERT文があったらそのテーブルに自動的にテーブルロックをかけるだけです.トランザクションの並列実行性は犠牲になりますが,SERIAL型の列がマスタとセカンダリで一致しなくなることは防げます.

ちなみに自動ロックの機能はSERIAL型を含まないテーブルにも働いてしまいます:-)回避方法はREADME.euc_jpをご覧下さい.

以下,2.5.2からの変更点のリストを付けておきます.
——————————————————————-
o pool_error etc.で,asprintfの後でfreeしていなかったのを修正.

o main.cで,mallocのサイズが誤ってpool_config.num_init_children
* sizeof(pool_config.num_init_children)
になっていたのをpool_config.num_init_children * sizeof(pid_t)に修正.

o parameter statusの値が一致していなくてもエラーにならないようにした(USとNZでレプリケーションしている例があった!).

o pgpool stopで終了せず,一旦killされた後,pgpool -m f stopを受け付けなくなるバグを修正.

o 新しいディレクティブinsert_lockを追加.trueの場合,INSERT実行時に自動的にテーブルロックを行う.これにより,SERIAL型を含むテーブルの同期を取ることができる.なお,/*NO INSERT LOCK*/コメントを付けると,そのINSERT文のみテーブルロックを行わない.あるいはinsert_lockがfalseでも/*INSERT LOCK*/コメントを付けるとテーブルロックを行う.

o 2.5.2で追加された「strictモードであっても,SELECTだったらsecondaryの完了を待たない」仕様を取りやめ.代りに,/*NO STRICT*/コメントを追加.

o show pool_statusに新しい情報を追加.縮退やフェイルオーバ状況を分かりやすく表示するようにした.
server_status| master( on 5432) up secondary( on 5433) down| server status
——————————————————————-

Tatsuo Ishii

b2evolutionのrdf.php

b2evolutionのRDF(RSS 1.0)の出力、mixiに合わせる為にdc:dateの日付出力にローカル時間を使うようにしました。

dc:dateは[W3CDTF]の日付と時間の表記とすると規定されています。

[W3CDTF]はZが指定された場合、はUTCとして取り扱う

Times are expressed in UTC (Coordinated Universal Time), with a special UTC designator (“Z”).

と記載されているのでb2evolutionのrdf.phpの仕様が悪いのではなくmixiのRSSリーダの問題です。しかし、このままでは使いづらいので仕方なしにmixi対応するために変更しました。mixiにはバグとして報告済みなのですが直る気配がないので…

ウェブアクセシビリティ入門

WebアクセシビリティのJIS規格も策定され最近 JIS X 8341-3に対応したサイトにして欲しい、というリクエストが急増しています。この規格はWAIのWCAGを多少拡張したような規格で

5.3.c) 入力に時間制限をもうけないことが望ましい。時間制限があるときは事前に知らせなければならない。

と言う一歩間違えればセキュリティを全く考えないサイトを作らせてしまうような拡張もあったりします。
# 規格に準拠するために絶対に時間的制限を付けてはならない
# という事ではありません。「望ましい」となっているので必
# 須事項でもありません。完全に準拠する場合、時間制限があ
# る場合それを明記し調整可能、または代替手段を提供すれは
# 規格に準拠しているとみなせます。

前置きが長くなりましたがウェブアクセシビリティ入門といという視覚障害者の方が運営に関わられているメーリングリストを知りました。バックナンバーもブログ風に読めるようになっているようです。登録したばかりなので中身は評価できませんが、健常者の場合、気を付けていても気が付かない問題を作ってしまう事が容易に想像できるので参考にさせていただこうと思います。

Firefoxのメニューフォント

Momonga Linux2/KDEのfirefoxにUser Agent Switcherをインストールを試みた際にプロファイルが壊れてしまいました。仕方ないのでプロファイルを再作成しました。Webコンテンツのフォントは普通ですが、firefoxのメニュー等のフォントが非常に大きくなってしまいました。

環境を変えて試して見ると

.kdeと.kdercを削除:状況変わらず
KDE -> Xfce4:状況変わらず
KDE -> Gnome:普通に表示

何故かGnomeだと普通のフォントサイズで表示されます。
普段デスクトップPCはKDEを使用しており、Firefoxのメニューフォントが25ptくらい表示される状況は我慢できないので場当たり対処としてuserChrome.cssで対処する事にしました。

@namespace url(“http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul”); /* set default namespace to XUL */

* {
font-size: 12px !important
}

ポイント指定ではフォントサイズは変更されず、何故かピクセル指定にするとサイズが修正できました。壊れたプロファイルからブックマークなど必要なデータを手動で移行しようとしたところで、バックアップからプロファイルを丸ごと戻せば一発である事に気付きバックアップからプロファイルをリカバリしました。朝早くから(夜遅くからの方が正しい表現かも)作業していると当たり前の事に気が付かない事がありますね。

設定ファイル類が無い状態でもメニューフォントが大きくなってしまうようです。もしMomonga Linuxのfirefoxのフォントが大きすぎる場合、取り合えずuserChrome.cssを設定しても良いと思います。(~/.mozilla/firefox/salt.default/chrome/userChrome.css)
# 原因を知っている方。教えてください :)

気が付かない、と言えば「明治のおいしい牛乳」の開発には13年もの時間が必要だったそうです。8年経って「時間が経過すると酸化して味が変わる」という当たり前の事に気付いたと今朝の新聞に書いてありました。当たり前でも気が付かない時は気が付かないですよね。しかし8年は長いですね。

Javaのセキュリティホール

このセキュリティーホールは1週間ほど前に報告されている問題で、ちょっと古いですがメモとして残しておきたいので書いておきます。

The flaws are “highly critical,” security monitoring company Secunia said in an advisory posted Tuesday.

自動更新を有効にしている場合、アップデートが自動的に行われます。私のPCも先週「アップグレードしてください」と表示されました。

http://sunsolve.sun.com/search/document.do?assetkey=1-26-101749-1
http://sunsolve.sun.com/search/document.do?assetkey=1-26-101748-1

適当なニュース記事を探そうと、CNet Japanを見ても記載されていないので本家を見て見ると載っていました。日本語版でも載っていたほうが良い様な気がします。

S2PHP5

S2PHP5は名前の通りPHP5専用のフレームワークだそうです。

説明

Java版のSeasar2を、PHP5に移植します。

 マイルストーン
M1: Java版Seasar2をPHP化する (バージョン 0.9x)
パッケージ構成やインタフェースを統一し、Javaのソースをできるだけ変更することなくPHP5に書き換えます。
M2: PHPらしくリファクタリング (beta バージョン)
リリース1.0 に向けて、移植もれ、移植ミス、動作不具合への対応。
また、実装方法、命名規則、名前空間、クラス定義の読込み方法や設定ファイルの在り方等々、ユーザ様からの声を検討、反映し、「 易しく・優しく・PHPらしく 」 を目標にリファクタリングします。
ご意見・要望など Seasar-User ML までお願いします。

最初のリリース(0.92)は5/29のようです。現在は0.93(6/9)が最新リリースのようです。

面白そうなので近いうちに時間を作って試して見たいです。

# 私のアンテナあまり広くないので、面白そうな情報があった
# ら是非教えてください :) 

ThinkPadのリカバリ

今はThinkPadを持っていないのですが何かの役に立つかもしれないのでメモとして。

これでok。
なんと、Rescue and RecoveryはPythonでできてるようです…。

Pythonなんですね…
海外でのPython人気は非常に高いですね。Pythonも一通り読み書きできるようにならねばなりませんね…

Wikiのコンテンツ

以前検索エンジンからのヒットが多かったコンテンツを自分のWikiに追加してみました。中身が無くなってからアクセスがほとんど無い状態が続いていましたが多少増えました。効果は十分あったと思われます。この事からも検索エンジンで検索されている情報にはかなりの偏りがあると思われます。

少なくともISOを焼く方法を探している方は比較的多いようです。KDEならk3b、等ISOイメージを焼くツールはいろいろありますが名前からCD/DVDが焼けるとは推測できないですよね… その結果、検索エンジンで”ISO 焼き方”等のキーワードで検索、私のWikiにヒットという感じらしいです。

検索と言えば、このblogに対するgoogleの検索エンジンの評価は高過ぎと思います。特にSEO等を行っていないのですが検索結果の高い位置を占めています。ページランクの高いページからリンクしていただいている結果と思いますが、下手な事を書きづらくなると言う思わぬ効果もあります…

# ルビー(あえて片仮名)の事などほとんど書いていないにも
# 関わらずkazuhikoさんのblogより先に表示されているケース
# があるのは問題ありですね (汗
# 1000ユニークID/日 程でアクセス数が多いこともないので気に
# する必要なしとも言える程の数字かもしれませんが(笑

3つの脅威

米国の政府機関では、スパム、フィッシング、スパイウェアというインターネット上の3つの脅威に対処する体制が整っていない、と米政府の監査官らは結論づけた。

最近まで外部からの攻撃で身近なセキュリティ上の脅威といえばウィルスやワームでしたが、今はスパム、フィッシング、スパイウェアが身近で最も大きな脅威であると思います。(ウィルス対策に力を入れなくて良いという事ではありません。念のため)

これら3つの脅威への対応は、ウィルス対策に比べると、ユーザ教育が非常に重要になってきます。システム的に対処を行いづらいため対策コストが多く必要になる割には高い効果も期待できません。

企業では、ウィルスを同様に、スパイウェアがPCに紛れ込まないシステム管理を行う事も十分可能です。しかし、システムとして対応できない部分、例えば非常事態が発生した場合の対応のマニュアル化などはやらなければならない事は山積みです。

最近、ファミリーレストランの店長を、クレームなど、何らかの理由で外部に呼び出し、店長が留守のすきにアルバイト店員を騙して売上金を奪う詐欺が目立ってきているようです。

クレームを装って店長を呼び出し、残った店員から現金を受け取るという手口はソーシャルエンジニアリングを利用した犯罪の典型例です。スパム、フィッシング、スパイウェアを利用する攻撃もソーシャルエンジニアリング攻撃といえます。最大の問題はソーシャルエンジニアリングに対してウィルス対策ソフトウェアのような特効薬がないことです。困ったものです…

ナノテクは危険?!

新技術や便利な物にリスクがあることは普通ですが、ナノテクにも危険性があるようです。ナノテクに関連したリスクは全く認知していませんでした。

米国で安全性を確認する為の予算もついているようです。”ナノテク 安全性“で検索すると既に日本でも安全性に対する研究が進んでいるようです。

HDDエラー

いきなり壊れるよりはよいのですが…
取り合えず-tでテストですね。

Error 25 occurred at disk power-on lifetime: 239 hours (9 days + 23 hours)
When the command that caused the error occurred, the device was in an unknown state.

After command completion occurred, registers were:
ER ST SC SN CL CH DH
— — — — — — —
84 51 08 4f f7 70 e2 Error: ICRC, ABRT at LBA = 0x0270f74f = 40957775

Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
— — — — — — — — —————- ——————–
ca 00 08 4f f7 70 e2 00 00:10:54.752 WRITE DMA
ca 00 08 4f f7 70 e2 00 00:10:54.704 WRITE DMA
ca 00 08 4f f7 70 e2 00 00:10:54.656 WRITE DMA
ca 00 08 4f f7 70 e2 00 00:10:54.592 WRITE DMA
ca 00 08 4f f7 70 e2 00 00:10:54.544 WRITE DMA

MySQL 5のデータベースエンジン

mysql> SHOW ENGINES;
+————+———+————————————————————+
| Engine | Support | Comment |
+————+———+————————————————————+
| MyISAM | DEFAULT | 高性能のMySQL 3.23以降のデフォルト・エンジン|
| HEAP | YES | MEMORY のまたの名前 |
| MEMORY | YES | Hashベースで、メモリー内に格納、テンポラリ・テーブルに適す。|
| MERGE | YES | 同一のMyISAMテーブルのコレクション  |
| MRG_MYISAM | YES | MERGE のまたの名前 |
| ISAM | NO | もう使われないストレッジ・エンジン、MyISAM を使用のこと。 |
| MRG_ISAM | NO | もう使われないストレッジ・エンジン、MERGEを使用のこと。 |
| InnoDB | YES | トランザクション、行レベルのロッキングとフォーリンキーのサポート |
| INNOBASE | YES | INNODB のまたの名前 |
| BDB | YES | トランザクションとページレベルのロッキングをサポート |
| BERKELEYDB | YES | BDB のまたの名前 |
| NDBCLUSTER | NO | クラスタ、耐障害性のメモリー・ベースのテーブル |
| NDB | NO | NDBCLUSTER のまたの名前 |
| EXAMPLE | NO | ストレッジエンジンの例 |
| ARCHIVE | NO | アーカイブ・ストレッジエンジン |
| CSV | NO | CSV ストレッジエンジン |
+————+———+————————————————————+

メモリ上にだけ存在するデータベースはPostgreSQLにも欲しいですね。CREATE TEMP TABLEを拡張して実装とか?

ちなみにSQLiteはメモリ上にデータベースを持てます。MSDEもメモリ上にデータベースを持てたと思います。もう何年も前になりますがIMDB(In Memory Database)として話題になっていました。

PostgreSQLをハックするならIMDBの実装しかない?!

SNS で外部 Blog を消す

便利かも?

コメントもRSS配信してしまうシステムの場合、配信数が多くなりすぎてうっとうしい、という状態を緩和させるツールらしいです。日記本体とコメントは別のRSSになっていないと嫌な場合もありますね。# 特にコメントSPAMなど

個人的には、外部ブログにリンクしている場合でも直接ページを表示する仕様の方が便利と思います。

わざと使い勝手を悪くしているのはシステム内の日記を使ってほしいから??