コンピュータ

スパム

…怒濤のごとくスパムメール受信。Thunderbirdのフィルターは賢いのでいいのですが、同一時間内に20通も送ってくるな。と吠えてみる。
f:id:hideack:20060725221215g:image

そういえば

激しくアメリカYahoo!のトップページが変わってたのですね。最近まで気づきませんでした。
世界中のYahoo!はこの形に変更されるのでしょうか?
screenshot
…と、はてなスクリーンショットでは、昔のがでるので撮り直し。*1
f:id:hideack:20060720005213j:image

*1:キャッシュが効いてるためでしょうか??

今度見る。

NeXTSTEP Release 3 Demo

少しばかり長いので今度見る。
当然英語は本当に端々しかわからないので、画面を見る。

えらくはないけど。

何か京の都から電波メッセージが届いたので、私なりに書いてみる。
一応、仕事で突如、

これ、PHPでやらなきゃならないから。

という状態になってしまい。それ以来チョコチョコやっているので、正当派の方がご覧になると

おぃ!それでいいのか?

な情報かもしれませんが、その点はご了承をば。
一応、最初に買った本がこの3冊。
中身の概要とかは、amazonをご参照くださいませ。
自分がどんなところをそれぞれの本で読んだかだけ、一応ささやかに書いておきます。
あ、既に「知ってるよ〜」っというのも入っているかもしれませんが、飛ばして読んでください。

前後左右全く何やっていいのかわからなかったので、全体的なことが書いてある本ということで最初に手に取ったのがこれです。
他にも何冊かあったのですが、かなり広く書いてあって量も気絶しない量なので、よかったのかと。
下の2冊の中で触れられていることも中の一部に書かれているので、PHPの全体的なものを把握するのによかったです。
最初のカレンダーのサンプルを書いてしまうと、結構波に乗れる気がします。

Smartyはテンプレートエンジンで、実際にユーザが見るWebのデザイン側と、DBでデータを保存して、並び替えて etc... といったプログラム側を分離するための仕組み。といったもので、PHPで広く一般的に使われているようです。
実際に私はこれをフル活用してサイトを組み立てました。

PEARは世界中のPHPプログラマが作っているライブラリ群です。
ターミナル等々から、pearコマンドを使うことでクラスライブラリをダウンロードして、PHPのプログラム中で利用することができます。
なので、この中のクラスモジュール(PEAR::DBとか)でデータベースに接続したりします。
この本はその辺りの説明も章立てでかなり細かく書いてあるのでよいかと。
データベース以外に取り上げられていたのはWebページでよくある最初のユーザ認証だとか、フォームに入力された情報をメールで送信。といったものとかだった記憶が…。

