2010年6月30日水曜日

symfony:チュートリアルが終わった

 このブログのコメントで教えていただいたチュートリアルがとりあえず終わった。
どうも Django とはだいぶ違うらしい
設計思想の問題というか、根本的なところで切り分け方が違うようだ。チュートリアルに CakePHP と比較している部分があったので、そちらとは比較ができるのだろう。
PHP のフレームワークにテンプレートエンジンは要らない
HTML のソースの中に PHP が直接かけるのだからテンプレートエンジンは要らない。ただ、しテンプレートはプログラマでなくては書けない。Django のテンプレートはデザイナーでも扱えるという意味がやっとわかった。
 何度か読み直してぼんやりとでもイメージできるようにしよう。

symfony:スキーマーがいるのか。

 Django には無かった...。

ハンガリアン表記とキャメル記法

 (今で言う?)キャメル記法ハンガリアン表記だと思っていた。
 アンダーバーでつなぐのはスネークケースと呼ぶのか。

CentOS:PHP のバージョンアップ

CentOS 5.2 の PHP のバージョンアップの続き。
アップデート前のバージョンはこんな感じ。
[root@ML115 ~]# yum list installed php*
Loading "fastestmirror" plugin
Loading "installonlyn" plugin
Installed Packages
php.x86_64 5.1.6-27.el5 installed
php-cli.x86_64 5.1.6-27.el5 installed
php-common.x86_64 5.1.6-27.el5 installed
php-ldap.x86_64 5.1.6-27.el5 installed
php-mbstring.x86_64 5.1.6-27.el5 installed
php-mcrypt.x86_64 5.1.6-15.el5.centos.1 installed
php-mysql.x86_64 5.1.6-27.el5 installed
php-pdo.x86_64 5.1.6-27.el5 installed
phpmyadmin.noarch 2.11.10-2.el5.rf installed

2010年6月29日火曜日

PHP:なかなか手ごわい

 symfony の環境づくりを co-Linux から CentOS 5.2 に乗り換えたら MySQL,phpMyAdmin のインストールは拍子抜けするほどあっさり終わったが、今度は phpMyAdmin がエラーになる。「sys_get_temp_dir()なんてありもしない関数を呼んでるぞ!!」といっているのだが...。

 なに、PHP 5.2.1 から実装された関数ね。現在のバージョンは 5.1.6 だからバージョンアップすれば良いだけ....。

 これがうまくいかない。yom repostiory を更新しなくてはならないようなのだが、そのデータファイルがなくなっているらしい。
 サーバーは redhat か。あそこは昔から古い rpm をすぐ捨ててしまうんだよなぁ...。

 しょうがない。明日探そう。

MySQL:設定

 こちらのページの内容通り。

 コピペだけで作業が進んでいく。いや、メジャー OS は楽だ。

PHP:phpMyAdmin インストール終了

 ほぼこちらのページの通りに実行して、立ち上がった。ラッキー。うまくいかなかったのは、GPG キーのインポート。
[root@ML115 ~]# rpm --import RPM-GPG-KEY.dag.txt
警告: 排他ロックを獲得できません (/var/lib/rpm/Packages)
と警告が出た。


 メジャー OS は情報が多くて楽だ。

co-Linux が壊れた....

 PHP+symfony 練習用の co-linux 、phpMyAdmin を入れようとしたら壊れてしまった orz。HDD の容量ぎりぎり一杯のところでインストールしたり失敗したりしたのが原因らしい。

 fsck しようとしたら、マウントしてるディスクにかけるとデータが壊れるかもね、といってきやがる。

 何か手はあるかもしれないが、時間も惜しいし、ストレージが 2G ではこの先何かと不安がある。

 明日からは涼しくなるというし、あきらめて長い間死蔵していた ML-115 を起動。

symfony:ちょっと試そうと思っているのだが...

 すごい複雑。プロジェクト・アプリケーションをセットアップするだけでファイルを何十と作る。

 Django だと 5-6個なんだけど...。

 最初に手をつけたフレームワークが symfony だったら、絶対モノにならなかったと思う。

2010年6月28日月曜日

symfony:samba とは相性が悪いらしい

 co-linux 上で PHP が動くようにして、symfony のサンドボックスをインストールしたのだが、なんだかうまくいかない。

 最初はメッセージ表示ルーチンの IP アドレスチェックに引っかかり(このページを frontend_dev で検索)、結局エラーチェックをコメントアウトapatch のログを見て windows 側のアドレスを探して設定(TAP のアドレスだった)。

 それでエラーメッセージは変わったが、まだうまく動かない。Django のときにも思わぬところで引っかかったので、web server の root directory を samba 経由から co-linux のローカルに移動。

 無事動いた。

