Archive for September, 2005

WinBinder: A native Windows binding for PHPを試してみた

Sep 29 2005 Published by funaki under いじる

WinBinder: A native Windows binding for PHP

PHP-GTKというのは数年前使ったことがありましたが、こちらは初めて。実行すると普通のWindowsのアプリケーションっぽいインターフェイスで表示されます。

C:\WinBinder\Code\Samples>..\..\PHP\PHP4\php.exe hello.phpw

Welcome to WinBinderというショートカットがデスクトップに作られるもののエラーで起動しなかったりソースが相対パスで書かれているので実行時にNo such fileとエラーが出たりしました。。

依存関係なしで全部まとめてexeにして作ったアプリを配布できるようにしてくれると、使ってみようという気になるのですがそれは無理みたいです。

One response so far

vimをIDE並にする.vimrc:もっと早く知っていればよかった

Sep 28 2005 Published by funaki under いじる

Vim: the editor

周囲ではどうも市民権を得られていませんが、エディターはvim派です。

Comfortable PHP editing with VIM -3- – Tobias Schlitt – a passion for php

シリーズものの記事になっていて、最新は4。ここに載っている.vimrcはすごい!百聞は一見にしかず、ですがTabで関数名自動補完や括弧とダブルクォーテーションを自動挿入してカーソルを移動してくれる機能はVisualStudio以上とも思えます。

