徳丸はPHPが好きか? ですが、元はそんなこと意識してなかったんです。日本のPHPコミッターの一人にコイズミモリヨシ( @moriyoshit )という男がいますが、たまたま彼と昼食が一緒になる機会があって、その席で彼からぼそっと言われたんです。『徳丸さん、PHP好きでしょ』…あぁ、それまでPHPが好きかどうかなんて、考えたこともなかったのです。自分はPHPが好きか? 考えているうちに、あっ、自分はPHPが好きなのかも…と思い始めました。おそらくモリヨシが私に呪いをかけたんだと思いますね(笑い) 同業者からは、徳丸はなぜあんなにPHPを追いかけ回すんだろと思われていると思います。「徳丸さんはPHPを安全に使う方法を示した罪深い方」と書かれたこともあります(揶揄なのか、批判なのか、まさか褒めているのか、なんなのかよくわかりませんがw)。 かつては、PHP界隈の一人から、面と向かって「徳丸さん
行ってきました。ちょっと話しました。 http://yamiphp.doorkeeper.jp/events/8749 https://twitter.com/search?q=%23yamiphp&f=realtime 各発表者のタイトルとスライドは以下です。 @chobi_eさん 「入門Zend Memory Manager」 第五回闇PHP勉強会で入門ZendMemoryManagerについて話してきました @co3kさん 「お前は PHP の歴史的な理由の数を覚えているか」 お前は PHP の歴史的な理由の数を覚えているのか from Kousuke Ebihara @moriyoshitさん 「やめられないPHP魔改造2014〜zend_astなどを中心に」 https://dl.dropboxusercontent.com/u/673207/yami-php-201403/co
sotarokを勝手に祝う会に行ってまいりました! 僭越ながらこのたびはLTをさせていただいたので、その内容の紹介をさせていただきたく。(日立風) 皆様ご存知のことと思いますが、OSSコミュニティーにおいて、開発者が結婚する際には、新郎と新婦に オリジナル○○○○○○○○○○○ を贈呈するという慣習があります。 はい、もちろん オリジナルApacheモジュール ですね。 というわけで、今回は mod_sotarok mod_mikko を作らせていただきました。 mod_sotarok-mod_mikko at github.com mod_sotarok.c: /* * Copyright (c) 2010 Moriyoshi Koizumi * * Permission is hereby granted, free of charge, to any person obtaining
なんか知らないうちにPHPを全然書いたことがないという噂が広まっていて心外すぎるので弁明しておく。長くなるかもしれない。 PHPを使い始めたのはちょうど10年くらい前のことだと思う。4.0.3 あたりが出た頃だ。当時友人たちとシラバスの情報を共有するサイトをつくろうとしていて、PHP を紹介された。データベースに接続してデータの出し入れをするような仕掛けを簡単に作れるという。 それまでは web で何か作るといったら Perl だったし、テンプレートエンジンとかマルチパートパーサとかをまとめたオレオレ web アプリケーションフレームワークを作ってお茶を濁していた。Perl はかなり好きだった。それでも、PHP の手軽さは輝いて見えた。コードをそのまま HTML に埋め込めることでさえ、「poor-man's ASP」だと思って感激していた。マニュアルを見れば、答えが書いてあったから、動く
When it comes to web development, most people wouldn't doubt PHP's best friend is Apache HTTPD Server. Having said that, developers who experienced any of web application frameworks of other scripting languages such as Ruby on Rails and Django may well find it cumbersome to set up httpd.conf just to use it within a development environment as those are most likely accompanied by a tiny web server t
Authentication, Authorization, OAuth, OpenID Connect and PyramidMoriyoshi Koizumi
資料あげときます。 Xlib.php は http://github.com/moriyoshi/php-Xlib/ よりとってきてください。 <?php require 'Xlib.php'; $fonts = array( 'hiragino-mincho' => "/System/Library/Fonts/ヒラギノ明朝 ProN W6.otf", 'courier' => "/Library/Fonts/Courier New Bold.ttf", ); $texts = array( array("はい"), array("始まって"), array("しまいました"), array("Heavyweight"), array("Heavyweight\nTemplate"), array("Heavyweight\nTemplate\nLanguage"), array("PH
こんにちは、SQLを愛してやまないmoriyoshiです。 ストアドプロシージャは、一連のSQL文をサブルーチンのようにDBサーバに記録しておき、後からそれを呼び出すことができるようにする仕組みです。近代的なRDBMSには標準的に備わっている機能といえます。 制御構造などもSQL文で記述することができるので、結果的に、あらゆるロジックをSQLのみで記述することができます。手続き型プログラミングにどっぷり浸かった現場の方から愛用されていると言われています。 今回は、ストアドプロシージャの応用として、Webスクレイピングを行なってみましょう。Webスクレイピングとは、特定のWebサイトにアクセスし、そのページの内容 (HTML) を取得、解析し、必要な情報を取り出すという一連の操作を自動化することです。Webスクレイピングを効果的に活用すると、人間がブラウザに向かって単純作業を繰り返す必要がな
パッチを書きました。 Python 2.6.5 (r265:79063, 魔改造, May 2 2010, 17:41:13) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> def a(): ... readonly a = b = 3 ... a = 3 ... File "<stdin>", line 3 SyntaxError: variable 'a' is read-only >>> def a(): ... x = 3 ... readonly x = 3 ... File "<stdin>", line 3 SyntaxError: name 'x' is assigned to b
mod_jsonp は、Apache のフィルタモジュールです。適当に手ででっち上げた JSON のコンテントを手軽に JSONP 化できるとおもしろいなーと思って、適当に作りました。 Content-Type が「application/json」 callback=... というクエリ文字列が Request URI に付加されている という条件が満たされるときに、JSON のレスポンスを JSONP に変換する (単にレスポンスボディを関数呼び出しのための文字列で囲む)、ということをします。 ビルド方法 $ apxs -c mod_jsonp.c $ libtool --mode=install cp mod_jsonp.la $PWDなどとしてビルドして、mod_jsonp.so を適当な場所にインストールしてください。 あとは、httpd.conf に LoadModule js
Inspired by http://anond.hatelabo.jp/20100125020240 Perlエンジニアを募集してる会社の採用面接を受けた時の話。 転職エージェントに作れと言われて作ったシートに、「興味のある技術/言語」という欄があったんです。 PSGI/Plackとか色々書いたけど、プログラミング言語の中で興味があるのはPHPだったので、 PHPと書いておいたのですが、それを見た髭面サスペンダーの面接官のリアクションが酷かった。 面接官「PHP・・・ふははっ!PHP!」 面接官「PHPやってるんですか?wwwww」 俺「(唖然)は、はい・・まだ参照を理解したぐらいですが。。」 面接官「PHP・・・ニヤニヤ」 その人はCPANコミッタで、当然Perlのコードを書いている人だったので、 Perlが「Improved PHP」と呼ばれている事を知らないワケが無いだろうと思って
Goにできて、PHPにできないはずはない!というわけでやってしまいました。まあ、これにメッセージキューとメッセージスロットを足しただけなんですが。 <?php function sub($i, $ch) { for (;;) { $a = <- [$ch]; printf("%d:", $i); var_dump($a); } } $ch = thread_message_queue_create(); for ($i = 0; $i < 10; $i++) { thread_create('sub', $i, $ch); } $i = 0; for (;;) { [$ch] <- $i++; usleep(50000); } ?> 見て分かるように、 [$ch] <- $i++;こんな感じにメッセージの送信を、 $msg = <- [$ch];こんな感じにメッセージの受信を書くことができ
先日のエントリーでも少し触れたが、PHPの最大の問題点は、それが持つ「一見その言語構造がよくあるプログラミング言語の形をとりながら、プログラミング言語の最も大切なところを外している『えせプログラミング言語』である」点にある。Webアプリケーションの開発で注意すべき部分とは何かを根底の部分でちゃんと理解せずにPHPアプリケーションを作ると、後々ひどい目に会うので注意が必要である。 その意味では「PHPでプログラミング言語を学ぶ」などもっての他だし、「JavaでもPHPと同じようなプログラミング言語を作ってWebアプリの開発を効率化しよう」などという発想もとても危険である。 PHPの発想の根底には、「HTMLテンプレート用言語とロジック記述用言語の統一により、開発コストを減らそう」という CGI 時代の安易な発明がある。PHPは、その前近代的な発想を通じて、テンプレートとロジックを同じファイル
こんにちわ、あらびきプログラマー moriyoshi です。 Python が生理的に嫌いな人からよく聞く話として「インデントでブロック構造を表す」ってのがありますね。じゃあ中身はそのままで文法だけ Ruby っぽくしたらどうなるんでしょうかね。Python はトークナイザもパーサも簡単に書き換えられるので、試してみましょう。 例えば次のようなプログラムは class Boo(object): def foo(hoge): try: for i in hoge: with i: if i.fuga: while True: j = i.fuga() if not j: break print j + 2 except HogeException: pass else: pass finally: pass こんな風になってしまうわけです。ああ怖いですね。 class Boo(object)
追記: 漏れていた 2 つのパッチを追加 追記2: git fetch が抜けていたので訂正 実はこれも発表の際に降れておくべきだったんだけど、PHP のソースコードの VCS が subversion に移行したおかげで git のミラーが実現し、楽しくパッチを VCS で管理しつつ upstream に追従するということができるようになった。これは実はすごく革命的なことで、 「一人に一つのPHP」 を実現するという野望に一歩近づいたのである。 というわけで、 Autoboxing と new Hoge()->method() を可能にするパッチ: http://github.com/moriyoshi/php-src/tree/PHP_5_3-autobox PHP をテンプレートエンジンとして進化させるパッチ: http://github.com/moriyoshi/php-src/
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く