Hatena::ブログ(Diary)

ぼちぼちいこか このページをアンテナに追加 RSSフィード

2009/03/12(木)

rootでもvimの構文色分けを行いたい。

以下、CentOS5環境、2009年3月時点での話である。


構文色分けを行うには、「~/.vimrc」に、以下を追加すればよい。

    syntax on

ところが、rootでは、その設定が効かない。なぜか。

よく見てみると、rootは「vi」が起動し、新しく作成したユーザー(new_user)は「vim」が起動している。

new_userで、「which vi」とすればわかる。

    alias vi='vim'
            /usr/bin/vim

rootでは、以下のようになる。

    /bin/vi

では、これを行っているのはどこか。

    /etc/profile.d/vim.sh

これである。

    if [ -n "$BASH_VERSION" -o -n "$KSH_VERSION" -o -n "$ZSH_VERSION" ]; then
      [ -x /usr/bin/id ] || return
      [ `/usr/bin/id -u` -le 100 ] && return
      # for bash and zsh, only if no alias is already set
      alias vi >/dev/null 2>&1 || alias vi=vim
    fi

3行目、ユーザーIDが100以下の場合は終了と記述してある。

このせいで、rootではaliasが張られず、viが起動するのである。

強引ではあるが、3行目をコメントアウトすれば解決である。

ちなみに、再ログインすれば反映される。

2009/02/22(日)

[SOAP][ZendFramework][PHP]SOAP情報少なくない?

最近の流行から言えば、SOAPを使う事も少なくなってきているのかもしれませんが。

非常に充実していて、かつ翻訳も進んでいるZendFrameworkのドキュメントもSOAP部分は翻訳されてないし。

第45章 Zend_Soap

http://framework.zend.com/manual/ja/zend.soap.html


とりあえず、一発目でハマるのは、PHPインストール時に、./configure --enable-soap は必須。

後から考えれば当たり前の事ばかりなんですが、結構見落としがち。

2009/02/12(木)

PHPの型の相互変換で陥りやすい事。

