2008-01-01から1年間の記事一覧
PHP_ObjectでPHPマニュアルをパースしてCSVファイルを作成するサンプル http://jp.php.net/download-docs.php 一つのhtmlファイルとして配布されているPHPマニュアルから関数の説明部分をパースしCSVファイルを作成する。 ファイルはあらかじめダウンロード…
Head First デザインパターンのメモ。 Singletonパターン 一つのクラスがただ一つのインスタンスを持つことを保証し、 インスタンスにアクセスするグローバルポイントを提供する。 注意点 マルチスレッドアプリケーションに対してはパフォーマンスとリソース…
CakePHP1.2、viewのレンダリング処理部分についてのメモ。 Controller::render() viewを解釈して、結果をoutputプロパティに文字列として格納するメソッド。 戻り値としてレンダリング結果を返す。実際の出力まではやらない。 複数回呼び出すと、出力内容は…
Head First デザインパターンのメモ。 Abstract Factoryパターン 具象クラスを指定することなく、一連の関連オブジェクトや 依存オブジェクトを作成するためのインターフェースを提供する。 Abstract FactoryとFactory Method 多くの場合Abstract Factoryの…
Head First デザインパターンのメモ。 Factory Methodパターン オブジェクト作成のためのインターフェースを定義するが、 どのクラスをインスタンス化するかについてはサブクラスに決定させる。 Factory Methodにより、クラスはサブクラスにインスタンス化を…
Head First デザインパターンのメモ。 Decoratorパターン オブジェクトに付加的な責務を動的に付与する。 デコレータはサブクラスの代替となる柔軟な機能拡張手段を提供する。 特徴 装飾するオブジェクトと同じスーパークラスを持つ 複数のDecoratorクラスを…
Head First デザインパターンのメモ。 Observerパターン オブジェクト間の1対多の依存関係を定義し、あるオブジェクトの状態が変化すると、 それに依存しているすべてのオブジェクトが自動的に通知され更新されるようにする。 新聞の定期購読 発行者(Subject…
CakeForgeというオープンソース開発サイトで公開されているSmarty ViewクラスでSmartyを使う方法メモ。 Smarty View class ダウンロードしたSmartyViewクラスのファイルをsmarty.phpにリネームして以下に設置。 app/views/smarty.php Smarty本体をダウンロー…
Head First デザインパターンのメモ。 Strategyパターン 一連のアルゴリズムを定義してそれぞれをカプセル化し、それらを交換可能にする。 Strategyパターンによって、アルゴリズムを使用するクライアントとは独立して、アルゴリズムを変更できる。 設計時の…
MySQLみたいに簡単にできると思ったらちょっとはまった。 開発環境用の設定。 インストール $ sudo apt-get install postgres インストールするとUbuntuにpostgresというユーザーがつくられるのでパスワードを設定。 postgresユーザーになるとDBに接続できる…
これはわかりやすい。 対象読者はJavaの知識がある人のようですが 他の言語のオブジェクト指向をかじったことがある人なら十分理解できると思う。 デザインパターン入門 誰かが、すでにあなたの問題を解決してしまっています。 パターンを頭の中にロードし、…
PHP_Object - openpear 実用性はほとんどないライブラリですが。 以下説明。 openpearに書いてあるものほとんどそのままです。 PHP_Object PHPを純粋なオブジェクト指向プログラミング言語っぽく書けるようにする。 主にメソッドチェーンするためのライブラ…
CakePHP1.2のエラーハンドリング方法。 Error Handling :: Common Tasks With CakePHP :: The Manual :: 1.2 Collection :: The Cookbook Object::cakeError() 基本的に、ObjectクラスのcakeErrorというメソッドを使うらしい。 appディレクトリ以下に、error…
リクエストパラメータに、不要な値が含まれていた場合は取り除く。 値がなかった場合は空文字の値を追加する。 array('name', 'mail', 'password', 'password_confirm'), ); $this->_paramNormalize($this->data, $keys); } function _paramNorm…
エンジニアといっても、「本書はプログラマを対象としてません」だそうです。 システム管理者(SA)向け。 SAのタイムマネジメントの原則 タイムマネジメント情報を一つにまとめる。整理された状態を保つ。 能力は重要な作業のために温存しておく。オーガナ…
タイプヒンティング(Type Hinting)の拡張 PHPTypeSafeで目から鱗が落ちた Type Hints for scalar values これはすごい。 アイデアもそうですが方法が。 通常はエラーとなるところをset_error_handlerで、 コントロールするということのようです。 あまり変な…
再読。読み物としても面白い。 ジョエルテスト ソフトウェアチームのクオリティを評価するテスト。 1. ソース管理してる? 2. ワンストップでビルドできる? 3. デイリービルドしてる? 4. バグデータベースはある? 5. 新しいコードを書く前にバグを直して…
はてなダイアリーのスーパーpre記法のハイライトを、vimと同じに変更する方法。 vimにデフォルトでインストールされているプラグイン、tohtml.vimを使う。 tohtml.vimを使うとコマンド一発で、ハイライト付htmlが作成できる。 2html.vim : ファイルをシンタ…
気になったところをメモ。 スタティック変数 関数が終了しても破棄されない。関数内でしか使用できない。
すぐ場所をわすれるのでメモ。 C:\WINDOWS\system32\drivers\etc\hosts hosts = PC内でホスト名をIPアドレスに変換する際に参照されるファイル
sql、select文の評価順序じょっぱりのぐだめぎ: select 文の評価順序 from where group having select union order limit 評価順序を意識するかどうかで、sqlの書き方やチューニング方法が大きくかわりそうです。
PHP5で追加されたSPLのArrayAccessクラスを使うと、 配列っぽい書き方でクラスにアクセスすることができるみたいです。 配列演算子オーバーロードもしくは PHP 5 の配列エミュレート機能全般 ArrayAccess Interface Reference data = $array; } public funct…
mysqlにはON DUPLICATE KEY UPDATEというのがあるらしい(mysql 4.1.0以降)。 ユニーク制約のあるカラムに、重複の値をinsertしようとすると、かわりに対象レコードがupdateされる。MySQL 4.1 リファレンスマニュアル :: 6.4.3 INSERT 構文 mysql> INSERT INT…
ubuntuというかlinuxのルートディレクトリ構成メモ /bin 基本的なコマンドが入っている /dev デバイスファイルが配置されている /etc システムや各種プログラムの設定ファイルを格納 /home ユーザのホームディレクトリ /lib 共有ライブラリなど /sbin rootが…
midiファイル(smf)をプログラムで作成する方法を探したら、 Rubyのモジュールを公開している方がいました。http://www.funaba.org/music.html とりあえずインストールしてみる configやsetupでインストール先などを変更できるようです。 $ ruby install.rb…
開発用にvar/www以下を全て共有する場合 ユーザーの作成 $ sudo smbpasswd -a 【ユーザ名】 設定 $ sudo vi /etc/samba/smb.conf workgroup = WORKGROUP #windowsのワークグループ名 hosts allow = 192.168.1. #接続を許可するIPを指定 [www] comment = www …
acl.ini.php アクセス制御設定用 acl = access control list(アクセス制御リスト) aco = access control object(アクセス制御対象) aro = access request object(アクセス要求対象) bootstrap.php コアとなるbootstrap.phpが読み込まれた後、app/webroot…
インストール $ sudo apt-get install subversion subversion-tools libapache2-svn 設定 $ sudo vi /etc/apache2/mods-available/dav_svn.conf 以下のようにコメントを外す Basic認証をかけたりもできるようです。 <Location /svn> DAV svn SVNParentPath /var/lib/svn #一</location>…
cakephp1.2のscaffold*1の作り方メモ。 $ cake/console/cake bake 上記コマンドで、対話的にscaffoldの作成ができる。 ./cake bake model のように引数を渡してもOK Database Configuration = app/config/database.phpを作成 Project = 新しいプロジェクト(…
apacheの設定ディレクトリ $ cd /etc/apache2 サイト別の設定を作る $ sudo cp sites-available/default sites-available/my_site $ sudo vi sites-available/my_site $ sudo vi ports.conf #ポート設定を追加 サイトを有効にする $ sudo a2ensite my_site $…