変なタイトルになってしまった.思ったことを記述していることもあり間違ってること書いてるかもしれないので,適宜つっこみをいれてほしいw
さて,オブジェクト指向プログラミング機能の実装は,大きく分けてメッセージベースとクラスベース,プロトタイプベースがあると思う.最近特に興味があるのは,プロトタイプベース.なんでかというと,クラスベースが,オブジェクト指向プログラミング機能をプログラムの広い空間に保持しているのに対し,プロトタイプベースは,比較的狭い空間に保持しているから.(あいまいな表現で,僕の主観的イメージ.)
もうすこし具体的な話.クラスベースで,クラスはさまざまなメソッドからnewできるようなところに存在しなければならない.スコープによる限定があるじゃないかって話もあるとは思うんだけどね.プロトタイプベースでは,オブジェクトをメソッドでnewする形になるので,オブジェクトがそこに受け渡されなければならない.オブジェクトにもスコープがあるじゃないかって話もあるだろうね.
うん,なんというか,newの被演算子であるひな形にあたるもの(クラスベースならクラス.プロトタイプベースならオブジェクト(とプロトタイプ).)が,イメージとして,メソッドの外にあるのがクラスベースで,内にあるのがプロトタイプベースだなぁと.
で,何を考えているのかというと,宣言型言語へオブジェクト指向プログラミング機能を入れるとしたら,プロトタイプベースが向いているんじゃないかなってこと.たとえば,Prologへのオブジェクト指向の導入とかね.
オブジェクト指向設計からオブジェクト指向プログラミングをするとしたら,クラスベースの考え方を実現できる必要がある.プロトタイプベースではある程度実現できる.プロトタイプベースなら宣言型言語へ導入しやすいのではないか.ということ.
ただ,今日ECMAScriptの仕様書であるECMA-262 第3版を読んでて気づいたんだけど,プロトタイプチェーンという存在(プロトタイプベースの要なんだけどねwww)が裏側では広い空間を使っちゃってるなぁと.なんでいままで気づかなかったのかといわれると馬鹿だからってしかいえないけどw
それで,プロトタイプベースよりもさらに空間を限定できる.つまり,狭い空間だけで完結するオブジェクト指向言語はないものかということになった.調べたけど,見つからなかったwんー,そもそもこれ以上狭い空間だけで完結するオブジェクト指向プログラミング機能は実装できるのかどうかがあやしい.これから考えていこうと思う.
今回は,かなりグダグダだな〜.
2007年12月15日土曜日
2007年11月17日土曜日
Javaメモ.アクセス制御.#1
アクセス修飾子によるアクセス制御の詳細をよく忘れる.たまにしかJavaを書かないせいかな.
●アクセス制御
・private:クラス
・(なし):パッケージ
・protected:パッケージ&サブクラス
・public:全体
●アクセス制御
・private:クラス
・(なし):パッケージ
・protected:パッケージ&サブクラス
・public:全体
2007年11月16日金曜日
CentOS 5でつくるPHP開発サーバ.Zend Core編#6
林檎生活100: CentOS 5でつくるPHP開発サーバ.Zend Core編#5の続き.昨日,友だちと話してて気付いたんだけど,mbstringの設定やってないねwということで,日本語を扱えるように,mbstringの設定をしよう.
今回は,UTF-8を使うように設定する.その手順は次のとおり.
1.ZendCoreにアクセスする.
2.Configuration>Extensionsとクリックする.
3.mbstringの項目を次のように設定する.

4.Save Settingsをクリックして設定を反映させ,Restart Serverでサーバを再起動する.
これでOK.Control CenterのPHPinfoなどでチェックしてみると設定が反映されていると思う.次回こそ,MySQLだぁ.
今回は,UTF-8を使うように設定する.その手順は次のとおり.
1.ZendCoreにアクセスする.
2.Configuration>Extensionsとクリックする.
3.mbstringの項目を次のように設定する.

