久々の更新。

新しい年度になってもうすぐ一ヶ月。
今度の案件のためにNetBeansを習得しようと思っていた矢先にPC(NEC製、2004年ゲット)が壊れてしまった。電源をつけっぱなにしたまま数時間外出(選挙)して帰ってきたら、のろわれたブルースクリーンがそこにあった。
かるくきれたので、この際と思って新しいノートPCを購入した。今その新しいPC(Thinkpad T60)で日記を書いている。
新しいPCをセットアップ後、Netbeansをインストールした。多少もたつくが、そこそこ使えそうだ。Swingのプログラムを書くのに、EclipseNetbeansのどちらを使うか、迷っているところだ。Netbeansの場合、GUIで生成されたJavaコードは保護されていていじれない仕様になっていそうなので、そこがちょっとネックだ。Eclipseはまだ十分試していないのでわからないが、少なくともソースはいじれそうだ。だが、少なくとも導入するうえでめんどくさいのがネックだ。どちらも一長一短といったところか。 

写経の日々。

プライベートでJavaを再び勉強したくなったので、部屋の片隅に眠っていたLight Weight Java―JSF/Hibernate/SpringによるフレームワークでWebアプリケーションの開発効率向上を引っ張り出してみた。
最近Tomcat5.0→5.5にアップグレードしたところ、サーバ起動が格段に早くなったのでこれを機会に再挑戦してみたくなったのである。ただ、自分で独自にJarをクラスパスに入れたところでは、うまく動かない。Jarはあるはずなのに、applicationContext.xmlでdataSourceを定義するところで、クラスが見つかりませんと怒られてしまっている。
何で動かないのかよくわからないので、とりあえずまず写経してみることにした。
今度はうまく動いてくれるかな。。。

CakePHP試用記。ってほどでもないか

CakePHP公式サイトのブログチュートリアルを一通りやり終えた。思ったより簡単だった。Railsをかじっている身としては、scaffoldingがどうなっているのか気になるところだ。やっぱり、DB駆動でCRUDページが一瞬でできるというのはキャッチーだと思う。そこで、bake.phpとdecorate.phpをそれぞれ実行してみますた。実行するには、コマプロで"php_install_path/php.exe bake.php"とやれば一発だ。ちなみにdecorate.phpはbake.phpと基本的にやることは同じなんだけど、pagingとかsortingとかsearch窓もついてくるありがたいbake.phpだ。デフォルトでは入ってないので、あらかじめhttp://cakeforge.org/projects/decorate/からDLしてcake\scriptsフォルダ(bake.phpと同じ場所)の中にコピーする必要がある。
やってみて結構気持ちよかった。他のフレームワークについてはあまり知らないけど、とっつきやすさでは一番ではないかと思う。(なんたってPear使わないし、PHP4でもできるし)associationとか、サニタイジングなどについても今度調べてみようと思う。でもその前にrailsの本も終わらせないと。

PHPフレームワーク、その3

symfonyaskeetを実際に作り始めたものの、データベース設定にはまってしまった。
で、あっさりきりかえて、PHP5.0.4→5.2.0にアップグレードした。PHPのインストール自身はDLしてきたZIPを好きなディレクトリで解凍してパスを環境変数に入れるだけですむが、Apache+MySQLで動かすための設定がちょいと面倒だ。それに、Windowsなのでgo-pearもやらないといけない。このとき、PHP5.2.0のPEAR\go-pear.pharがデフォルトで壊れてるらしくて、go-pear.bat実行しても失敗してしまう。そこで、NETで調べた場所から正しいgo-pear.pharをDLして再度挑戦したところ、うまくいった。環境変数は前のヴァージョンと変えてないので基本的にいじる必要なし。でもなぜか、pear.batがpear.bat_bkと違うファイル名になってた。無意識のうちに自分が変えた?
PHPPearのアップグレード完了したところで、CakePHPというのを導入してみた。これをつかうと、PearなしでもRailsっぽいフレームワークが使えるのでレンタルサーバでもいけそうだ。CakePHP公式サイトのチュートリアル観ながらやってみたところ、お約束どおりデータベース設定(database.php)ではまった。調べてみると、PHP5以降でMySQLのドライバがデフォルトで組み込まれてないそうなので(フレームワーク以前の問題)、まずphp.iniでextension=mysql.dllとなってるところをコメントはずして、extension_dir=「mysql.dllパス名」を追加し、livmysql.dll(これであってる?)をc:\windowsフォルダにコピーすればOKだった。CakePHPのソースがかなり読みやすそうなので、しばらくこれでやってみようと思う。

