ご利用中のデータベースサーバについて

平素より弊社サービスをご利用いただき誠にありがとうございます。 さくらインターネットのカスタマーセンターです。

データベースサーバ mysql21.db.sakura.ne.jp において、サーバへの過負荷が 顕著であることを確認しました。弊社にて原因を調査いたしましたところ、お客 様ご利用のPHPプログラム(/home/attach/www/glue/bin/crawl.php) がCRONで定期的に実行されていることに起因しているのを確認いたしました。こ のため、緊急的措置として、設定済みのCRONを解除させていただきましたのでご 連絡いたします。

ちょ…。

「このサーバ、クローラ動かすべからず。」

「月500円のサーバの限界に立ち向かい、そして敗れた男達がいた…」

「風の中のすばるー♪ 砂の中の銀河ー♪ (略

丁度、新しいサーバを提供してもらえることになったところ。危なかった…。

p0t: 便利な日付フォーマット定数

しかし、PHP4の出番もまだまだ多いのでがっかり…と見せかけてPEAR PHP_CompatのCVSにはしっかり/Constant/DATE.phpが!!!

以前こんなこと書きましたが、よく見るとこのDATE.phpでの定義で出てくる時間は5.1.1以降のと少し違う。 GMTとの時間差のフォーマットが違う。

本来の定数: +09:00 DATE.phpの定数: +9000

DATE_W3Cとかでその差がでちゃいます。そもそも、コロン入りの時間差を出すフォーマット文字列”P”が5.1.3からの追加らしい。

PHP: date – Manual

P グリニッジ標準時 (GMT) との時間差。時間と分をコロンで区切った形式 (PHP 5.1.3 で追加)。

知らずにGoogle SitemapとかでDATE_W3C使うと怒られます。(怒られた)

p0t: attr_accessor ← コレ何?

Rubyでのクラス定義ってC やJavaやPHPのようにコンパイラに対して定義を通知しているものではなくて、実行文なんですよね。 なので、attr_accessorとかbelongs_toってのは関数で、そこで実行されます(例えばbelongs_toの次の行でprintを入れてみるといきなり表示されたりします)。このあたり、初めてRubyみるとカルチャーショックが多いですね。

Posted by: kunit | 2006年08月23日 13:47

やべっ、超わかるーーー!!!

やっべー、超わかるよーーー!!!(2回目)

””演算子オーバーライド”はC++、”“ブロック付きメソッド呼び出し”はPrototype.jsのおかげで分かりましたが、これもLispとか関数型言語をやってたら特に引っかからないんでしょうな。

しかし、kunitさんは俺の腐った文章で何故、どこがどう分からないと感じているのかまで分かるんでしょうか。

p0t: attr_accessor ← コレ何?

attr_accessor ← コレ何???

p4lifeのメモ – 「Perl Monger の質問 – AUTOLOADって他でどうやるの?」:PHP編

アンダーバーを付けさえすればどんな問題も解決すると思っているのかもしれない

笑った。

メールが飛ばない件についてコメント頂きました。

p0t: No route to host…

自宅のPCでPHPからメールが飛ばない。 というかそもそも外部のsmtpに接続できない…。

(略

契約している ISP の Outbound Port25 Blocking にひっかかってるのが原因だったりしませんか?

Posted by: ishii | 2006年08月21日 16:47

あぁ、OPBね。(知らない)

Outbound Port25 Blockingって何だろう?

@IT:25番ポートの攻防

op25b

つまり、ISPが管理している動的IPアドレスから外側に向かうSMTP(TCPの25番ポート)を止めてしまえばいいわけである。この方法は「Outbound Port25 Blocking」と呼ばれている。

なるほど…、うちのso-netはどうなんだろう。

Outbound Port25 Blocking 会員サービス(メール) | So-net

So-netではこの【Outbound Port25 Blocking】を、NTT東日本・NTT西日本のフレッツ網経由でSo-netに接続しているお客さまに対して実施しています

な、なんだっ(略 ーーーーーっっっ!!!

畜生!ニートの純情踏みにじりやがって!

しかし、おれにもっとネットワークの知識と自信があればすぐに、「自宅のネットワークには問題無いからプロバイダ以上に何かあるはず!」と確信を持って調べたりできたはず。

プロバイダ → 自宅ルータ → サーバのiptables → サーバのMTA → PHP

おれはなんとかルータより下は問題無いハズってところで、「ルータのパケットフィルタの設定、合ってるはずなんだけど、よくわからん…」となり、気力も尽き、体力の限(略

ともかくishiiさんの指摘のおかげで(少ししか)のたうち回らなくて済みました。 ありがとうございます!

自宅のPCでPHPからメールが飛ばない。 というかそもそも外部のsmtpに接続できない…。 (外部のサーバからは接続できる)

% tail /var/log/mail.log
Aug 21 06:11:24 localhost postfix/smtp[7351]: connect to gmail-smtp-in.l.google.com[64.233.163.27]: No route to host (port 25)

% telnet gmail-smtp-in.l.google.com 25
Trying 64.233.167.114...
Trying 64.233.167.27...
telnet: Unable to connect to remote host: No route to host

ルータのパケットフィルタの設定かな? 一晩ハマッて…体力の限界っっっ!(千代の富士)

plnet_open

plnet.jpはじめました。 Planet Debian, Planet PHP、じゃなくて、”Planet おれ”みたいなのが作れるサービスです。

「ニートは暇あんなぁ」とか「それPlaggerで(」とか思ったとしても心の中だけにしまっておいてください!

PEAR :: PEPr :: Details :: PHPRPC

Description

PHPRPC is a RPC (Remote Procedure Calling) protocol. It uses PHP serialize representation to transfer data, so the complex object such as multidimensional array, associative array and instance of object can be transferred with little redundancy. It was allowed to transfer data in security using XXTEA encryption algorithm.

面白い。 そもそもserialize後のデータ、あれって何か形式/フォーマット名あるのかな?

PHP: セッション処理関数(session) – Manual

session.serialize_handler string

session.serialize_handler は、シリアル化または シリアル化データを復元するために使用されるハンドラの名前を 定義します。現在、( php という名前の) PHP 内部 フォーマットおよび (wddx という名前の) WDDX が サポートされています。WDDX は、PHP がWDDX サポート を有効にしてコンパイル されている場合のみ使用可能です。デフォルトは、 php です。

「phpという名前のPHP内部フォーマット」かよ! ※原文だと「a PHP internal format (name php)」

じゃあおれの中だけで勝手に名前付けます。APIF(a PHP internal format)。 気を付けろ!会話中、ふつーに使ってくぞ!?

他の言語から扱うのでいうと、Perlでかなり前のMiyagawa TatsuhikoさんのPHP::Sessionモジュールがありますが、そりゃ、「PHP default serialization」としか言いようがないわな。

このフォーマットを汎用データ形式として広めようって剛の者はいないかな?

本題に戻ると、そもそもJSON-RPCの方がいいんじゃな(略。

PHP: 日付・時刻関数 – Manual

定義済み定数

以下の定数は PHP 5.1.1 以降で定義されており、標準的な日付の書式を表します。 日付フォーマット関数(date() など)で使用します。

DATE_ATOM (string) Atom (例: 2005-08-15T15:52:01 00:00)

DATE_COOKIE (string) HTTP クッキー (例: Mon, 15 Aug 2005 15:52:01 UTC)

DATE_ISO8601 (string) ISO-8601 (例: 2005-08-15T15:52:01 0000)

DATE_RFC822 (string) RSS (Mon, 15 Aug 2005 15:52:01 UTC)

DATE_W3C (string) World Wide Web コンソーシアム (例: 2005-08-15T15:52:01 00:00)

PHP5.1.1から時間マニアにはたまらない定数がたくさん追加されてる。

おかげで、

echo date(DATE_RFC822)

みたいに仕様名で書けて後から見てもわかりやすいコードがPEAR Dateを使わなくても出せるのが嬉しいです。 おれ的にはフィード関係を見てることもあって、DATE_ATOM, DATE_W3C辺りがこたえられません。(異常者)

しかし、PHP4の出番もまだまだ多いのでがっかり…と見せかけてPEAR PHP_CompatのCVSにはしっかり/Constant/DATE.phpが!!!

% php -r '::';
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in Command line code on line 1

ってやると出るエラー。

PAAMAYIM_NEKUDOTAYIMってなに???

ぱあまいむねくどたいむ?ってなんだよっっ!

通るかっ!そんなもんっ!(カイジ)

…しかしっ、おれにはわかるぞ!偶然だが知っているぞ!

PHP: スコープ定義演算子 (::) – Manual

スコープ定義演算子 (Paamayim Nekudotayimとも呼ばれます)または より簡潔にダブルコロンはトークンで、 static, 定数および オーバーライドされたクラスのメンバやメソッドにアクセスすることができます。

これらの要素をクラス定義の外から参照する際には、 クラスの名前を使用してください。

Paamayim Nekudotayim は、まず、ダブルコロンの名前としては、奇妙に 思えるでしょう。しかし、Zend Engine 0.5 (PHP 3のエンジン)を 書いている時に、Zendチームはこう呼ぶと決めたのです。 これは、実際には、ヘブライ語でダブルコロンのことなのです!

「ふ・・・・・・ふざけるなっ・・・・・・!てめえっ・・・・・・・!」

「んなこと通るかっ・・・・・・・!変更するなら・・・・・・すぐ変更しろっ・・・・・・・!汚ねえぞ・・・・・・っ!」

「許せるかっ・・・・・!許せるかよっ・・・・・!そんなペテンっ・・・・・!」