今年もらったもの

買い物をしたときに何かサービス品をもらうと嬉しいものです。 大昔は PC のたぐいはずいぶん高価なものだったので、それこそ九十九さんとか、店員さんにいうとフロッピーディスク(当時は10枚3000円くらいした!)とか、ゲームとかつけてくれたものです。 いまはあんまりそういう @home な感じでもらえることは少ないですが、まぁまぁキャンペーンとかで何かついてくるときはありますよね。 🙂

というわけで、今年もらったもの。 まずは ThinkPad くんを買ったときにちょうどキャンペーン中だったので貰えた、ThinkPad キャリングケース。 7500円するんだ。

IMG_0709

A4 もはいるタイプなので X61 にはでかいですが、まー PC もっていくときは他のものももっていくことが多いので良いです。 何度か活躍してくれました。

チャックのところに、トラックポイント印の赤ぽちがついているのがおしゃれ。 みるひとみれば、ThinkPad だって一発で分かるデザインはこれしかないでしょ。 よい。

次は YAMAHA さんのシーケンサーのイベントに行ったときにもらった CD ケース。

IMG_0712

YAMAHA MOTIF ES。 シンセ。 何を隠そう現行機は MOTIF XS なのでおそらく余ったものだと思います(笑) でも、布っぽくてよい。

むかしは、コンピュータ関連のビックサイトでやるようなイベントにいくと、メーカ名かいたストラップとかいろいろもらえて好きでした。 これみよがしに、Sun Microsystems とか Oracle とか Microsoft のネックストラップとか無意味につけていたもんです(笑)