PHPフレームワーク、その2

symfonyというフレームワークがあるらしいと知り、手を出してみた。本家サイトのhttp://www.symfony-project.com/askeet/1に1日ずつaskeet!を開発するチュートリアルがあって、おもしろい。CODEZINEにも該当記事があるよ!

ethnaを試してみる。

WEB+DB PRESS Vol.36を書店で購入したので、いろいろなフレームワークを試してみることにした。
個人的には元PHP使い(のつもり)なので、和製PHPフレームワークethnaをインストールしてみた。
まずPEARのヴァージョンが<1.3.1だったのでpear channel-discoverを使うためにアップグレードすることにした。
順序としては、段階的に1.3.6→1.4.11とあげていったが途中でぃぺんでんしぃとかで怒られて苦労した。何かのパッケージ(Gtkとか)のバージョンをあげたほうがいいよ的なメッセージが出たがとりあえず無視して先へ進んだ。
PEARアップグレード後、何とかethnaインストールに成功したものの、index.phpをサーバで表示する際(Aliasをhttpd.confに追加)にSmarty関連のクラスが見つかりませんとかで怒られていた。
そこで、app/libにDLしてきたSmartyのlibsフォルダの中身を全部コピーして、エラーが出てるPHPファイルの先頭のrequireを修正したところ、何とかうまく動いた。(最初から入れといてほしい)
今のところIndexを表示してるだけだが、自動生成された各ファイルを観てみるとエンコーディングEUC-JPだったりShift_JISだったりでバラバラ。view/Index.phpEUC-JPなのでpreforward()メソッドで値をセットしてindex.tpl(Shift_JIS)に埋め込むだけでは文字化けしてしまう。ぐぐってみると、いろいろ方法があるみたいだが今は考え中。
とにかく、さわりだけみたかぎりではrailsと比べてもまだ発展途上のフレームワークといった印象だ。とりあえず、Java以外のやわらかい言語のフレームワークではまだPHPは実用に足りるのか疑問だ。(JavaではSeasarが気に入った)少なくとも今のところWebアプリを3分とか10分では作れそうもない。

まだ4日目。

かんたんRuby on RailsでWebアプリケーション開発を読み進めてまだ4日目。Photo Albumを作成中で、show.rhtmlを作る際に思わぬところではまった。
アップロードした画像がちゃんと表示されないのだ。よく読んでみると、show.rhtmlにpartialに埋め込む_content.rhtmlでimage_tagメソッドのパスに最初に/(スラッシュ)入れるのを忘れていた。これを入れないと、railsはデフォルトで/images/ディレクトリの下を読みに行くらしいのだ。この本はそういう細かいことも書いてあって本当に助かる。
また、show.rhtmlで表示したときに@page.memoのデータベース上の改行がちゃんと反映されない問題がでてきた。本やネットで調べてみたが、本にはどうも載ってなさげだった。とりあえず、album_controller.rbで\n→
に変換するメソッド(erb.rbのhtml_escapeメソッドを参照)を書いてそれでしのいだ。(hメソッドを使ってないので、
以外のエスケープはちゃんとするよう↑のメソッドに記述)ちなみに仕事でJavaでこの問題を扱った際、JSFのカスタムコンバータを作成して、それをJSPに埋め込んだ記憶があるが。(主に横展開担当)