PHP
TAPLのScala版のソースを呼んでいた訳ですが、変数名や型名を自分に合わせて書き換えたかった。 大量にある、ソースコードはIDEのリファクタリング機能を持ってしても手に余るので以下のようなコードがあると便利です。実行する前にバックアップを着実に取り…
以下のサイトを参考にhttp://dysphoria.net/2009/06/28/hindley-milner-type-inference-in-scala/hindley-milnerの型推論をPython版をPHPで実装してみました。 Modula2->Perl->Scala->Python->PHP という流れで移植に移植を重ねられています。 洗練されたり…
ここのところ、オーダーメイドなカスタマイズでオラオラ回してた訳です。 でも、再利用性が低い問題がありました。 そこで設定で何でも出来ればいいということで、もしもし文を沢山書いた訳です。そして、マクロが嫌いになりました。 さて、そこでオブジェク…
入って来たデータを調べて分岐させていくと、だんだんとプログラムは複雑化していきます。 if文とgoto文だけでは、あまり奇麗に書けない。 それを奇麗に書くのに生まれたのが、switch 文。switchを使えば、変数の値によって、 とび先がわかりますよと明示的…
haXeのホームページのように多言語対応なwikiっぽいドキュメントが作れるのかもしれないので 後で試してみます。
これは何? PHPの高速化をするにはAPCを使ったりSmartyのオプションを色々変えたりということをすると高速化できます。 特にファイル変更のチェックをはずすと高速化出来ますが、その代わりPHPの利点であるサーバを動かしながら変更を加えるということが 出…
どうも、ずーっとプログラムを動かしているとエラーが出るので原因を調べると、 しばらくソケットが使えなくなることがあるそうです。 SO_LINGERとか、setReuseAddressとかを使うことで対応できるらしいので対応してみました。 phpのクライアントもSO_LINGER…
複数Webサーバ上でデータを共有する場合は DataBase を使います。 しかしある程度サーバが重くなってくると負荷対策が必要となります。 そこで登場するのがkey value型の高速なメモリキャッシュサーバであるmemcacheです。 memcacheを使えばデータベースにア…
eクラスが式オブジェクトで、phpだと関数名とクラス名は同じもの使えるのでnewを書かなくてすむようにするためだけにe関数があります。 で、evalCompでコンパイル用の定数畳み込みっぽいことをする計算をしてグローバル変数の$chgという書き換えがあったかど…
phpでCSVをダウンロードする場合、file put csv mb convert variables ダウンロード php 標準出力 stdout あたりのキーワードで検索して作ります。 でも毎回作るのもめんどいし、まとまって作ってあると便利なので作りました。これで、 h_sakurai php csv で…
http://oauth.googlecode.com/svn/code/php/example/SimpleOAuthDataStore.php をとりあえず、翻訳してみたので載せておきます。 ライセンスはMIT ライセンスです。 http://oauth.googlecode.com/svn/code/php/LICENSE.txt
LISP級マクロ付きのインタプリタをPHPで書いてみました。 作る順番は、だいたい決まってきて、必要ない機能はある程度削られてますけど、 一番本質的な部分はつかめると思います。以下ソースです。
ビューティフルコードていう本に下向き演算子順位解析法 とかの解説があるのでそれ見るとうれしいと思う今日この頃です。 なんか、Compact言語で面白いものをと思って、flash描画言語を作ってみました。 XMLのSVGのヘボヘボバージョンだと思ってもらえれば分…
言語を弄繰り回したいってことで、構文解析を頑張ってみています。HTML,XMLはできてて,CSSをPHPで再帰下降法を使い構文解析してみました。とりあえず、@importとか@mediaとかの規則は解析していませんが、、、できることはできた。徐々に、分かってきていて…