2013-01-01から1年間の記事一覧
Vagrant は、長らく 1.0 系を愛用していたが、1.4 がリリースされたことだし、そろそろアップデートしてみようかと思って試してみたところ、vagrant box (list|remove) サブコマンドがうまく動かないことが分かった。 $ vagrant box list base (virtualbox) …
RecursiveDirectoryIterator を使って削除。 isFile() || $item->isLink()) {…
Vagrant を使っていて VirtualBox の共有フォルダを DocumentRoot に設定することがよくあるが、 EnableSendFile offとすると静的ファイル読み込みが早くなってよいらしい。
http://d.hatena.ne.jp/hnw/20090523 より、NoRewindIterator でラップする。
確認する方法はINTサイズを見るのが手っ取り早い。 PHP_INT_SIZE 定数が 4 の場合は 32bit、8 の場合は 64bit となる。
CakePHP では、PostgreSQL の主キーに設定するシーケンス名がデフォルトと異なる場合、Model::sequence に書くことで対応できるのだが、CakePHP 2.1 から「スキーマ名 . シーケンス名」という書式が前提になっていた。
Debian wheezy で管理されたパッケージの中で ruby などの複数のバージョンが存在するコマンドは、update-alternatives コマンドで管理されているが、ruby1.9.1 パッケージのインストール後も rake はなぜか設定されていなかった。 ri や rdoc はあるのに…。…
単体テストでは外部リソースへのアクセスは行わないのが基本。もちろんファイルシステムも含まれる。テスト対象コード内にある外部リソースへのアクセス処理は、アクセス先を「モック」に差し替えることで対応できる。 なるべく設計レベルでモックへの差し替…
ssh のコマンド実行時に -o オプションを付けて known_hosts を強制的に更新する。 Chef などで自動で known_hosts を更新したい場合に使える。 $ ssh -o "StrictHostKeyChecking=no" user@hostname
Vagrant のベースBOX 作成手順をネットで探すとたいていの場合、 veewee を使用していますが、無理に使用する必要はありません。 全自動化できれば便利ではあるのですが、個人的には手作業で作成するほうが手軽で気に入っています。http://d.hatena.ne.jp/ok…
https://github.com/CakeDC/migrationsCakePHP のデータベーススキーマの管理用に Migrations プラグインがある。 Migrations プラグインで残念なことは、CakePHP の Schema クラスがサポートしていないクエリはプラグイン内部 (CakeMigration クラス)で SQL…
Google Apps を使用したり、Redmine などでも Wiki が使えたりする関係で、新たに単独で Wiki サーバを立てることはなくなったが、今でも一部 PukiWiki を使用している。PukiWiki: http://pukiwiki.sourceforge.jp/Pukiwiki の開発が止まっていることに対す…
ApnsPHP でプッシュ通知するのにサーバ側にPEM形式の証明書が必要。 https://code.google.com/p/apns-php/wiki/CertificateCreation証明書を更新するたびに openssl コマンドを打つのも面倒なので、PHP プログラム内で作成できるようにした。ついでに秘密鍵…
久々の Vagrant ネタ。Vagrantfile に ダウンロード先 URL (box_url) を設定しておくことで、 vagrant up 実行時にベースBOXが無かった場合は BOX を自動的にダウンロードしてくれるので、初回の vagrant box add が省略できて重宝している。複数人での開発…
PostgreSQL で plpgsql を利用するには CREATE LANGUAGE する必要があるが、複数回実行すると2度目からエラーになってしまう。 "CREATE OR REPLACE" 的なことはできないかどうかググったところ、そのものずばりがかかれてあった。http://wiki.postgresql.or…
cake コマンド実行するユーザと apache のユーザが異なる場合、キャッシュ周りでパーミッションエラーが発生してしまう。誰でも書込みできるように権限を設定するには、Cache::config() に "mask" というパラメータを追加してやるとよいらしい。 また、設定…
CakePHP 2.3.0 が正式にリリースしたのだが、 Migrations プラグインの master ブランチでは 2.3.0 は、未対応。公式な解決策としては、develop ブランチを使うといいとのこと。https://github.com/CakeDC/migrations/issues/107とりあえず master ブランチ…
Blueprint タイポブラフィーやプラグインシステムを備えオールマイティに活躍 http://www.blueprintcss.org/ TwitterBootstrap レスポンシブからモック作成まで汎用性が高く幅広い層から支持 http://twitter.github.com/bootstrap/ 960 Grid System http://9…
PHPで外部プログラムを呼び出すには exec() paththru() popen() proc_open() shell_exec() system() などの関数を使う。shell_exec() は、「実行演算子 バッククォート (``)」 のエイリアスでもある。popen(), proc_open() は、標準入出力をストリームとして…
つい忘れてしまうのでメモ。Windows 7 の場合: C:\Windows\System32\drivers\etc\hosts