Zend Framework本、読了



“PHP
フレームワーク Zend Framework入門” (藤野 真吾)

Zend Framework本、読了です。ちょっと索引が弱いなーという気はしましたが、Zend Frameworkの入門書ということで、どんなもんか理解するには十分でした。書籍があるのはいいことだよね。雑誌、ムックとか増えるといいな。

MVCを知らない人が初めて読んで理解できるだろうかとも思いますが、MVC本じゃないし。サンプルのアプリケーションを設計・開発と作る章があるので、十分なのかな。

このサンプルアプリケーションの設置で一瞬悩んだのが、初期設定ファイルの読み込み。Zend_Controllerの典型的なレイアウトに沿って、ウェブからアクセスされるドキュメントルートとアプリケーション関連のファイルを置くディレクトリが同階層にあることになってるんですよ。それで初期設定ファイルの読み込みが「../」ってなってたんですが、実際にはそうなってないわけで。いくつもファイルを修正したり、パスを通したりしました。

書籍ではZend Framework1.0.1を使って解説していましたが、読み終わったところで1.0.2がリリース

書籍中で指摘していたバグが4つあって報告済みとのことだったんですが、 まだ治ってない?

Issue Tracker(JIRAです)を探したものの、Zend_Filter関連の3つは見つけられず。Zend_Mailのバグはこれかな。

Zend Frameworkのドキュメントは日本語版もあるし、ダウンロードもできるんで、落として斜め読み。基本的なもの以外にも、おもしろそうなコンポーネントがちらほら。

まずはZend_Localeでの地域化とZend_Localeでの多言語対応。あらかじめ配慮しておけば、簡単に多言語サイトが作れそう。

Zend_Gdataもおもしろそう。Google Calendar、Google Spreadsheetsのデータにアクセスできる。Google Apps Provisioningというのは知らなかったな。Google Appsの設定を変更できるので、メーリングリストの登録や削除なんかをするためのウェブインターフェースを作れそう。

Technorati Tags: ,


ビットシフト

恥ずかしながら、これまでビットシフトを知らなかったんですが、ようやく知りました。

ビット演算は知っているので、勉強したことはあるけど使い道が思い浮かばずに忘れてしまったのかもしれないです。

なんで、今頃ビットシフトなのかというと、とある人が書いたコードを見ていたら「1<<24」と書いてあったんですよ。前後関係から「2の24乗」と読むと全体も理解できるんですが、左シフト演算子「<<」を知らなかったので悩みました。

知っている人には無駄な説明ですが、たとえば10進数の2を3ビット左にシフトする=「2<<3」を考えてみます。

2は2進数では10、これを3ビット左にシフトすると10000です。10000は10進数で16なので、2<<3は16となります。

左にシフトするというのは桁を増やすこと、末尾に0をつけることだと捉えると、2進数だと2倍されることになります(桁が増えると10進数だと10倍になりますよね)。

2の累乗の場合だけですが、ビットシフトで乗算を行うことができるわけですね(右シフトで除算もできます)。

ちなみにperlとphpで実行速度も測定してみましたが、微々たるもの。一番速いのは定数で書く場合ですが、その次は累乗する関数を使う場合で、ビットシフトが一番遅い。といっても1000分の1秒程度の差です。

今の僕だと、ワンライナーで書くときに使うくらいかなあ。1<<24のほうが16777216よりも3文字も短いですし。





“Short Coding ~
職人達の技法~” (Ozy)


Emacs

テキストエディタには、CotEditorを使ってます。

WEB+DB PRESS Vol.40』を読んで、コーディングにはEmacs使おうかと思ってしまいました。昔は統合開発環境なんてなくて、会社の先輩にEmacsの使い方を教えてもらったんですよね。かなり忘れちゃってまして、久しぶり。

「Linux開発環境」では、Emacsの懐かしい便利な使い方がうまくまとまっていました。zshとかGNU screenは未体験なんで、いずれ試してみようかな。coLinuxは前使ってたんで、飽きました。

「Start! MacBook」でMacにもCarbon Emacsというバイナリパッケージがあることを知りました(WindowsでいうMeadowみたいなもんだと思います)。ほかにもいろんなバイナリがあるみたい。

Mac OS Xだと、ターミナルでemacsって打てば、最初からemacsは使えるんですが、日本語環境が整ってないようなんですよね。あとは、普通のアプリ的にも使いたいじゃないですか。

昔の設定ファイルも消えちゃってるし、いろいろやりたいことも変わってきてると思うんで、しばらくはチマチマと設定を変える日々になりそう。

“WEB+DB PRESS Vol.40″ (技術評論社)

Technorati Tags: ,


レコメンドエンジン

ソフトウェアデザインの8月号から「レコメンドエンジン開発室」という連載が始まっています(もう9月号が出ているのですが、まだ買っていません)。

