http://www.php.net/cvs-php.php
http://elf.no-ip.org/wiki/?PHP%2Fphpdoc%2F04.cvs
http://www.mumumu.org/~mumumu/tmp/apply_php_cvs.txt
どうせなら直接コミットしたいので CVS アカウントを申請した。これが通れば、暇を見て直接作業できるようになる。
俺の場合日本語でも英語でもそうなんだけど、流れに任せてちょいちょいと書いて急いで推敲しただけの文章ってあり得ないくらい恥ずかしい文章であることが大半である。日本の中学生でもやらない間違いが数ヶ所あり、それが当然の如く news.php.net に投稿されていて穴があったら入りたくなった。
上記の最後のリンクは、それを手直ししたものである。美辞麗句はいらない。要点が必要、ということは知っていても、オープンソースソフトウェアの世界では「書いたことがすべて」である。反省します。ハイ。
----
申請のコツは2番目のぢょーさんのWikiに書いてあることが全てであり、俺はそれをなぞっただけに過ぎない。俺がそれに付け加えるとすれば、申請ページの入力フォームには引っ掛け問題というか罠があるので、申請ページの説明は「きちんと」読みましょう。フォームだけ適当に入力して submit すると「必ず」失敗します。
[ Update July 4th 23:14 JST by m ]
無事にアカウントを取得出来ました。これも高木さんの口添えがあったお陰です。ありがとうございます。
2009/07/03
2009/07/01
PHP Manual Translation
http://www.php.net/manual/en/migration53.php
PHP 5.3.0 がリリースされるされると言われていつつも上記が手つかずだったのでおとついまでにざっと翻訳したのだが、コミットログみたら更新入りまくりんぐ。まあこれだけでっかいリリースの前後なので無理もないとは思うけれども。
こりわ高木さん一人じゃ追いつけないわけですね。暇を見つけて無理のない範囲で手伝ってみることにしよう。
PHP 5.3.0 がリリースされるされると言われていつつも上記が手つかずだったのでおとついまでにざっと翻訳したのだが、コミットログみたら更新入りまくりんぐ。まあこれだけでっかいリリースの前後なので無理もないとは思うけれども。
こりわ高木さん一人じゃ追いつけないわけですね。暇を見つけて無理のない範囲で手伝ってみることにしよう。
Tags:
php,
translation
PHP 5.3.0
http://www.php.net/archive/2009.php#id2009-06-30-1
リリースされちゃいました。区切り文字が物議を醸しまくった名前空間やびみょーなクロージャをはじめとして多くの機能が詰め込まれてるわけだけど、個人的には undeprecatedな (一度非推奨にされたが、非推奨ではなくなった)is_a 関数に大笑いしたのと、private や protected に マジックメソッド __call がアクセスできるようになったのが一番面白い変更点である。
特に後者はのべつまくなしに適用すれば OOPの原則いくらでも破れる C++ の friend みたいになっちゃわないですかね? と思ってちょっくら試してみた。
実行結果は以下の通り
ああ、やっぱり呼べるんだ。けどやっぱマジックメソッドはおもろいですよね。あと、Ethnaのテストを実行してみたらやっぱり5.3.0の方が速かった。
リリースされちゃいました。区切り文字が物議を醸しまくった名前空間やびみょーなクロージャをはじめとして多くの機能が詰め込まれてるわけだけど、個人的には undeprecatedな (一度非推奨にされたが、非推奨ではなくなった)is_a 関数に大笑いしたのと、private や protected に マジックメソッド __call がアクセスできるようになったのが一番面白い変更点である。
特に後者はのべつまくなしに適用すれば OOPの原則いくらでも破れる C++ の friend みたいになっちゃわないですかね? と思ってちょっくら試してみた。
class Test {
public function __call($name, $arguments) {
call_user_func(array($this, $name));
}
private function hoge()
{
echo "called hoge\n";
}
}
$a = new Test();
$a->hoge();
実行結果は以下の通り
$ php/5.3.0/bin/php test.php
called hoge
ああ、やっぱり呼べるんだ。けどやっぱマジックメソッドはおもろいですよね。あと、Ethnaのテストを実行してみたらやっぱり5.3.0の方が速かった。
: PHP 5.2.10
real 0m2.180s
user 0m1.908s
sys 0m0.256s
: PHP 5,3.0
real 0m1.905s
user 0m1.648s
sys 0m0.232s
2009/05/16
PEAR_PackageProjector 0.2.0
http://openpear.org/repository/PEAR_PackageProjector/trunk/release
先程のエントリの patch を取り込み、それに伴う細かい変更を行った 0.2.0 を置いておきました。変更点は要するに PEAR 1.8.0 以降に対応しましたよ、ということです。
0.2.0 以降は、PEAR の requirement は 1.8.0 になります。
#あとは sakamoto さんにリリースしてもらえばいいんだな。
----
[0.2.0]
- fixed bug getcwd() routine could not get current directory.
- followed PEAR 1.8.0 API changes.
-- PEAR_PackageFileManager2::exportCompatiblePackageFile1 was deleted.
- replaced Dependency PEAR_PackageFileManager with PEAR_PackageFileManager2.
[ Update 20th May 2009 22:24 JST by m ]
正式にリリースされました。id:magiwo さんありがとう!
先程のエントリの patch を取り込み、それに伴う細かい変更を行った 0.2.0 を置いておきました。変更点は要するに PEAR 1.8.0 以降に対応しましたよ、ということです。
0.2.0 以降は、PEAR の requirement は 1.8.0 になります。
#あとは sakamoto さんにリリースしてもらえばいいんだな。
----
[0.2.0]
- fixed bug getcwd() routine could not get current directory.
- followed PEAR 1.8.0 API changes.
-- PEAR_PackageFileManager2::exportCompatiblePackageFile1 was deleted.
- replaced Dependency PEAR_PackageFileManager with PEAR_PackageFileManager2.
[ Update 20th May 2009 22:24 JST by m ]
正式にリリースされました。id:magiwo さんありがとう!
Tags:
development,
php
[PATCH] PEAR_PackageProjector does not work with PEAR 1.8.0 or higher
http://www.mumumu.org/~mumumu/tmp/pear_packageprojector_over1_8_0.patch
現在は openpear で公開されている PEAR_PackageProjector 0.1.3 は、PEAR 1.8.0 以降では動かない。PEAR Package バージョン1 向けのメソッドが削除されたためなのだが、作者でありメンテナでもある sakamoto さんと直で連絡をとる方法が openpear 上にもないようなので、この日記を書いた時点での最新のtrunk に対する patch を晒しておく。ダウンロードは上記リンクからどうぞ。
[ Update May 17th 2:27 JST by m ]
この patch を取り込んで openpear に新しいバージョンを置いておきました。
現在は openpear で公開されている PEAR_PackageProjector 0.1.3 は、PEAR 1.8.0 以降では動かない。PEAR Package バージョン1 向けのメソッドが削除されたためなのだが、作者でありメンテナでもある sakamoto さんと直で連絡をとる方法が openpear 上にもないようなので、この日記を書いた時点での最新のtrunk に対する patch を晒しておく。ダウンロードは上記リンクからどうぞ。
diff -ur /home/mumumu/ppp/src/PEAR/PackageProjector/Derictory.php /usr/local/php5/lib/php/PEAR/PackageProjector/Derictory.php
--- /home/mumumu/ppp/src/PEAR/PackageProjector/Derictory.php 2009-05-16 05:46:37.000000000 +0900
+++ /usr/local/php5/lib/php/PEAR/PackageProjector/Derictory.php 2009-05-16 06:04:22.000000000 +0900
@@ -307,7 +307,7 @@
if (self::isAbsolutePath($path)) {
return $path;
}
- $tmp = (OS_WINDOWS) ? getcwd() :$_ENV['PWD'];
+ $tmp = (OS_WINDOWS) ? getcwd() : getenv('PWD');
return $tmp .DIRECTORY_SEPARATOR.$path;
}
diff -ur /home/mumumu/ppp/src/PEAR/PackageProjector/Package.php /usr/local/php5/lib/php/PEAR/PackageProjector/Package.php
--- /home/mumumu/ppp/src/PEAR/PackageProjector/Package.php 2009-05-16 05:46:37.000000000 +0900
+++ /usr/local/php5/lib/php/PEAR/PackageProjector/Package.php 2009-05-16 06:08:01.000000000 +0900
@@ -44,6 +44,7 @@
$this->pkg = new PEAR_PackageFileManager2();
$this->options = array();
$this->options['filelistgenerator'] = 'file';
+ $this->options['packagefile'] = 'package2.xml';
$this->options['simpleoutput'] = true;
$this->postInstall = null;
$this->Installgroups = array();
@@ -155,9 +156,7 @@
$this->pkg->addReplacement($installer, 'pear-config', '@bin_dir@', 'bin_dir');
$this->pkg->addReplacement($installer, 'pear-config', '@php_dir@', 'php_dir');
}
- //
- $this->pkg->exportCompatiblePackageFile1();
- //$this->pkg->addRelease();
+ $this->pkg->addRelease();
$this->pkg->generateContents();
$result = $this->pkg->writePackageFile();
[ Update May 17th 2:27 JST by m ]
この patch を取り込んで openpear に新しいバージョンを置いておきました。
Tags:
development,
php
2008/10/18
[memo] How to get Database Metadata by PHP
普段データベースのメタデータを取得する機会なぞあまりない。だが、ORMを弄るときは別だ。ユーザがそうしたものを全部プログラムに書いてくれれば不要なのだが、今時の怠惰なプログラマはそれらを自動生成または補完することを求めるからである。
ということで、ちょっと Creole と adodb の場合を調べたのでメモしておく。test というテーブルのメタデータを取得する流れを記してある。尚、エラー処理は省略してある。
----
1. adodb の場合
2. Creole の場合
ということで、ちょっと Creole と adodb の場合を調べたのでメモしておく。test というテーブルのメタデータを取得する流れを記してある。尚、エラー処理は省略してある。
----
1. adodb の場合
require_once 'adodb/adodb.inc.php';
$dsn = 'mysql://foo:bar@localhost/test';
$conn = NewADOConnection($dsn);
// get ADOFieldObject
// A field object is a class instance with (name, type, max_length) defined.
// @see http://phplens.com/adodb/reference.functions.metacolumns.html
$columns = $conn->MetaColumns('test');
foreach ($columns as $column) {
var_dump($column->name);
var_dump($column->type);
var_dump($column->max_length);
}
2. Creole の場合
require_once 'creole/Creole.php';
// first get DatabaseInfo object.
$dsn = 'mysql://foo:bar@localhost/test';
$conn = Creole::getConnection($dsn);
$info = $conn->getDatabaseInfo();
$test_info = $info->getTable('test'); // TableInfo object.
$test_columns = $test_info->getColumns(); // ColumnInfo object.
// finally get as you like.
// @see http://creole.phpdb.org/docs/api/creole.metadata/ColumnInfo.html
foreach ($test_columns as $column) {
var_dump($column->getName());
var_dump($column->getNativeType());
}
Tags:
database,
memo,
php,
programming
2008/10/11
Ethna 2.5.0 preview2 announced
http://sourceforge.jp/forum/forum.php?forum_id=16056
ようやくアナウンスした。小粒な変更しかないように見えるが、PEAR依存が半分外れていることだけでも割と侮れない。まあ、このリリースは次への布石に過ぎない。
preview3 がおそらく本番だ。いよいよ悪名高いDBとSessionまわりに手を入れるからだ。
おそらくUTF-8化くらいアレなんじゃないかな。実装というよりは落としどころを探すのが(藁
フレームワークというのは実装以上に落とし所を探るのが大変だったりする。
ようやくアナウンスした。小粒な変更しかないように見えるが、PEAR依存が半分外れていることだけでも割と侮れない。まあ、このリリースは次への布石に過ぎない。
preview3 がおそらく本番だ。いよいよ悪名高いDBとSessionまわりに手を入れるからだ。
おそらくUTF-8化くらいアレなんじゃないかな。実装というよりは落としどころを探すのが(藁
フレームワークというのは実装以上に落とし所を探るのが大変だったりする。
Tags:
ethna,
php,
programming
2008/08/08
bye bye PHP4! Go PHP5!
http://www.php.net/archive/2007.php
PHP4 end of life は1年も前からアナウンスされてきたのだが、ようやくその時期がやってきた。自宅で管理しているサーバでも 2008/08/09 0:00 JST の時点でようやくオサラバできる。
唯一心配なのはユーザが 「XXの挙動が違うんですけど!」的な隠し球を未だ持っていることなのだが。大丈夫ですよね? ですよね? 1年前からリバースプロキシまで使って検証環境用意してあったんだから、今更泣かないでね!(`ー´)
仕事でも維持管理しているものを除いては PHP4 とはオサラバ。Ethna については、PHP5で既に動く以上、いつbyebyeするかはまだ考える時期にない。
----
某掲示板(何)にいない人で、www.mumumu.org を借りている人向けに、変更点を以下の通り示しておきます。
PHP4 end of life は1年も前からアナウンスされてきたのだが、ようやくその時期がやってきた。自宅で管理しているサーバでも 2008/08/09 0:00 JST の時点でようやくオサラバできる。
唯一心配なのはユーザが 「XXの挙動が違うんですけど!」的な隠し球を未だ持っていることなのだが。大丈夫ですよね? ですよね? 1年前からリバースプロキシまで使って検証環境用意してあったんだから、今更泣かないでね!(`ー´)
仕事でも維持管理しているものを除いては PHP4 とはオサラバ。Ethna については、PHP5で既に動く以上、いつbyebyeするかはまだ考える時期にない。
----
某掲示板(何)にいない人で、www.mumumu.org を借りている人向けに、変更点を以下の通り示しておきます。
- public_html が PHP5用ドキュメントルートになります
- 1. に伴い、public_html_php5 は廃止されます。そこにこれまで置いていた
コンテンツは削除されませんが、Webからは一切見られなくなります - PHP5移行用に、動作確認用として用意していた php5.mumumu.org も廃止になります
- これまで php5.mumumu.org でリンクを張っていた人も考慮して、php5.mumumu.org
へのアクセスは www.mumumu.orgへすべてリダイレクトされます
2008/07/24
PHP Conference 2008
PHPカンファレンス前夜祭の Hackathon について書いておいて、PHPカンファレンス自体について書いていないのはいかにも片手落ちなので、ここに記録する。
----
本編のセッションでは、やはり Hackathon で殆ど寝なかったのが祟り、楽天のセッションで30分程寝落ちしてしまった。それ以外は切り抜けたものの、強く反省している。とはいえ、haltたんのセッション以降は目の覚めるような内容が自分的に多く、楽しめるものであった。
----
本編以外では、3人のPHPerと昼ご飯を食べたのだが、なぜか「結婚後の漢はかく在るべし」というお題の勉強会と化していた件。「漢は親の前では毅然とせねばならぬ」ということに尽きるだろうか。
懇親会は参加せず帰るつもりだったのだが、喫煙所でshimookaさんに「参加しましょうよ」と言われてあっさり拉致された。そこでは CakePHP 本を含めた PHP書籍の抽選会をやっていたのだが、「Cakeでかくコードはキモイ」と言って憚らない riaf たんに CakePHP本 を取られてしまって非常に悔しかった。よって彼から本を奪い取って10分で流し読みしてやった。全く後悔していない。
懇親会終了後、帰ろうとしたら喫煙所で「煙管(キセル)」で刻み煙草を吸っている女性と別の方が会話をしていた。煙管は今どき非常に珍しいので、つい話に混ざってしまった。喫煙者にとっては非常に世知辛い世の中、煙草コミュニケーションを初対面の方と出来るのは楽しいものである。帰りは KLab の方と談笑しながら京急蒲田まで。
----
重ねて、PHPカンファレンスを切り盛りしたスタッフの皆様、そして参加者の皆様、お疲れ様でした! マジ楽しかったです。これだけ盛り沢山なイベントに行ったのは多分初めて。
----
本編のセッションでは、やはり Hackathon で殆ど寝なかったのが祟り、楽天のセッションで30分程寝落ちしてしまった。それ以外は切り抜けたものの、強く反省している。とはいえ、haltたんのセッション以降は目の覚めるような内容が自分的に多く、楽しめるものであった。
----
本編以外では、3人のPHPerと昼ご飯を食べたのだが、なぜか「結婚後の漢はかく在るべし」というお題の勉強会と化していた件。「漢は親の前では毅然とせねばならぬ」ということに尽きるだろうか。
懇親会は参加せず帰るつもりだったのだが、喫煙所でshimookaさんに「参加しましょうよ」と言われてあっさり拉致された。そこでは CakePHP 本を含めた PHP書籍の抽選会をやっていたのだが、「Cakeでかくコードはキモイ」と言って憚らない riaf たんに CakePHP本 を取られてしまって非常に悔しかった。よって彼から本を奪い取って10分で流し読みしてやった。全く後悔していない。
懇親会終了後、帰ろうとしたら喫煙所で「煙管(キセル)」で刻み煙草を吸っている女性と別の方が会話をしていた。煙管は今どき非常に珍しいので、つい話に混ざってしまった。喫煙者にとっては非常に世知辛い世の中、煙草コミュニケーションを初対面の方と出来るのは楽しいものである。帰りは KLab の方と談笑しながら京急蒲田まで。
----
重ねて、PHPカンファレンスを切り盛りしたスタッフの皆様、そして参加者の皆様、お疲れ様でした! マジ楽しかったです。これだけ盛り沢山なイベントに行ったのは多分初めて。
2008/07/22
PHPCon Eve Hackathon
http://www.nicovideo.jp/watch/sm4033542
PHPカンファレンス2008 前夜祭 Hackathon に参加してきました。
27人中20人が Mac という恐ろしい状態の中で、PHP使いが集まってコーディングを中心に思い思いに過ごしました。参加した皆様、本当にお疲れ様でした!
俺の成果はというと、Ethnaクラス、Ethna_Error クラスを PEAR 依存から解き放つことには成功。だけどそのバグ取りに手間取り、producingoss.com は手付かずで終わった、、( ;´Д⊂ヽ
以下は、俺的なハイライトの纏め。
----
主催者である kunit さんが内容を全く自重せずに発表しているので、最初に張ったリンク先の動画もどうぞなのです (*´〜`)
PHPカンファレンス2008 前夜祭 Hackathon に参加してきました。
27人中20人が Mac という恐ろしい状態の中で、PHP使いが集まってコーディングを中心に思い思いに過ごしました。参加した皆様、本当にお疲れ様でした!
俺の成果はというと、Ethnaクラス、Ethna_Error クラスを PEAR 依存から解き放つことには成功。だけどそのバグ取りに手間取り、producingoss.com は手付かずで終わった、、( ;´Д⊂ヽ
以下は、俺的なハイライトの纏め。
----
- Mac率75%という状況。Let's Note 3台、Thinkpad 2台、VAIO 1台、Inprison 1台以外は皆Macだったような
- IRCでは数年来見かけていた nekogetさん とついに出会う
- suzuki さんが emacs 講座でモテフラグ全開
- ちなみに全裸プログラミングはやっていない
- GREE の藤本さんにはじめてお会いした。というか、ネットであれだけ絡んでいてリアルで初対面ってねーよwwwwwwww
- 密かにファンだった moriyoshi さんと会話できて至福。Mozo.PHP 超スゲー! 一定のインターフェイスに従えばC++で簡単にPHPエクステンションが書ける!
- ブログ上で消息を断っていたBoBppさん がいた! 仕事はPerlだけどPHPerの魂は失われていなかった。
- 夜中にここいちさめが登場。僕は必ず来ると思ってましたけどね(`ー´)
- Ethna はやっぱりDB, セッションとプラグインはどげんかせんとあかん。preview2を出したらまずDBまわりから。
- Ethna のViewはやっぱこうやって使うもんだよねー。汎用のViewはコアに追加してもいいんじゃないか
- なんでEthnaのフィルタって適当な条件でスキップするフックがないの?
- Ethna は真の意味でのMVCではない! 何をどこに書いていいか迷うフレームワークは設計が不適切。CakePHP はその意味で素晴らしい。この話は haltたん も居て欲しかったかも
- sotarok, flyfront さんの サイトマップ Hack 超カッコヨス。使っているフレームワークが何であれ、人はやはり似たようなことを考える
- Ethna_Getopt は Public Domain 扱いなのに、コードを coderepos に置くの忘れてた
- 高木神にはじめてお目にかかった。自重しない俺とは全くもって対照的なお方である。Producing Open Source Software についてお話した。
- 「国民的RPGの嫁」を1時間真剣に考えてビアンカに決めた某CTO
- PHPCon のパネルディスカッションに出ることになっていたRubyの高橋さんをtakesakoさんだと素で思っていたmumumu。いや、つか似てね?(首から上の話)
- その高橋さんはアツい人であった。プログラミングへの愛が感じられた
- 3時とかでも殆どの人は平気でコーディング。なんだみんな俺と変わんないぢゃん(ぇ
- Ethna_Error のバグ取りに手間取り、結局20分しか寝られなかった。PEAR を呼び出す部分との切り分けをもっとうまくやるべきだったと反省している。
主催者である kunit さんが内容を全く自重せずに発表しているので、最初に張ったリンク先の動画もどうぞなのです (*´〜`)
Tags:
ethna,
event,
php,
translation
2008/07/20
Position paper@PHPCon Eve Hackathon
http://d.hatena.ne.jp/kunit/20080716
今日は、夕方から夜通し PHPカンファレンス2008 の前夜祭という形で Hackathon が行われることになっている。ネタは自由なのだけれども、俺的な課題は以下の3つ。特に最初のふたつは達成しなければならない。
今日は、夕方から夜通し PHPカンファレンス2008 の前夜祭という形で Hackathon が行われることになっている。ネタは自由なのだけれども、俺的な課題は以下の3つ。特に最初のふたつは達成しなければならない。
- Ethna_Error を PEAR非依存にすること
- Producing Open Source Software の翻訳で 高木神 と絡むこと
- ステートマシン的な何かを作ること
Tags:
ethna,
event,
php,
translation
2008/06/13
strtotime f**k!!!!!
$ ~/php/4.4.8/bin/php -r 'var_dump(strtotime("2009-91-111"));'
int(1476802800)
$ ~/php/5.2.6/bin/php -r 'var_dump(strtotime("2009-91-111"));'
bool(false)
----
なんなんだこの一貫性のなさは!!!!ヽ(`Д´)ノ
#今のところ代替関数が見つからないので、Ethnaは修正せずにドキュメントに
#その旨を明記することにする。strtotimeは(ry なので VAR_TYPE_DATETIME は
#注意して使ってね、って(藁
int(1476802800)
$ ~/php/5.2.6/bin/php -r 'var_dump(strtotime("2009-91-111"));'
bool(false)
----
なんなんだこの一貫性のなさは!!!!ヽ(`Д´)ノ
#今のところ代替関数が見つからないので、Ethnaは修正せずにドキュメントに
#その旨を明記することにする。strtotimeは(ry なので VAR_TYPE_DATETIME は
#注意して使ってね、って(藁
2008/06/03
ethna.jp, jp2.php.net cracking ado
MLに「ethna.jp に妙なiframeが埋め込まれている」との報告があったのが11時前。藤本さんが調査の上、コンテンツに改竄がないことを確認した上で、ついでに sourceforge.jp にも移行しちゃおうぜ! となったのが16時。
詳しくは maru_cc さんのエントリに纏まっているので、そちらを参照頂くとして、、最終的に移行してアナウンスを出したのが22時前。これでリリースその他の管理作業は俺がいる限りロックしないだろう。
----
一日の大半の時間を使って調査、移行に対応頂いた藤本さんには感謝雨あられである。また、IRCで手伝ってくれたmaru_ccさん、見守ってくれた皆様に対して、この場を借りて御礼申し上げますm(_ _)m
----
しかし、、ARP Spoofing て防ぎようがないよなぁ、、ネットワークの経路上でやられるなど、寝耳に水だった。さくらインターネットも「不安定」で済むのかどうか小一時間(ry
詳しくは maru_cc さんのエントリに纏まっているので、そちらを参照頂くとして、、最終的に移行してアナウンスを出したのが22時前。これでリリースその他の管理作業は俺がいる限りロックしないだろう。
----
一日の大半の時間を使って調査、移行に対応頂いた藤本さんには感謝雨あられである。また、IRCで手伝ってくれたmaru_ccさん、見守ってくれた皆様に対して、この場を借りて御礼申し上げますm(_ _)m
----
しかし、、ARP Spoofing て防ぎようがないよなぁ、、ネットワークの経路上でやられるなど、寝耳に水だった。さくらインターネットも「不安定」で済むのかどうか小一時間(ry
登録:
投稿 (Atom)