KaoriYa.netのそれとあわせて自分用に直してみました。一応、WindowsのgVim用です。(vimrc

別途、funclist.txtというPHPの関数が羅列されたファイルも必要です。あとはフォントがOsakaだったり色はmidnight2を使っていたり。minibufexplというタブっぽくできるscriptも愛用中。

PHPのマニュアルは上記ブログではphpmというのが勧められていますがPHP5が必要なので使っていません。vim / Y’s memoに載っている
PHP Manual in VIM(関数の上でShift-kを押すとマニュアル登場、UNIXのman風)が便利。

PEARなどソースを見ると、ぁ、vim使って書いてる、というのをちらほら見かけるので結構いるはずなのですがどうも肩身の狭いvim。リモートのLinux上でscreenとあわせてぽちぽち開発をするには非常にいいと思うので別の機会に紹介したいと思います。

One response so far

PHP Framework 比較表

Sep 26 2005 Published by funaki under いじる

各種PHPフレームワークの比較表を作ってみました。無数にあるのでGoogleで簡単に検索できたものをメインに試しています。より多くのフレームワークのリストはEthnaのページ(リンク切れ)が参考になります。主観はなるべく入らないようにしました。

» Compare PHP Frameworks / PHPフレームワーク比較表

表の項目の補足:

  • Zip File Size:ダウンロードしたファイルのサイズ、基本的にZip
  • Coding Standards:PEAR準拠か否か
  • Requirement:PHP5とあるものはPHP4では動かない

プロトタイプを作るために使える、という視点で見るとほとんどのフレームワークは巨大過ぎます。Biscuitのように小規模なものだと今度は設計にやや難があったり、自作した方が手になじむかもしれません。他人が書いたコードを理解するのには時間がかかるわけで自分で作ったほうが速い、となればフレームワーク自体が無数に作られているのもうなずけます。

とはいえ和製のEthnaとguessworkは小規模でドキュメントやサンプルも十分あるのでもう少し深く使ってみてもいいかな、と思いました。

2006年11月3日追記:
PHP5のフレームワーク、Symfonyの24チュートリアルを実践してみることにした

No responses yet

PEAR::DBより高速なADOdb(PHP版とExtension版)を試す

Sep 24 2005 Published by funaki under いじる

ADOdb Database Abstraction Library for PHP (and Python) for MySQL, PostgreSQL and many other databases

PHPでデータベースへの接続は、今までPEAR::DBに頼っていましたが高速だと言うADOdbを試してみました。マニュアルは日本語訳もあり

PHPで書かれた方は上記マニュアルの最小インストールに従い、ダウンロードした中からファイルを選んでパスの通るディレクトリに設置。DBはPostgreSQL7.3にしたのでdriversにはadodb-postgres7.inc.phpとadodb-postgres64.inc.phpが必要。PEAR::DBではTCP/IPではなくUNIXソケットでアクセスできましたが、$serverを”unix(/tmp)”だと動かなかったのでpostgresql.confやpg_hba.confを変更しました。

<?php
include('adodb.inc.php');
$conn = ADONewConnection("postgres");
$conn->debug = true;
$conn->Connect("localhost", "testuser", "test", "testdb");
$rs = $conn->Execute('select * from channel');
print "<pre>";
print_r($rs->GetRows());
print "</pre>";
?>

adodb.inc.phpをはじめ、コードを見るとPEARのコーディング規約には沿っておらず少々読みづらい。PEAR::DBとは関数名など使い方が違うので移行、という点では慣れるまでしばらくかかりそうです。データがなかったらINSERT、データがあったらUPDATEというのをReplaceという関数で簡単に記述できるそうなので(参考:(-_-)zzz….の記事)TRIGGERをセットするのが面倒な場合はいいかも。

もうひとつ、「Speed Up Your PHP Code with the ADOdb extension」という方も試してみました。こちらはCで書かれていて組み込みなので先ほどのPHPで書かれたものより速い。ダウンロードして解凍するとVisualStudio用のファイルがあってあれWindows用?と思いましたがREADME.txtを読むとそのままUNIX系でも大丈夫らしい。

解凍したディレクトリ内で、

# phpize(RPMの場合、php-devel必要)
# ./configure
# make && make install

サンプルのtest-adodb.phpを参考に、以下のようなコードで。割と簡単でした。

<?php
dl('adodb.so');

require_once('adodb.inc.php');

$db = ADONewConnection('postgres');

$server = 'localhost';
$user = 'testuser';
$password = 'test';
$database = 'testdb';

$db->Connect($server, $user, $password, $database);
$rs = $db->Execute('select * from channel');

$arr = adodb_getall($rs); ## ADOdb extension function

echo '<pre>'; print_r($arr); echo '</pre>';
?>

体感でPEAR::DBより速くなったかはわからないので何とも言えませんがこれからはADOdbを使ってみようかと思います。

No responses yet

かっこいいFlashサイト:PICK UP THE BIG BLACK PENCIL

Sep 20 2005 Published by funaki under 感動する

Big Ideas come out of Big Pencils

動きがしゃれているだけじゃなくてナビゲーションもしっかり。

uncomputable.org – world of bugs -

今流行りの甲虫。こちらもマウスカーソルがちょっと不思議な感じ。IE限定のようです。投稿形式のパソコンにまつわるbug集があったりします。

No responses yet

Ruby on Railsについて調べる

Sep 20 2005 Published by funaki under いじる

PHPのFrameworkをいろいろ試すかたわら、試すきっかけになったRailsについても調べてみました。

Railsに懐疑的な意見も。この記事は言いたいことがわかりやすかったし共感できたが、PHPとRailsの比較は使う状況を特定しない限り、コメントにもあるようにリンゴとオレンジの比較のようで個人の好き嫌い、場合による、としか結論が出ない。

僕がウェブアプリにPHPを使っている理由は、最初に覚えた言語だから、というのと「デバッグのしやすさ」「ドキュメントが適量で検索しやすい」この2つが大きい。豊富なネイティブ関数といい加減なコーディングを容認する手軽さも、とりあえず動くプロトタイプを作りたいホリデープログラミング向き。

PHPのフレームワークの比較にはもう少し時間がかかりそうです。

No responses yet

Google Mapsで地図に線を引いてルートを友達に教えられるツール:GoogleMapsAPI+JSON-PHP

Sep 19 2005 Published by funaki under つくる

ホリデープログラミング。思わず夜更かし。

Google Maps Line Saver

Google Maps APIを用いて地図上に線を引いて(クリックしていくと直線が引けます)Saveボタンを押すと固有のURLを作って保存することができます。渋谷の~って飲み屋で待ち合わせ、が、詳細な地図がない、というときにルートを書いてメールでURLを送れます。

Mapsにクリックして直線を引く方法はAhn Dal-Sooさんの日記を参考にさせていただいました。GPolylineというAPIの関数を使います。

JavaScriptから線の各頂点の座標を保存する際にXMLHttpRequestのPOSTで送るのですが書式にJSONを使ってみました。PHPはPEARのServices_JSONを利用。JavaScript部分はdumpだけですが「JKL.ParseXML – XML→JSON展開クラス」を利用させていただきました。簡単なデータの受け渡しはGETで十分ですが、複雑なときはJSONが便利そうです。

PHPで保存する部分では普段あまり使わないob_start()を使ってソースコード中にHTMLを書きやすくしてみました。ソースも公開しておきます。(save.phps

2008年3月24日追記
save.phpsは問題のあるコードだったので少し修正しました。

6 responses so far

エレベーターアルゴリズム:頭の悪いエレベーター

Sep 16 2005 Published by funaki under 感動する

たまに、不具合だろっ、と言いたくなるような動きをするエレベーターを見かけます。そういえばどんなアルゴリズムで動作しているんだろう、と思い軽く調べてみました。

同じことを考えている人が見つかると嬉しい。
論文も出ているのだろうか、とGoogleScholarで検索すると、

Intelligent Elevator Control By Ordinal Structure Fuzzy Logic Algorithm

リファーに日本人の論文がいくつかあって、さすが日本、と思いました。

ちょっと前にTVCMでも見かけたエレベーターのゲームもあります。
The Tower SP

エレベーターのキャンセル技なるものも存在するようです。禁断の技のような気がしてまだ試していません。。

ビルの階数が低くエレベーターの台数が少ないときはいいですが、多くなったときはかなり複雑なアルゴリズムになることがわかりました。頭悪いなぁ、と思っても自分では直せなさそうです。

No responses yet

Google Blog Searchに「日本語のページを検索」を追加するGreasemonkey

Sep 15 2005 Published by funaki under つくる

意外とてこずりましたがGoogle Blog Searchに「日本語のページを検索」のオプションを追加するGreasemonkeyをつくってみました。ちょっと便利になったかな?

googleblogsearchja.user.js

実際にはGoogleのそれとは違い、ラジオボタンをクリックするだけで再読み込みします。ちょっと急作りなので不具合があったら教えていただけるとうれしいです。

Google Suggestがついたらいいなぁ、と思いました。

One response so far

Microsoft Maxは言語の壁に阻まれ試せず

Sep 14 2005 Published by funaki under いじる

マイクロソフト、無償の写真共有ツール「Max」を公開

ロサンゼルス発–Microsoftは米国時間13日、次期バージョンのWindowsに組み込まれるグラフィックス処理機能を披露する目的でつくられた、無償の写真共有プログラムをリリースした。

Maxのサイトがかっこいいので試したかったのですが、にっくきエラーに阻まれ断念。WinFSのときも同じエラーが出たのですが今回はVirtualPCでは推奨スペックに満たないのであきらめました。今後のことを考えて、XPを英語版にしておくのも悪くないか。。

OSNewsによると(Vista’s Sidebar, Gadgets Unveiled; MS Releases Max, Monad Beta 2 – OSNews.com)他にもSidebarのGadgetのスクリーンショットも出ています。

Microsoft Gadgets

Yahoo!が買収したKonfabulator(米Yahoo!、Konfabulatorを買収 – Yahoo! Widgetsとして無償公開へ (MYCOM PC WEB))と完全に競合するのでどうなるか。先のエントリーに書いたStart.comのGadgetと連携するようですがどんな風になるのか興味深いです。

No responses yet

Next »