第1回は、基礎ということで、コードは出さずに、文章や数式で理論の説明など。協調フィルタリング、相関係数、ベイズ推定などが出てきました。ベイズ推定は、スパムメールのフィルタで使われているので、ウィルスチェックみたいなネガティブなイメージで思いこんでしまっていましたが、レコメンドにも使えるんですね〜。なるほど。

雑誌なので文章量は限られていますが、なかなか丁寧に解説がされていて、次回以降に期待です。

第2回以降では、Pythonで書かれたコードを使って説明がされるようです。




“Software Design (ソフトウエアデザイン) 2007年 08月号 [雑誌]” (技術評論社)





“Software Design (ソフトウエア デザイン) 2007年 09月号 [雑誌]” (技術評論社)

Technorati Tags:


Eclipse Europaを入れました

Eclipse 3.3(Eclipse Europa、エウロパ)が出ていたので、入れてみることにしました。

Pleiades

昔、Mac OS XでEclipse入れようとしたら、なんかうまく行かなくて困った記憶だけが残っているんですよね。ちなみに、Intel Mac対応(Universal Binary化)は3.2でされている模様。

これまではPHPの開発環境として、Zend Studioを使ってたけど、PDTを試してみたい。あとは、現在はEclipse 3.2ベースだけど、AdobeのFlex Builderも使いたいし。いろいろ揃ってきているプラグイン類も便利そう。

インストール

まずは、インストールと日本語化。ITproの記事「第5 EuropaEclipse 3.3)の注目機能はこれだ!」とリンク先を読めば、十分でした。

どのパッケージをダウンロードすればいいのかだけ考えちゃいましたが、「Eclipse IDE for C/C++ Developers」にしました。別にJavaの開発するわけじゃないし、一番小さいシンプルなやつってことで。

展開したeclipseディレクトリは、/Applications以下に設置しました。Eclipse.appをダブルクリックして無事に起動。

Pleiadesによる日本語化

上記の記事にしたがって、日本語化。readme.txtにも書いてあるので、その通りにやるだけなんですけど。いくつかMacならではの注意点があります。

・eclipse.iniは、eclipse直下にあるものではなく、eclipse/Eclipse.app/Contents/MacOSにあるものを編集する。

・eclipse.iniに追加する-javaagentの設定は絶対パスで指定します(相対パスだと起動時にエラーになりました)。

・デフォルトだとメニューが「ファイル(F)」みたいにWindows風に表示されるので、Mac風に表示にするために起動オプションにno.mnemonicを指定します。

つまり、こんな感じの行をeclipse.iniに追記します。



-javaagent:/Applications/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar=no.mnemonic

ITproの記事では、デフォルトのスプラッシュ画面を無効にしてPleiadesのものに変えるためにeclipse.iniを書き換えてましたが、この作業は不要のようでした。

eclipse.iniの編集時ですが、Eclipse.appはパッケージになってるので、普通にクリックするとアプリが起動されてしまいます。右クリックで「パッケージの内容を表示」で開いていきます。

MacとWinの違いというと、ディレクトリを移動で同じディレクトリ名があった場合。

Windowsだと「上書き」なので、同じファイルは上書き、ないファイルは追加されます。

でも、Macの場合は「置き換え」なんですよ。なので、古いファイルは消えます。

とりあえず、こんな感じで無事に起動しました。ウィンドウタイトルの「C/C++」がいらないなあ。

Eclipsemac

ワークスペースはデフォルトのホームディレクトリの直下ではなく、Documentsの下にEclipseWorkspaceを作りました。好みですけど、ホームディレクトリの直下はあんまり使いたくないので。

Technorati Tags: , ,


Apacheモジュールはじめました

最近作りたいもの」でも書いたのですが、Apacheのモジュールを作ってみたいなと思っています。

そんなわけで、ちょっと前に買っていた『Apacheモジュール プログラミングガイド』を参考にかんたんなモジュールを作ってみています。Apacheにはずっと触れていたのに、理解が浅かったなあと反省しつつ、勉強です。

ApacheのモジュールはC言語で書いたコードをコンパイルして作るのですが、C言語は他人が書いたコードを流し読みするくらいの経験しかなく、ちゃんとプログラミングするのは未経験。

書籍ではApache 1.3系について説明されていて、2.0系の話は最後の章で違いとして解説されています。最近、触ってるのは2.0系ばかりだなと思いつつ、個人的に使えるUNIXの環境を見てみると、いつも使っているWindowsのノートパソコン内のCooperative Linuxの中で動いているApacheが唯一1.3系。とりあえず、そこを勉強中の開発環境とすることにしました。

実際にインターネット上で動かしたくなったら、その時考えます。

それにしても、Apacheモジュールに触れた書籍は少ないんですよね。ほかにあるのは洋書の翻訳版。

前にPerlをガシガシ書いていた5年くらい前には、mod_perlの情報目当てに、この2冊を手にとった記憶があるのですが、当時は理解できる限界を超えていたようです。今なら、参考になるかも。

Technorati-JP Tags: