1 11

[Linux]起動時に自動的に時刻を合わせる

Tag: Linuxuechoco @ 17 : 15 : 00

 VMware上のLinuxだと、正しい時刻にあっていないことが多いです。毎回のように起動時にntpdateをたたいたり、同等のシェルスクリプトを用意して手動で実行するのは、面倒だったり忘れたりします。私の場合は仮想のLinuxをWebサーバーとして扱おうと考えているので、時間は正確であることが望ましいです。

 詳しく調べたわけではありませんが、仮想のLinuxの起動時に1回時刻を合わせれば済むのじゃないかと思うので、起動時に自動で1回だけntpdateを実行するようにしました。具体的には/etc/rc.d/rc.localというファイルの末尾に

/usr/sbin/ntpdate ntp.nict.jp

という行を追加するだけです。ntpの問い合わせるサーバーはどこでもいいと思うのですが、今回はNICT(独立行政法人 情報通信研究機構)の公開NTPサーバーを選択しました。

 もし、一定時間ごとに時刻を合わせたい場合はcronを設定します。rootのときにcrontab -eでcron編集ができるので、実行間隔と上記のntpdateコマンドをcron形式で記述すれば大丈夫です。ただしNICTのNTPサーバーの利用規定では、1時間に20回以上(1日に480回以上)の問い合わせはしてはいけないようです。

 ■追記(2008/01/12)
Studentさんよりコメントをいただきましたが、VMware Toolsをインストールすれば時刻の同期をすることができるようです。VirtualBoxにもGuest Additionsをインストールすると時刻を同期する機能があったので、仮想化ソフトウェアはそういった機能を備えているのが普通なのかもしれないですね。


1 11

[php][書籍]紹介:Fast CakePHP

Tag: phpuechoco @ 16 : 00 : 00

2008/1/9に発売された『Fast CakePHP』は、CakePHPフレームワークの入門書として早くも人気が出ているみたいです。私も買って、もう読み終えてしまいました。お気に入りの本になりそうです。読んだ後に書籍を紹介するのは始めてかも。なのでいつもより詳しく書籍紹介、兼、一部書評。

1. 書籍情報

2. 「LLフレームワークBOOKS」シリーズについて
「LLフレームワークBOOKSシリーズ」は、技術書にしては珍しい、A5サイズで軽くて持ち運びやすいシリーズです。価格もお手ごろで、それでいて、LLフレームワークの入門ができるという、おいしい技術書です。今までにはEthna×PHPsynfony×PHPFast CakePHPの3冊のPHP書籍が出版されています。

以下、断りがない限りは、「LLフレームワークBOOKSのPHP書籍」を「LLフレームワークBOOKS」と記述します。

LLフレームワークBOOKSの最大の利点は、持ち運びたくなるサイズと重さでしょうか。これは技術書として非常にすばらしいことだと思います。たいていの技術書はB5変版で重いので、持ち運ぶのが億劫だからです。技術書をすべてA5版にしろなんて言いませんが、A5版で気軽に読める技術書が増えるといいですね。

LLフレームワークBOOKSの利点でもあり欠点でもあるところは、各フレームワークの入門書ですが、phpの入門書も兼ねてしまっていることです。PHPでの開発にかなり慣れている人とっては、phpのインストール方法や基礎文法の解説のページは有益ではありません。そしてphpが全くわからない人にとっては、この程度のphpの基礎解説では不十分に感じます。ですが、phpの駆け出しの人にとっては有益な情報かもしれません。

3. 「Fast CakePHP」について
Chapter 1では、CakePHPがどういうもので、どうすばらしいのかが簡潔にまとめられています。「CakePHPを使いたくなる5つの特徴」というセクション名がブログのタイトルみたいで気軽に読み始めることができますね。そのほかにもCakePHPのフレームワークとしての動作の特徴などが書いてあります。

Chapter 2では、phpという言語の説明、phpの基本文法などが書いてあります。phpを既に習得している方は流し読みで十分ですね。Chapter 2の最後にフレームワークを使うことのメリットやMVCモデルという観点からCakePHPのModel・View・Controllerの説明があるので、ここだけはしっかり読んだほうがいいですね。

Chapter 3では、LinuxとWindowsにApache・php・MySQLをインストールして設定するところと、CakePHPのダウンロード・インストールなどが書いてあります。私はちょうどLinuxの勉強もしているので、Linuxへの一連のインストールの仕方は結構参考になりました。WindowsのほうはXAMPPでインストールしているみたいです。

Chapter 4からは、CakePHPの解説に入ります。CakePHPのディレクトリ構造やフレームワーク内の処理の流れがまとまっているのがいいですね。MVCあたりの部分は、モデルの主要なメソッドとアソシエーション(SQLのJOINのようなもの)の解説を中心に、コントローラー、ビュー、ヘルパー、グローバル関数/定数、バリデーションやキャッシュの説明も後に続きます。ヘルパーはCakePHP 1.1のHtml Helperについては記述してありますが、そのほかのヘルパーの説明はありません。もう少しヘルパーの説明が多くてもよかったなーと思います。最後はファイル名とクラス名の命名規約が書いてあります。
この章は、1度目は「CakePHPはこういうメソッドとかがあってこういう機能があるのかー」という感じで読んでください。おそらく、この章が必要になるのは、実際にCakePHPを使い始めて「あれ、あれなんだっけ」という状況になった時だと思います。リファレンス的な章ですね。

Chapter 5は、ToDo管理アプリの制作を通じてCakePHPの開発をする内容になっています。この章の中には著者の体験したTipsや、実用的なTipsがたくさんちりばめられています。ここら辺は読み応えがありますね。DB関連のCakePHPの規約やエレメント機能、Ajaxの実装などもこの章で触れています。
この章のToDo管理アプリの作り方が、実際の開発の手順を想定しているようなので、またすばらしいです。初めに「追加」機能が動くように一通りのプログラムを実装し、後から「編集」「削除」「リストの分類」などの機能を追加修正するという手順になっています。一度に全部のソースを載せて「ほらできた」ではなく、実際の開発手順を想定して2段式にしているのがいいですね。

Appendixでは、CakePHPの情報源がたくさん載っています。一度この本を読み終えてCakePHPに晴れて入門できた人にとっては、この本は入門書ではなく、ポケットリファレンスと呼べるべきものになるはずです。この本を読み終えてからは、Appendixに載っているサイトなどを参考に、じゃんじゃんWebアプリを作っていけると思います。

5. 私が考える「Fast CakePHP」の対象読者

  • phpでプログラムを作った経験があって、CakePHPに興味を持っている人は、この本を買うべきでしょう。短時間でCakePHPの基礎がわかります
  • プログラミング未経験での人は、この本と一緒にPHPの入門書を別に買って、その本を読み終わったらこっちに移ったほうがいいと思います。「Fast CakePHP」ではphpの基本文法やインストール方法などが載っていますが、プログラミング未経験の人にはテンポが速すぎたり、何気なく使っている関数についても調べるのが一苦労だと思います。
  • 他のLLの経験があり、その言語で何らかのフレームワークを触ったことがあるけど、phpは触ったことがなく、CakePHPに興味がある人であれば、この本を余すところなく活用できるでしょう。おそらくわからない事があっても自力で調べることのできる能力があるかと思います。

久しぶりに長文かいたゎw 著者のakiyan氏が自身のブログで「Fast CakePHP」の紹介をしていて、その中にはこの本のコンセプトが書かれていましたが、読み終わった後にそのコンセプトどおりだと実感しました。