PHP

モジュロ演算やってみた

サマーウォーズ見た。 あれはうんこだった。 デジモンアドベンチャー ぼくらのウォーゲーム!と似てるとか、当時出来なかった事をやっただとか、細田氏の集大成だとかそんな風に聞いて期待してただけに残念。 ぼくらのウォーゲームの時は何もかもが新しく斬…

PHPでSSL通信を自力でやってみる 2.ClientHelloを生成

今日は主に、使う側が呼び出す関数と中身の最適化辺りを重点に。 コンストラクタの引数がにデフォルトをつけたり。 つくったもの インターフェイスの名前と場所を変えた。 Pearのディレクトリで「find . | xargs grep interface」とかやってみたけど、インタ…

PHPでSSL通信を自力でやってみる 1.ClientHelloとServerHelloを解析

PHPでCURLとか使わずにSSL通信したい。 自力と言っても、流石にOpenSSL関数は使うけど。 で、今回はClientHelloとServerHelloについてやってみた。 とりあえず、シリーズ物にする予定。 作ったもの $ tree . . |-- SSL | |-- Certificate.php | |-- CipherSu…

Citrix XenServerのAPI「XenAPI.py」をPHPに移植しようとして諦めた

とりあえず晒しとく。 PHP5.3ならもっとPython版に近い感じで書けただろうけど、自分の所の環境にあわせてPHP5.2で。 なんで諦めたかというと、PearのXML_RPCの返り値(XML_RPC_Message)が汚すぎて使う気が起きなかった。 他にもっといいパーサがあるならそっ…

PHPで「人材獲得作戦・4 試験問題」をやってみた

PHP

人生を書き換える者すらいた。: 人材獲得作戦・4 試験問題ほか http://okajima.air-nifty.com/b/2010/01/post-abc6.html 昨日、会社に面接来た人がいて、その人にやらせたらしく。 で社長に、その人は何分で出来たかを告げられて、やる?って聞かれて、これ…

PeclのExpectがかなり使い易い

PHP

Bashとかから普通に使うより遥かに楽。 opensslでパスフレーズなしの秘密鍵と公開鍵を作ってみた。 面倒な対話がなくなってこりゃ便利。 $case[] = array(正規表現, 返す文字列);

リポジトリブラウザを作ってみる 4.ユニファイド形式のdiff結果を配列にする

今回のメインはdiff。 全体的に大体出来た。 あれがBacklogかBacklogでないかと言われれば、むしろBacklogだったんじゃないかな? いや!!科学的な見解から言ってもBacklogであった確率が高いね!! ユニファイド形式のdiff結果を配列にする

memcachedサーバをPHPで作ってみた

Peclのmemcacheライブラリで接続出来るmemcachedサーバをPHPで作ってみた。 実用性はない。 memcachedプロトコルはかなり楽。 DNSプロトコルについて調べた後だからかも知れないけど。 PHPのmemcachedは11212ポートで動かしておく。 本家のポートの隣。 一発…

リポジトリブラウザを作ってみる 3.svnに--xmlってオプションがあった

オプション--xmlをつければXML形式で出力してくれる。 その結果をSimpleXMLElementの第一引数に入れればObjectの出来上がり。 しかも、listでこのオプションを付けると--verboseをつけても出なかった「年」が出るようになる。 ↓こんな感じでlistをパースして…

リポジトリブラウザを作ってみる 2.GeSHiでシンタックスハイライトしてみた

前回に続いて、Subversionのリポジトリブラウザを作る話。 listとinfoはそれなりに出来た。 今回は、catの話。 PearのVersionControl_SVNは余りにも使いづらい。 execするクラスを自分で作る事にした。 変数に格納された文字列がテキストかバイナリかを調べ…

リポジトリブラウザを作ってみる 1.VersionControl_SVNを使ってみた

世間に自分が気に入るオープンソースのリポジトリブラウザがない。 RedmineもTracも、どっちも使いづらい。 個人的にはBacklogが使いやすいと思ってる。 日本語だし。 そんな感じで、Backlogにインスパイアされたようなリポジトリブラウザを作ってみようかと…

DNSへの問い合わせをPHPで受け取ってみる

PHPを実行してUDPの53ポートでソケット待ち受け開始。 PHP実行中のマシンをDNSサーバに設定して、PINGとかをどこかに送ってみる。 初めてUDPやったけど、やっぱりUDPはTCPより簡単だった。 リクエストを受け取った瞬間に接続が絶たれるから同時接続云々考え…

Pearでインストールできるサーバ側のOAuth認証ライブラリを作ってみる

ここ数週間、合間を見てちまちま作ってた。 大体出来た。 パッケージ名は、HTTP_OAuthServer。(暫定) 機能 ・2legged OAuth認証。 ・リクエストトークン発行。(3legged OAuth) ・ユーザ認可。(3legged OAuth) ・アクセストークン交換。(3legged OAuth) ・保…

フォーム生成ライブラリ作ってみた

PHP

要素の多いフォームを作るのが面倒だったのでフォーム生成ライブラリ作ってみた 実際はSmarty使うだろうからおそらくもっと楽 つかいかた ・addXXX() で要素追加 ・checkXXX() で入力チェック項目追加 ・setValue() で初期値セット ・getForm() でフォーム要…

OpenSocialのサービスプロバイダっぽいのを作ってみる 7.3legged OAuthでperson_idを保持しておくのを忘れてた

それじゃあ誰の権限を持ってるか解らない。 今回の変更点。 consumer_keyを内部で持ってるSerialに置き換えた。 person_idもデータベースに入れる。(Authorizeの時) もう少しだけ親切なAuthorizeページ作成。 どうやら今週は土曜も日曜も仕事のようです。 残…

OpenSocialのサービスプロバイダっぽいのを作ってみる 6.OAuth Core 1.0a(3legged OAuth)を実装してみた

実装してみた。 仕様は前回の記事参照。 作っているうちにどんどん混乱してくるから、先にまとめておいてよかった。 今回の内容は、オフィシャルドキュメントの内容ではなく、個人的にこうやった、というまとめ。 今週の月曜日、mixiアプリが正式コンテンツ…

OpenSocialのサービスプロバイダっぽいのを作ってみる 4.Whereを共通化する

クエリによって、ソートしたり、オフセット/リミットを指定したり、カラムと値と比較方法を指定してフィルターをかけたり、その他いろいろある事を忘れていた。 その為には一発でデータを引いてくる必要がありそう。 今までperson_idを最初にとってからやっ…

PHPを5.3.0にアップデートしてすぐに5.2.10に戻した

phpinfoでなんかエラー出た。 Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used …

PHPでCRAM-MD5認証を行ってOutbound Port 25 Blocking(OP25B)を回避してみる

PHPでCRAM-MD5認証を行って、直接プロバイダのメールサーバにメールを送りつけてみる。 プロバイダがCRAM-MD5に対応しているのが前提。 多分この方法なら自分側にSendmail/Postfix/qmailなどのメールサーバが入ってなくても行ける。

AuthServerっていうクラスを作ってみた

サーバ側の認証処理をするクラス。 長いから全部は書かないけど。 header = apache_request_headers(); $this->input = file_get_contents('php://input'); $this->http_method = isset($this->header['HTTP_X_HTTP_METHOD_OVERRIDE']) ? $this->header['HTT…

OpenSocialのサービスプロバイダっぽいのを作ってみる

PHPで。 最近仕事で2-legged OAuthに触れる機会があったので、その延長でOpenSocialのサービスプロバイダっぽいのを個人的に作ってみる。 HTTPメソッド クライアントがPUTとかDELETEとかのメソッドを使えない場合、リクエストヘッダーに"X-HTTP-Method-Overr…