実際に私がハマったのだが(^^;

$mode = 0;
if ($mode == 'hoge')
{
    echo 'hoge';
}
else
{
    echo 'not hoge';
}

結果はどちらが出力されるだろうか。

きっと、期待するのは、「not hoge」なのだが、実際には「hoge」になる。

$mode = 0;
if ($mode === 'hoge')
{
    echo 'hoge';
}
else
{
    echo 'not hoge';
}

この場合は、期待通りである。

「not hoge」が出力される。

「===」で比較する事により、型を考慮するので、期待通りなのである。


$mode = '';
if ($mode == 'hoge')
{
    echo 'hoge';
}
else
{
    echo 'not hoge';
}

さらに、この場合、型変換は行われないので、期待通り「not hoge」が出力される。


結果としては、以下のように、型変換を行わないように設計し、かつチェックは型を見て厳密に。

と言う所なのだが、慣れないとついついハマる(^^;

$mode = '';
if ($mode === 'hoge')
{
    echo 'hoge';
}
else
{
    echo 'not hoge';
}

2009/02/11(水)

フレームワークを使ったきれいなPHPプログラミング

Part3 ●フレームワークを使ったきれいなPHPプログラミング

@ITpro

何気に気になるタイトルの記事を見かけたので読みました。

日経ソフトウエアの「特選フリーソフト170」という記事内容なので、最終的にはソフトの紹介の記事なのですが、そのソフトが、「Zend Framework」「Aptana Studio」と言う事で、気になった所です。

仕事では、「CodeIgniter」を使っているわけですが、「Zend Framework」は有用なモジュールが揃っているので気になっていました。

(特にSOAP関係とかね。)

記事は、非常に初心者にわかりやすい内容でしたので、これからPHPでよりコアな開発をしていきたいと思ってる人には良いのではないかと思います。

やはり、興味を引きやすいようにか紹介されているモジュールは、YoutubeAPIの扱いだったりします。

私としては、「Zend Framework」が面白そうだなぁと思っている方向性は間違ってないなと認識した感じです。

本当は、「CodeIgniter」が色んなモジュールを実装していれば楽しいのですが、まだまだ日本での認知度も低いわ、モジュールも少ないわで、コミュニティも小さめ。(海外にはあるかも)

ここで、他力本願に何を言っても意味が無いので、なんとか、協力したい所ですが、それほどの技術力があるわけでもなし。

なので、稼動実績としてお手伝いできるかも。。。くらいの、消極的な参加レベル。

こんな話が日常茶飯事だった、ITベンチャー勤務時の開発の仕事が懐かしい(^^;


Zend Framework徹底入門

Zend Framework徹底入門

PHPフレームワーク Zend Framework入門

PHPフレームワーク Zend Framework入門

2009/01/22(木)

GroundWorkでネットワーク管理。

オープンソース統合監視ツールGroundWork無償版の日本語化モジュール公開

GroundWorkというオープンソースの統合監視ツールが少し面白そう。

Nagiosと言うのは良く聞くが、記事ではcactiRRDtool,Ganglia,Nediなども紹介されてる。

比較サイトとかあるのかな。

調べてみよう。

2009/01/21(水)

PHPでSOAP

情報が少ないと去年は書いていたのに、ZendFrameworkにSOAPモジュールあると知って、ショック。

すでに、CodeIgniter使っちゃってるよ。

そんな訳で、CodeIgniterにZendFrameworkのSOAPモジュールだけ、導入してみるか。

ZendFrameworkの良い所は、モジュール郡としても、使えるって事ですよね。

楽しさが増えてきました。

去年は選択の年。そしてCodeIgniterへ。

去年は、PHPフレームワーク選びの年でした。

一番最初に仕事で使ったのはMapleでした。

そして、次にCakePHPとCodeIgniterを比較しました。

軽量、そして、ドキュメントの豊富さで、CodeIgniterを選択。

とは言え、Ruby on Railsや、CakePHPのような盛り上がりには、まだ遠い。

また、コミュニティも少ない。

MLも盛んではあるけれど、RoRCakeに比べれば、まだまだこれから。

ちょっと冒険したと言ったら、言い過ぎかもしれないが、そのくらいの気持ちで、仕事に起用。

ちなみに、CodeIgniterって、Gigagineで使われてる「ExpressionEngine」に使われてるフレームワークなんだと思うのですが、いまいち、そういう記述が見当たらない。

ExpressionEngine

CodeIgniter

Maple

CodeIgniterとネットワークとサーバ管理。

今年が始まって、はや21日。

今年も、CodeIgniterとネットワークサーバ管理のぼやきを、少しずつ書いていければと思います。

2008/11/24(月)

PHPファイルをUTF-8で保存する時のちょっとした罠

UTF-8で開発している時に私がハマってしまったのですが、HTMLを出力した際に、なぜか先頭に空白が入る事がありました。

よくあるのは、PHPコードの閉じ後に改行が入っているとかな訳ですが、それも無い場合。

UTF-8で保存する際にあるファイルを「BOM付き」で保存してしまうと、HTML出力した際に、先頭に空白が入ってしまいました。

これは、気づくのに時間がかかってしまいました。

出力されるデータをバッファに溜めて、var_dump(bin2hex($buffer));とかすると、先頭に「EFBBBF」が出ます。

このUTF-8の制御コードが、HTMLとしては、空白の様に見えていたのです。

改行や空白を消しても、何か空白の様な物が出力されてしまう場合、UTF-8BOMを疑ってみるのもアリかもしれません。

2008/11/23(日)

CodeIgniter日本語版の環境の構築

1.先ほどの本家のダウンロードファイルを展開する。

2.日本語版のファイルを重ねてコピーする。

内容は以下(翻訳版ユーザーガイドは含みません。)

Added : /CodeIgniter/README.ja.txt
Added : /CodeIgniter/copyright.txt

Modified : /CodeIgniter/system/application/config/user_agents.php
Modified : /CodeIgniter/system/application/errors/error_404.php
Modified : /CodeIgniter/system/application/errors/error_db.php
Modified : /CodeIgniter/system/application/errors/error_general.php
Modified : /CodeIgniter/system/application/views/welcome_message.php
Modified : /CodeIgniter/system/libraries/Email.php
Modified : /CodeIgniter/system/libraries/Validation.php
Modified : /CodeIgniter/system/scaffolding/views/header.php

Added : /CodeIgniter/system/language/japanese
Added : /CodeIgniter/system/language/japanese/calendar_lang.php
Added : /CodeIgniter/system/language/japanese/date_lang.php
Added : /CodeIgniter/system/language/japanese/db_lang.php
Added : /CodeIgniter/system/language/japanese/email_lang.php
Added : /CodeIgniter/system/language/japanese/ftp_lang.php
Added : /CodeIgniter/system/language/japanese/imglib_lang.php
Added : /CodeIgniter/system/language/japanese/index.html
Added : /CodeIgniter/system/language/japanese/profiler_lang.php
Added : /CodeIgniter/system/language/japanese/scaffolding_lang.php
Added : /CodeIgniter/system/language/japanese/unit_test_lang.php
Added : /CodeIgniter/system/language/japanese/upload_lang.php
Added : /CodeIgniter/system/language/japanese/validation_lang.php

3.htdocs/index.phpの変更。

こちらはそのままでも良いのですが、セキュリティ上、無難に変更。

同階層に「system」がある設定がデフォルトなので、htdocsと同階層に上げる。

私の環境の場合、「CodeIgniter」と言うディレクトリを作成し、そこにsystem配下を入れたので、以下のような設定に変更。

これで、外部からは直接ファイルにはアクセスできないので、少し安心。

(特に自分の作成したコードは、怖いので(^^; )

26c26,27
< 	$system_folder = "system";
---
> 	// $system_folder = "system";
> 	$system_folder = dirname(dirname(__FILE__))."/CodeIgniter/system";

4.トップページにアクセスすると、ウェルカムページが表示されていれば、OK!

f:id:catsliving:20081124224710p:image

2008/11/22(土)

日本語版の差分をダウンロードする。

1.日本CodeIgniterユーザー会のダウンロードリンクをクリック。

f:id:catsliving:20081124161733p:image

2.日本語版の最新版をダウンロードする。

(2008年11月23日現在で、1.6.3)

f:id:catsliving:20081124162032p:image

※日本語版は、1.6.3が最新なので、本家から本体をダウンロードする時に、気をつける。

2008/11/21(金)

CodeIgniterのダウンロード

CodeIgniterを、公私共に使用しはじめたので、備忘録も兼ねて。

CodeIgniter日記を書く事にする。


1.本家サイトから本体をダウンロードする。

(直接本家に行っても良いが、ここはひとつまわりくどく)

日本CodeIgniterユーザ会アクセスし、右上の「日本語版ユーザーガイド」にアクセス。(別ウィンドウ)

f:id:catsliving:20081124154054p:image

2.右上の「目次のページ」へ行く。

f:id:catsliving:20081124154401p:image

3.CodeIgniterのダウンロードをクリック。

f:id:catsliving:20081124154402p:image

4.CodeIgniterのダウンロード

※注意!!!(後述)

f:id:catsliving:20081124160022p:image

ここに並んでいる各バージョンのリンクは本家サイトのダウンロード直リンクしているのですが、最新版が最新過ぎる場合があります。

2008年11月24日現在だと、「CodeIgniter V 1.6.3 (最新バージョン)」というリンクは、「CodeIgniter1.7.0」がダウンロードされてしまいます。

この時点での日本語版の最新版は「1.6.3」なので、対象バージョンのリンクが存在しない事になります。

(本家から行けば、問題ないですが、一応)

CodeIgniter 1.6.3

http://codeigniter.com/download_files/CodeIgniter_1.6.3.zip