檜山正幸さんの記事にインスパイアされて、というか、内容を理解するために、メモ。データ、オブジェクト構造、コンパイルと実行、宣言とスコープ、関数、オブジェクト生成、プロトタイプチェーンまずは、データについて。データは6種類に分かれる。 number…
javascriptに関する覚え書き。関数は"first class"オブジェクトである。ファーストクラスだと、 無名リテラルで表現OK 変数に格納OK データ構造に格納OK 関数に引数として渡せる 関数の戻り値にできる 実行時に定義できる 関数名と変数名は無関係 などなど。…
"; } } class LinkTagBuilder extends TagBuilderBase{ funct…
Abstract Factory Patternって、どういう局面で使えばいいのか分からなくて、調べてみたらDBアクセスの部分で使う事ができるみたい。 適用例を通じて分かったが、Builder PatternとAbstract Factory Patternって全く別物ですね。 Railsで言えば、ActiveRecor…
編集中。。。
木構造を持つオブジェクトモデルに適用可能なパターン。O/Rマッピングにおける、単一テーブル上の自己参照結合に適用できる。
どちらもインスタンス生成に関わるパターン。 違い、というか、フレームワーク設計時にこの2つをどう使い分ければいいのか、よくわからなかったので、自分なりにまとめてみた。Builder Patternは、インスタンスの生成プロセスを抽象化する(Abstract Builder…
オブジェクトからオブジェクトを生成する設計。 phpではcloneキーワードでオブジェクトのシャローコピーを生成できる。 header = new Header($title); //<-- headerプロパティはHeaderオブジェクトの参照である } /* * phpのクローンキーワードは、オブジェ…
ubuntu のイメージを直接colinuxのサイトから落としたやつだとシングルモードでの起動になってしまうので、インストーラー付属のイメージを使う。ネットワーク接続はTAPで行う。Win側のネットワーク設定手順は割愛。ひとつだけ、ファイアーウォールが接続の…
Template method ベースクラスにテンプレートメソッドを実装、他はサブクラスにデレゲートする、そういう設計 なので、ベースクラスの設計を分かりやすくしておくこと(コメント、ドキュメントとかを作っとく) 要は、デレゲーションさせる設計はテンプレー…
機能(function, feature, facility)と実装(implementation)を分ける。 あるクラスに対して、異なる実装が必要な場合に有効な設計手段。 実装の基底クラスをbridgeによって結びつける。bridgeはデレゲーションによって実現される。 そして、機能拡張は浅いほ…
名前の通り、アダプターの機能。 インターフェースの互換性を持たせるための設計手段。 title = $arg; } function show_with_paren(){ echo "((({$this->title})))<br />"; } function show_with_aster(){ echo "***{$this->title}***<br />"; } } /* * アダプターインタ…
なんつうか、IteratorとかAggregateという名前がしっくりこない。Enumerable, Scannableとかのほうがしっくりくる気がする。 イテレーター(以下、スキャナーと書いてしまおう)はスキャンする対象を持っていて、そのインターフェースがhas_next, nextメソッ…
前提 macportsなどでopenssl, Apache2.2をインストールしておく(mod_sslもDSOとして組み込めるようにしておく) $ port installed | grep apache2 apache2 @2.2.14_0+darwin+preforkmpm (active) ... $ port installed | grep openssl openssl @0.9.8k_0+darw…
単語:ファイル、ディレクトリー、デバイス、マウント、ファイルシステム 「絶対ファイル名」と「パス」は同義 ファイル・ディレクトリ・名前付きパイプ・物理デバイスは、ユーザーに所有され、グループに所属する。これら所属情報や、最終アクセス時間など…
本番環境ではないわけだし、サーバーの性能最適化・細部の設定が求められている訳でもなく、セキュリティを考慮する必要もない(前提に置く必要はある)。わざわざソースを入手してオプションを設定してコンパイルしたり、依存関係で悩んだりするよりかは、…
ソースの入手 $ cd ~/src # wget http://jp2.php.net/distributions/php-5.3.0.tar.gz # tar zxvf php-5.3.0.tar.gz # cd php-5.3.0 configure optionの整理 config.yyyymmddファイルを作成しそこでオプションを指定 (config.yyyymmddファイルの中身) ./conf…
$ mkdir src $ cd src $ wget http://ftp.riken.jp/net/apache/httpd/httpd-2.0.63.tar.gz $ tar zxvf httpd-2.0.63.tar.gz $ cd httpd-2.0.63 $ ./configure --enable-mods-shared=all ちなみに、--enable-mods-sharedオプションだと、rewrite, dav、vhost_…
まずcoLinux本体とディスクイメージを入手&インストール インストールするDebianはDebian Lenny 5.0.2 入手元は・・・ (本体) http://downloads.sourceforge.net/project/colinux/Images%202.6.x%20Debian/Debian%205.0%20Lenny/Debian-5.0r2-lenny.7z?us…
# cd ~ # mkdir src # cd src # wget http://ftp.riken.jp/net/apache/httpd/httpd-2.0.63.tar.gz # tar zxvf httpd-2.0.63.tar.gz # cd httpd-2.0.63 # ./configure --enable-mods-shared=all # make # sudo make install (インストール完了の確認) # /usr/…
まずソース入手 # cd ~/src/ # wget http://jp2.php.net/distributions/php-5.3.0.tar.gz # tar zxvf php-5.3.0.tar.gz # cd php-5.3.0 **configure オプションを指定する # emacs config.20091020 <---- 注:僕は日付指定して、後になって参照できるように…
# dpkg-reconfigure tzdata
# apt-get install sudo # chmod 0440 /etc/sudoers #emacs /etc/sudoers (ここで、root ALL=(ALL) ALLの下に) showtarow ALL=(ALL) ALL を追加 ここで、exitして、もう一度debianにログイン、sudoの動作を確認 # exit $ sudo apt-get update //sudo の動作…
、、の前によくわからないのだが、以下の作業が必要。 # apt-get install libncurses5-dev これが終わったら、emacsのソース入手&ビルド # wget ftp://ftp.ring.gr.jp/pub/GNU/emacs/emacs-23.1.tar.gz (とりあえず’09年10月現在で23.1が最新だった、適…
#apt-get install gcc #apt-get install make #apt-get install ntp
vmwareのコンソール画面だと、日本語の表示で化ける。。。すでにDebianはUTF-8に設定されてインストールされているので。別にきにしない。 まずはaptでsshをインストールして、Macからssh接続して利用できるようにする。 というわけで、まずはvmwareのコンソ…
macのバージョンはMac OS X バージョン10.4.11、VMware Fusion2.0.2を使って、Debianをインストールする。 vmware fusionは購入するしかないとして、debianのインストールCDのイメージは、http://www.debian.org/CD/netinst/から入手。僕は”「安定版 (stable…