最後はビックサイトつながりで、ビックプッチンプリン。(←まったく関係ない

なんと 400g。。 通常の 3.8倍らしい。。

IMG_0717

[tegaki]くーつたわんねー。[/tegaki]

左上はたばこです。 手がでかいせいなのか、遠近法でふつうにみえてしまうのか、、本当は相当でかい。 このプリン、自分の重量でつぶれそうになっていました。 😛

Eclipse PDT で PHP デバッグをする

PHP の統合環境は長らく PHPEclipse を使っていましたが、Eclipse 本家で PDT (PHP Development Tools) の開発がはじまって、両者使い分ける感じでいました。 最近は PDT のほうが良さそうになったのでこちらがメインになっています。

PDT は WordPress のプラグインをかくときなどに、シンタックスエラー検出や定義ジャンプなど基本的な機能だけ使っていましたが、 Shiroica さんが PDT にデバッガの設定をしていて便利そうだったのでぼくもまねしてみました。 🙂

Eclipse PDT+Aptana+Subclipse – SharpLab.

おおー!これは凄い。そしてこれまでテキストエディタでWordPressのThemeを書いて、var_dump()を使ってデバッグをしていた自分の努力はなんだったんだ…。

デバッガというのはプログラムのソースを指定の行で止め、一行ずつ目で確認しながら実行したり(ステップ実行)、変数の中身を画面から確認したり(ウォッチ)するツールのことです。

これがね~、特になにかプログラムが想定と違う動作するときにあるとないとでは修正効率がまったく違うという、素人お断りの大人ツールです(嘘)

Web のプログラムの場合、操作によって起動スクリプトがまちまちだったりエントリポイント問題が面倒なせいか、デバッガ使う人はなんだか少なく思えますが、PDT + xdebug を使うとなにも考えずにデバッグ可能でした。 すごす。

昔、PHPEclipse にデバッガいれていたことありましたが、起動スクリプトごとに設定を変更しなければいけなかったり結構面倒だった覚えがあります。

てなわけで、Windows のほうは Siroica さんのサイトが参考になります。 ぼくはせっかくなので違うことということで、Linux の Eclipse PDT に設定してみました。 🙂

Windows の xampp には最初から xdebug という PHP デバッグに必要な拡張モジュールがはいっているそうなのですが、 Linux 版の xampp にははいっていないようでしたのでコンパイルして xdebug.so を作成します。

コンパイルには xampp の Development package が必要ですので、ダウンロードして /opt/lamm/ にいっしょにいれて、xampp 環境にあわせた xdebug をソースからコンパイルします。 詳細手順は以下の感じでOKです。

Install ‘xdebug’ PHP extension for XAMPP on linux at SANIsoft – PHP for E Biz

Following is the procedure for installing PHP’s ‘xdebug’ extension for XAMPP on linux (most of the installation procedure is same as http://www.xdebug.com/docs/install but there are a few quirks).

で、 /opt/lampp/etc/php.ini に xdebug.so を読み込ませる設定をします。 上の設定だけだと remote_debug が enable にならないので一行追加です。

zend_extension=/opt/lampp/lib/php/extensions/xdebug.so
xdebug.remote_enable=1

これで、Apache 起動して phpinfo() みると xdebug が読まれていることが分かります。

で、Eclipse PDT 側の設定です。 デバッグのダイアログをひらき、アクセスする URL とワークスペースのファイルの位置をあわせてあげます。

debug01

ちょいと見にくいですが、File のところが /wordpress-27x/index.php ってことでEclipse ワークスペース上のファイルです。 デバッガプロセス一発目の起動に使うだけなので適当にとりあえず index.php にしておきましょう。

で、下の URL の欄で http://localhost/wp/wordpress27x/ ってことで実際に Apache で index.php が動くときの URL をいれて対応させてあげます。 xdebug は mod_rewrite がはいっていて URL が疑似られていても平気みたいです。

でけたら、ソースコード上の好みの位置でデバッグブレイクを設定して、上のダイアログのデバッグボタンを押下。 これで、デバッグプロセスに PDT が繋がります。

debug02

デバッグ時に表示される Eclipse のインターナルブラウザでたとえば WordPress が表示されるので、デバッグブレイクを設定したソース部分が動く位置まで操作していくとブレイクして上のようにとまってくれます。 あとは変数の中身をウォッチしたり、ステップインして次の行にすすめるなりできます。

このデバッグモードはデバッグビューからデバッグプロセスをとめるまで続いてくれます。 なのでその間にソースを修正して、インターナルブラウザで再度操作すればそのソースで止まってくれます。 なんの意識もせずにブレイクできるので昔に比べるて相当進化していました。。(汗 とてもいい感じです。 🙂

一点注意するのは、メソッド宣言行にブレイクしてもとまってくれないところです。 メソッドの実処理頭の一行目にブレイクをはりましょう。(ちょっとこれではまりました)

さて、PDT ですがデバッグも含めてなかなか便利です。 Siroica さんのように Aptana もいれるとかなり強力な環境になると思います。

最後に、PDT でちょっと気に入っている機能をひとつ紹介します。

PHP って、なんだかちゃんぽんで組み込み関数名がぼくはなかなか覚えられないのですが、こういうサポートもしてくれる機能があります。

PHP Function というビューがあって、フィルターにたとえば mb_ とかいれると組み込み関数を絞り込んでくれます。 でもって、右クリックマニュアルで Web からドキュメントをひいてくれて大変便利です。

debug04

もちろんソース上の組み込み関数名の上で、Shift + F2 するなどしてもマニュアルはひらけます。 デフォルトは英語マニュアルですが、日本語のマニュアルにしたい場合は以下のように設定に ja をいれるだけでOKです。

debug05

てなわけで、ちょっとね Eclipse はヘビーなソフトなので万人向けではないのですが、少し大きめのアプリかく場合はテキストエディタオンリーより全体的な作業効率はかなり良くなると思います。 Eclipse ばっかりみてればいいので、精神衛生上もよいですね。

よければお試しください。 🙂

XBOX に XBMC 8.10 ‘Atlantis’ をいれてみた

CentOS くんがうちのセンターサーバなら、クライアントの要は XBOX なのかもしれません。 CentOS に格納されているマルチメディア系のデータは XBOX がテレビやオーディオまでネットワークを経由してひっぱりだしてくれます。 このまえ Ubuntu にもいれていた、マルチメディアプレイアー XBMC の最新版ですが、XBOX も最新版の 8.10 にしてみました。 🙂

 xbox06

XBMC はもともと XBOX で動くアプリなので、テレビにうつしてリモコンで使うのが一番しっくりきます。 テレビにつないだ XBOX で XBMC 8.10 を動作させると上の写真のようになります。

もちろん XBOX は、

xbox05

こっちじゃなくて、初代

xbox04

こっちです。  あと2年くらいうごいてくれよ~。 😛

XBMC はたしか 2005年ころチャイナの方が、true type を表示可能にするパッチを提出してマルチバイト圏でもフォントが表示できるようになりました。 そこから、DVD の再生メニューに対応したり、様々な進化をとげ 8.10 に。 昔は、.xml を直接かきかえないとできない設定があったりしましたが、現在はほとんどの設定を画面から行うことができます。

trunk 追ってたときもありましたが、こうオープンソースアプリの進化をみているのは楽しいし、1.0 とかマイルストーンリリースがあると感無量なものです。 最近、商売のために、明確なバージョンポリシーもなく強引に 1.0 にあげたどっかのブラウザとは大違いです(笑)

さて、 XBMC 8.10 ですが、Ubuntu でみていたのである程度分かっていましたが、やっぱりいいっすね。 🙂

xbox00

音楽を聴くことがおおいですが、その対応メディア(ネットワーク含む)は標準で以下の通りです。

xbox02

XBOX ローカルの HDDから、DVD メディア、ネットワーク越しは Windows 共有もみれます。 あと、ネットラジオも対応。

xbox01

あと、お天気がみれたり。 RSS も流せるかも。

xbox03

以上はデフォルトのテーマですが、WP みたくいろいろ変更できます。

Apple が AppleTV という機械をだしていますが、XBMC はその AppleTV でも動いたりするようです。 わけわからない縛りがないので、たぶんこっちにいれかえたほうがいいかも。。(笑)

あと、Python のプラグインスクリプト実行環境が動作します。 サンプルでXBMC 上で Python 版テトリスが XBOX で動作していました。 面白いですね。

てなわけで、最近はいろいろなプラットフォームで動作するようになりましたし、PC で USBブート可能なものもありますのでテレビ・オーディオの近くに一台どうでしょうか。

これとかにいれてテレビにつないでブートさせるといろいろ便利そうですね。 🙂

xbox07