PHP:インストール成功

 PHP 環境を Linux 上に作ることにした。まずは使っていない古いサーバー上にインストールしようかと思ったのだが、室温 35℃を越える状態で、さらに室内に電気ヒーターを増やすという選択肢はありえないので、以前 Django をデプロイするときに練習に使った、メインマシン上の co-Linux を使うことにした。

 午前中から初めて、途中飯を食ったり洗濯をしたりしながら、ようやくサンプルプログラムが動いた。実質4時間ぐらいかかったのではあるまいか?
 最後の最後は info.php と書くべきところを info.html と書いてしまって嵌ったし...。

 4ヶ月ほど前には散々いじくり回したはずなのだが、apatch どうやって動かすかすら覚えていなかった orz。

 さて、一休みしてから、symphony のサンドボックスを入れよう。

 

2010年6月27日日曜日

PHP:official document に目を通しているが

 増改築を繰り返した温泉旅館のニオイがプンプンする。完全にマスターするには「サンクコスト」が高そう。

 一からプログラムを作るなら、使う機能だけを覚えていけば良いのだが、既存プログラムのメンテは大変そうだ。

 

2010年6月25日金曜日

故あって、PHP プログラマに転向

 フリーでやっていこうと思ったが、なかなか厳しそうなので、転職サイトからきたメールの求人に申し込んだら内定が出た。

 ということで今日から、PHP + Symfony のお勉強。

 まずは PHP。
----
 新しいプログラミング言語を覚えるときは、制御構文->変数の型->ライブラリ の順で行くことにしている。それぞれに特徴的なものを押さえていけば何とかなると思うのだが、PHP はどうなっているやら。

 

2010年6月24日木曜日

aptana Django:パスに全角スペースのディレクトリがあると動かない??

 普段はディスクトップ PC 上の aptana で開発をしているのだが、故あってノート上に aptana をインストールしてデモする必要がでてきた。

 SVN の調子が悪いので、プロジェクトをディレクトリごとコピーして aptana にインポートしようとするとうまくいかない。いや、インポートはうまくいくのだが、実行するとデータベースにアクセスできないといってくる。
 いろいろ調べたのだが、何が悪いのかさっぱりわからない。たまたまプロジェクトのコピー先を全然別なディレクトリにするとあっさり動いた。

 よくよく調べてみると、最初にプロジェクトをコピーしたのが

C:\Users\□\My Documents\Aptana Studio Workspace (□は全角スペース)

 と、なぜかユーザー名が全角スペース。

 なんだかわからないが、怪しい...。

2010年6月20日日曜日

SVN サーバーにつながらないと思ったら

 aptna から SVN にコミットしようとしたがなぜかつながらない。調べていくと...、なぜか Visual SVN サーバーが起動していなかった。

なぜだ?

小一時間時間をドブに捨ててしまった。

2010年6月14日月曜日

jQuery:UI Datepicker の日本語化

 日付入力部分に、jQuery UI の Datepicker を使うことにした。入力欄は使わず inline で最初から表示させる。

 カレンダーの表示を日本語化させようと、紹介ページの最後にある
You can restore the default localizations with:

$.datepicker.setDefaults($.datepicker.regional['']);
とあったので
$(document).ready(function(){
$.datepicker.setDefaults($.datepicker.regional['ja']);
})
を追加したのだがなぜかうまくいかない。

2010年6月12日土曜日

Django:データベース移行時の注意

 お客さんのうちの一箇所 Django + SQLite で作ったシステムを納めている。

 データベースの構造が変わったときは、古いデータベースの内容を新しいデータベースへ自作のツールを使って移行させている。

 このときの要注意事項がひとつ。

 ユーザーの作ったテーブルにカラムを追加されるようなときは問題ないのだが、Django の管理するテーブルのパーミッションが追加されるような場合は要注意。
 ちょっとしたコツがいるのだが、やり方は忘れた (^^;
 古い記憶を手繰ったところでは、'auth_permission' だけは古いデータベースからコピーしない。そして、古いデータベースの内容を見ながら新しいデータベースに手入力する。
 このテーブルは項目が増えたとき順番が変わってしまったため、上記の手順を取らないとうまくいかなかった。
---
 SQL の ALTER TABLE コマンドを使えば下手なツールは不要なようだ。要調査。

2010年6月8日火曜日

JS:JavaScript 修行中

 今日は、ひとつの form の中に submit が二つある場合の見分け方。
 珍しく「はてな」で見つけた

 動いたコードを良く見ると、name="submit" というタグがないのに submit.value にアクセスできてる。submit を sbmit とスペルミスしたら動かなかった。これって怪しい使い方?

 トラブルとイヤなので、を追加した。

2010年6月2日水曜日

GAE Python:妙なエラーが

 URL からクエリストリングを取り出そうとあれこれやっていた。

 Aptna を使い、適当なところでプログラムを止め、構造体を眺めていたらクリエストリングの入った辞書を発見。
 で、そこにアクセスすると妙なメッセージが。
DeprecationWarning: The attribute queryvars is deprecated: use GET instead
 どうやら「アトリビュート'queryvars'は廃止予定(deprecated)だから、代わりに 'GET' を使ってね」ということらしい。

 よくよく調べていくと(Requestクラス->WebOb)WebOb というのを使っているらしい。

 奥が深い。