本は上の様な感じです。
HPはいくつか参考にしているのですが、一番まとまっていて且つ、読みやすいのはphpspot(http://phpspot.net/php/)な気がします。
ここのサンプルとかblogの情報にはだいぶ助けてもらいました。

だらだらと書きましたが、こんな具合でしょうか。
あと、残念ながらFlashとPHPを絡めるといったことはまだやったことがないです...。
もしこの辺りid:zackykaiが試されたらblogに情報を是非!他にもいろいろ情報交換したいですね。

あ、あと、やっぱりMacは、PHPの開発環境としてもすごくいい気がします。
なんせ、もう既に入ってるし(/usr/bin/php)。
/private/etc/httpd/httpd.confのApacheの設定を修正すれば、Webブラウザですぐに確認もできます。さすが、MacOS!!

環境構築中

Ethna入れてからなぜかPHPをきちんとApacheの上で走らせることを確認させている私。
順番が逆だろ普通。と、自分で思いつつも作業実施。

f:id:hideack:20060701030311j:image

なんか、妙にひっかかったが動く様にはなった。
いろいろパッケージになっているものも試みてみたが*1結局自分で全部設定する方がよいみたいだ。

*1:mampとかWebServerXKitとか

便利っす。

livedoor Readerを少し前から使っているのですが、激しく便利です。
レスポンス早いし*1、ショートカットキーも使いやすいし。ピンで気になる記事をマークしておいて、一気にあとから開いて詳しく読む。なんてこともできる。
このblogも足跡を見ると使っておられる方もおられる様ですが、使われていない方は是非。

*1:時々サーバーが混んでるけど

音楽ファイル移行完了(Windows版iTune -> MacOS版iTune)

意外とあっさり。MacBookのSambaを有効にしてvaio側から「マイミュージック」の中に保存されているiTuneフォルダをMac側のホームディレクトリにコピー。
コピー完了後、MacのiTuneを起動するとhomeディレクトリ内を走査してくれて取り込んでくれる。*1
IMS*2で購入した曲も1度認証すれば問題なく再生できる。一曲につき5台まで認証できる様ですね。

*1:ただし、移動ではなくコピーになるのでiTuneが取り込み終えたら元々のものを削除すれば2重にならない

*2:略し方はこれであっていたか謎だ。

PHPフレームワーク Ethna

http://ethna.jp/ を参考にしながらEthnaを入れてみる。
何故突如Ethnaか?以下理由。

  1. 名前がかっこいい
  2. PHPフレームワーク=似たようなことを繰り返し書きたくない

前者の理由はともかく*1、後者の理由は以前、突如仕事として行わなければならなくなった際の苦労もあるので使いたかった。

ということで…。

      • -

公式サイトが充実しているのでメモを残す価値も無い気もするが、一応記録として残しておく。

Windowsマシンの方で使っているのがPHP4なので、以下のPEARコマンドで

$ ./pear.bat install http://ethna.jp/pear/Ethna-2.1.2.tgz*2
downloading Ethna-2.1.2.tgz ...
Starting to download Ethna-2.1.2.tgz (104,805 bytes)
........................done: 104,805 bytes
install ok: Ethna 2.1.2

あっさり入る。

  • 依存ライブラリの確認

Ethnaでは下記ライブラリが必要。

私のPCには上記ライブラリは格納済みなので割愛。

  • Ethnaコマンドの設定

上記の入れ方でインストールを行うとPEARフォルダの中にEthnaのバッチファイルが展開される。

  • rwx------+ 1 ******* なし 435 Jun 17 10:39 ethna
  • rwx------+ 1 ******* なし 978 Jun 17 10:39 ethna.bat

アーカイブから入れたときは、展開したアーカイブ内のbinディレクトリの中のファイルを抽出するとのこと。
PEARから入れた場合はいらないのかな。多分。

  • Ethnaコマンドを実行してみる

とりあえず実行。
PEARコマンドがあるディレクトリにはパスが通してあるので、Ethnaコマンドにもパスが入ることになる。

$ ethna

Warning: main(Smarty/Smarty.class.php): failed to open stream: No such file or d
irectory in c:\php\PEAR\pear\Ethna\Ethna.php on line 16
(以下略)

Smartyが見つからないようなので、php.iniを編集。include_pathを書き直す。
そういえば、別のプロジェクトの際の妙な設定が残っていた。Smartyは私の場合、C:\php\lib\smarty に置いているので*3

"PHP.ini"ファイル内
include_path = ".;c:\php\PEAR\pear;C:\php\lib;

これでもう一度実行

$ ./ethna
usage: ethna [option] [command] [args...]

available options are as follows:

-v, --version show version and exit

available commands are as follows:

add-action -> add new action to project:
add-action [action] ([project-base-dir])
(以下省略)

  • 実際に作ってみる

Ethnaのチュートリアルにならってサンプル作成。
自身のホームにtmpディレクトリを作成する。

$ mkdir tmp
$ ls -l
total 0
drwxr-xr-x+ 3 ****** なし 0 Jun 17 11:09 tmp

そのままの階層でプロジェクト作成を行う。
コマンドのusageに従えば、

add-project -> add new project:
add-project [project-id] ([project-base-dir])

ということなので、プロジェクトのIDをethna_sample、ベースディレクトリを先ほど作ったtmpディレクトリに設定。

$ ethna add-project ethna_sample tmp
error occured w/ command [add-project]
-> Only Numeric(0-9) and Alphabetical(A-Z) is allowed for Application Id

うむ、プロジェクト名は英数字のみですか。では、素直にやはり公式サイトのチュートリアルに従って名前をsampleで作成。

$ ethna add-project sample tmp
creating directory (tmp/sample) [y/n]: y
proejct sub directory created [tmp/sample/app]
proejct sub directory created [tmp/sample/app/action]
(途中省略)
file generated [skel.view_test.php -> tmp/sample/skel/skel.view_test.php]
file generated [template.index.tpl -> tmp/sample/template/ja/index.tpl]

project skelton for [sample] is successfully generated at [tmp]

これで一通りのスケルトンは作成されたことになる。
上で作成されたプロジェクトのWebサーバでの公開領域は~/tmp/sample/wwwなので、これを参照できる様にする。
Windowsの場合は、ローカルのWebサーバとしてAnHttpdを使わせていただいているので、この設定を変更する。
(変更は、オプション(0) -> 一般(G) -> ダイアログ内のドキュメントルートを修正)
上記の設定で、見える様になるはず。Webブラウザで閲覧してみると・・・。
f:id:hideack:20060617113659j:image
おぉ、ばっちりだ。

  • アクションを追加する

ここでアクションとはナニですか?となるわけですが、公式サイトを見ると

「アクション」とは何ですか?というのを正確に定義するのはちょっと難しいですが、要するに
1. ユーザから何らかのリクエストを受け取って(例えばURLへのアクセスや、submitボタンのクリック)
2. サーバ側で何らかの処理をして
3. 結果をブラウザに出力する
という一連の処理単位だとお考え下さい。

とのことなので、そういうことにする。*4
アクションを追加するときにはコマンドで "add-action" を指定する。

$ ethna add-action hello
file generated [skel.action.php -> /home/*****/tmp/sample/app/a
ction/Hello.php]
action script(s) successfully created [/home/*****/tmp/sample/app/action/Hello.php]

ふむ。追加された。
と、ここでタイムアップ。続きは後で。

*1:これはこれで非常に重要である。

*2:PHP5の場合はPEARチャンネルを使って入れるらしい。

*3:未だに適切な置き場なのか不明...。

*4:割切重要

すっかり

MacBookのマウスパッドの2本指で画面スクロール。が染み付いてきました。これってやっぱり便利です。
あと、キーボードも思いのほか入力がしやすく使っていて非常に満足です。
ただ、まだ慣れないのは

  • 漢字への切り替え
  • コピー&ペースト等をctrl+'c','x','v'と思わず打ってしまう点

ぐらいだろうか。
もしかしたら、キーバインドを変えるツールを使うといいのかもしれないけど。探してみよう…。