mbstring.detect_order = auto
mbstring.encoding_translation = Off
mbstring.func_overload = No overload
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.internal_encoding = UTF-8
mbstring.language = Japanese
mbstring.strict_detection =
mbstring.substitute_character =
4.Save Settingsをクリックして設定を反映させ,Restart Serverでサーバを再起動する.
これでOK.Control CenterのPHPinfoなどでチェックしてみると設定が反映されていると思う.次回こそ,MySQLだぁ.
2007年11月15日木曜日
Wireless Mighty Mouseの交換.
Wireless Mighty Mouseの右クリックが効かなくて,Appleのサポートセンターに電話してみた.
混んでるせいか,電話でかなり待たされたんだけど,結局新しいやつを送ってもらって,いま使ってるやつと交換って話になった.親切な対応だったし,新しいやつが次の日に届いたってことw早すぎだろw宅配便の人にいま使ってるのを渡して,新しいのをもらうかんじだった.
いま使ってみてるかんじだと,とくに問題なく右クリックは動いてる.交換品もAppleの対応もいいかんじ♪
混んでるせいか,電話でかなり待たされたんだけど,結局新しいやつを送ってもらって,いま使ってるやつと交換って話になった.親切な対応だったし,新しいやつが次の日に届いたってことw早すぎだろw宅配便の人にいま使ってるのを渡して,新しいのをもらうかんじだった.
いま使ってみてるかんじだと,とくに問題なく右クリックは動いてる.交換品もAppleの対応もいいかんじ♪
2007年11月8日木曜日
CentOS 5でつくるPHP開発サーバ.Zend Core編#5
林檎生活100: CentOS 5でつくるPHP開発サーバ.Zend Core編#4の続き.今回は,Zend CoreへのPEARとPECLのインストール方法をやってこう.
PHPのわかりづらいところのひとつが,PEARとPECLだと思うのは僕だけかな.PHPで書かれたライブラリを提供しているサービスがPEARで,Cで書かれたライブラリを提供しているサービスがPECL.とくに,PECLは拡張モジュールという位置づけだね.そして,それらをインストールするコマンドがpearとpeclなわけだ.手動で配置してもインストールはできるけど,コマンドを使ったほうが便利♪依存関係とか解決してくれるしね♪
ちなみに,PHPマニュアルでは,PECLのライブラリをインストールすることで使えるようになる関数も説明してたりするから,その量が膨大になってる.インストールする方法によって,PHPに最初からインストールされているライブラリが異なるのも,PHPならではかなw
さて,実際にやってみよう.今回は,PEARのHTML_QuickFormとPECLのpecl_httpをインストールしてみる.その手順は次のとおり.
1.PEARのアップデートを実行する.これで,peclコマンドのインストールも行われる.
2.PEARのHTML_QuickFormをインストールする.
3.PECLのpecl_httpをインストールする.
3-1.必要なツールやライブラリをインストールする.そうしないと,pecl_httpのインストール時にエラーが出る.
3-2.
3-3.php.iniの末尾にextension=http.soを追加する.
3-4.Zend Core管理画面からApacheを再起動する.
3-5.Zend Core管理画面>Configuration>Extensions>External Extensionsに追加されていることを確認する.そこで設定ができるのが便利♪
こんなとこだね.PEARのインストールは簡単なんだけど,PECLはコンパイルやphp.iniへの記述が含まれるのでちょっと面倒だね.次回は,MySQLをやりますか〜.
PHPのわかりづらいところのひとつが,PEARとPECLだと思うのは僕だけかな.PHPで書かれたライブラリを提供しているサービスがPEARで,Cで書かれたライブラリを提供しているサービスがPECL.とくに,PECLは拡張モジュールという位置づけだね.そして,それらをインストールするコマンドがpearとpeclなわけだ.手動で配置してもインストールはできるけど,コマンドを使ったほうが便利♪依存関係とか解決してくれるしね♪
ちなみに,PHPマニュアルでは,PECLのライブラリをインストールすることで使えるようになる関数も説明してたりするから,その量が膨大になってる.インストールする方法によって,PHPに最初からインストールされているライブラリが異なるのも,PHPならではかなw
さて,実際にやってみよう.今回は,PEARのHTML_QuickFormとPECLのpecl_httpをインストールしてみる.その手順は次のとおり.
1.PEARのアップデートを実行する.これで,peclコマンドのインストールも行われる.
# /usr/local/Zend/Core/bin/pear upgrade-all
2.PEARのHTML_QuickFormをインストールする.
# /usr/local/Zend/Core/bin/pear install HTML_QuickForm
3.PECLのpecl_httpをインストールする.
3-1.必要なツールやライブラリをインストールする.そうしないと,pecl_httpのインストール時にエラーが出る.
# yum -y install autoconf
# yum -y install gcc
# yum -y install zlib-devel
# yum -y install curl-devel
3-2.
# /usr/local/Zend/Core/bin/pecl install pecl_http
.
.
.
1. whether to enable cURL HTTP requests; specify libcurl directory : yes
1-1, 'all', 'abort', or Enter to continue: [Enter]
1. whether to enable support for gzencoded/deflated message bodies; specify zlib directory : yes
1-1, 'all', 'abort', or Enter to continue: [Enter]
1. whether to enable response content type guessing; specify libmagic directory : no
1-1, 'all', 'abort', or Enter to continue: [Enter]
1. whether to depend on extensions which have been built shared : yes
1-1, 'all', 'abort', or Enter to continue: [Enter]
.
.
.
You should add "extension=http.so" to php.ini
(php.iniにextension=http.soを追加してね.)
#
3-3.php.iniの末尾にextension=http.soを追加する.
# nano /usr/local/Zend/Core/etc/php.ini
.
.
.
;extension=xsl.so
;extension=zip.so
extension=http.so(この行を追加する.)
#
3-4.Zend Core管理画面からApacheを再起動する.
3-5.Zend Core管理画面>Configuration>Extensions>External Extensionsに追加されていることを確認する.そこで設定ができるのが便利♪
こんなとこだね.PEARのインストールは簡単なんだけど,PECLはコンパイルやphp.iniへの記述が含まれるのでちょっと面倒だね.次回は,MySQLをやりますか〜.
2007年10月24日水曜日
Flash Media Server 2をインストールしてみた.
えっ,Macにいれたのかって?いえいえ,CentOS 5ですwえっと,林檎生活って名前とブログの説明があってなさすぎるなぁということに気付いた今日このごろなわけだ.まあ,気にしない♪
さて,今回はFlash Media Server 2の開発版を(ここまで書いて,Safariが落ちた・・・.Bloggerの自動保存機能に感謝だなぁ.)インストールする.ダウンロードは,日本語サイトなので適当によろしく(ぉ
あっ,Flash Media Serverってのは,Flashでストリーミングとかをやるためのサーバ.詳しい説明は,Webページを読んでw
ということで,ダウンロードしてきたファイルFlashMediaServer2.tar.gzを例のごとくCyberduckなどで,CentOSの/home/adminあたりにアップロードしよう♪
で,実際のインストール作業は次のとおり.
1.必要なライブラリをあらかじめインストールしておく.
2.ファイルを移動させ,解凍する.
3.インストールする.
4.起動を確認する.
これで,インストール完了.はぁ,ライブラリまわりに手間取った・・・.CentOS 5に入れんのは大変だな.あとからまた問題が出てきそうでこわい.つかい方は,気分が向いたら書くということで〜.つかれたぁ.
参考文献:
Kopug Memo!: FMS2(Linux版)をインストール
さて,今回はFlash Media Server 2の開発版を(ここまで書いて,Safariが落ちた・・・.Bloggerの自動保存機能に感謝だなぁ.)インストールする.ダウンロードは,日本語サイトなので適当によろしく(ぉ
あっ,Flash Media Serverってのは,Flashでストリーミングとかをやるためのサーバ.詳しい説明は,Webページを読んでw
ということで,ダウンロードしてきたファイルFlashMediaServer2.tar.gzを例のごとくCyberduckなどで,CentOSの/home/adminあたりにアップロードしよう♪
で,実際のインストール作業は次のとおり.
1.必要なライブラリをあらかじめインストールしておく.
# yum -y install libstdc++.so.5
# yum -y install libssl.so.4
2.ファイルを移動させ,解凍する.
# cd /usr/local/src
# mv /home/admin/FlashMediaServer2.tar.gz .
# tar -vxzf FlashMediaServer2.tar.gz
3.インストールする.
# cd FMS_2_0_3_r68_linux/
# ./installFMS -platformWarnOnly(このオプションをつけないと「このプラットフォームは対応してねぇぞ!」と怒られて,インストールできない.つけても,怒られるけどw)
WARNING: Your distribution, unknown, is not supported by this
Macromedia Flash Media Server installer.
Copyright(C) 1993-2005 Macromedia, Inc. and its licensors. All rights reserved.
Macromedia Flash Media Server 2.0 for
Macromedia Flash Media Server 2.0 will be installed on this machine.
You will be asked a series of questions during the install
process and will be presented with the defaults for these questions.
Support is available at http://www.macromedia.com/go/flashmediaserver_en
To install Macromedia Flash Media Server now, press ENTER.
To cancel the installation at any time, press Control-C.
([enter])
(-----エンドユーザライセンス契約書-----)
(エンドユーザ ライセンス契約書が表示される.)
Do you agree with the license agreement? (y/n): (y[enter])
Macromedia Flash Media Server 2.0 requires approximately 25MB of
disk space.
(-----インストールディレクトリ-----)
The installer will install Macromedia Flash Media Server 2.0 in the
following directory
Default [/opt/macromedia/fms]: ([enter])
(-----サービスポート設定-----)
The Macromedia Flash Media Server communicates on the IANA-assigned
port of 1935, which is the port most Flash applications expect.
Please enter the Macromedia Flash Media Server port
Default [1935]: ([enter])
(-----管理ポート設定-----)
Please enter the port to use for the Admin service. You can only specify one
admin port.
Default [1111]: ([enter])
(-----管理者ユーザ設定-----)
The administrative user name and password you provide here is required to use
the Macromedia Flash Media Server Management Console for
administration, monitoring, and debugging.
Please enter the administrative username: (ユーザ名を入力する.例:admin[enter])
Please enter the administrative password: (パスワードを入力する.)
Confirm password: (パスワードを入力する.)
(-----実行ユーザ設定-----)
When the Macromedia Flash Media Server service is started, the service
can be run as a user other than "root". The server would change to this user
when the server is started and has acquired its ports.
Please enter the user that the Macromedia Flash Media Server service will run as
Default user [nobody]: ([enter])
Please enter a valid user group for the "nobody" user: (nobody[enter])
(-----デーモンにするかどうかの設定-----)
Do you want the Macromedia Flash Media Server service to run as a
daemon? (y/n)
Default [y]: ([enter])
(-----自動起動設定-----)
Do you want to start the Macromedia Flash Media Server
after the installation is done? (y/n)
Default [y]: ([enter])
(-----インストール確認-----)
----------- Install Action Summary -----------
Installation directory = /opt/macromedia/fms
FMS Server Port = 1935
FMS Admin Server Port = 1111
Administrative username = admin
Administrative password = (suppressed)
FMS owner = nobody
FMS service user = nobody
FMS service user group = nobody
FMS run as daemon = Yes
Start FMS = Yes
Proceed with the installation? (y/n/q): (y[enter])
(-----インストール-----)
Installing Macromedia Flash Media Server files...
Configuring Macromedia Flash Media Server...
Adding "fms" service.
Setting default admin to "fms".
Setting autostart for "fms".
Server:fms command:start
NPTL 2.5
Starting Macromedia Flash Media Server (please check /var/log/messages)
Admin server:fmsadmin command:start
Starting Macromedia Flash Media Admin Server (please check /var/log/messages)
The Macromedia Flash Media Server installation is complete.
#
4.起動を確認する.
# /opt/macromedia/fms/fmsmgr list
これで,インストール完了.はぁ,ライブラリまわりに手間取った・・・.CentOS 5に入れんのは大変だな.あとからまた問題が出てきそうでこわい.つかい方は,気分が向いたら書くということで〜.つかれたぁ.
参考文献:
Kopug Memo!: FMS2(Linux版)をインストール
2007年10月23日火曜日
Zend Studio for Eclipseのベータ版公開!
Zend Studio for Eclipseのベータ版が公開された.Zend Studio 5.5ユーザとしては,かなり気になるところ.さっそくダウンロードしてみた.
どうやら,PDTの技術をそのまま取り込んでいるみたいだ.新機能として目につくのは,HTMLのWYSIWYGエディタだろうか.まあ,そんなに便利なものじゃないけどw
これから,Eclipseベースになるんなら,いろいろとプラグインはそろっているし,リファクタリングやユニットテストなども行いやすいだろうし,いいことなんじゃないかなぁと思う.
しかしながら,PDTとZend Studio for Eclipseの差別化をはかるために,PDTへの機能追加を抑えているのがよくわかる.それが,Zend Frameworkの普及に影響を及ぼさないか心配だ.
追記(2007年10月23日):
Zend Frameworkのプロジェクトを簡単につくれるところは,とても便利♪
どうやら,PDTの技術をそのまま取り込んでいるみたいだ.新機能として目につくのは,HTMLのWYSIWYGエディタだろうか.まあ,そんなに便利なものじゃないけどw
これから,Eclipseベースになるんなら,いろいろとプラグインはそろっているし,リファクタリングやユニットテストなども行いやすいだろうし,いいことなんじゃないかなぁと思う.
しかしながら,PDTとZend Studio for Eclipseの差別化をはかるために,PDTへの機能追加を抑えているのがよくわかる.それが,Zend Frameworkの普及に影響を及ぼさないか心配だ.
追記(2007年10月23日):
Zend Frameworkのプロジェクトを簡単につくれるところは,とても便利♪
登録:
投稿 (Atom)