Monthly Archives: September 2006

価格.com のAPIを使って最安値情報をRSSで

価格.comのAPIが公開されました。 今自分が欲しい商品があって、その最安値情報をRSSで取得したかったのでさくっと作ってみました。 いろいろ説明不足で不親切なサービスのような気もしますが、、ひとまず公開。 価格.com の最安値情報をRSSで どうしてもこういうロゴを一度使ってみたかった、というのもあります。(Web2.0 Logo Creator by Alex P)

Posted in つくる | 6 Comments

using API; Web APIの最新情報を載せたブログを開設

using API; Web API(ウェブサービス)に関するニュースをお届けします。 日本で公開されているAPI一覧に(下書き)と書いて公開したまま清書していなかったのですが、ここ数日APIが続々公開されたのに触発されて専用のブログを立ち上げることにしました。 コンテンツ系に手を出すのは初。APIを公開しているサイトももちろん取り上げていきますが、ゆくゆくはAPIをつかって面白いハックを披露しているサイトを発掘していきたいと思っています。ご期待ください!

Posted in つくる | 1 Comment

libpqxx(PostgreSQLのC++用ライブラリ)を使ったメモ

PostgreSQLのC言語用ライブラリはlibpqで、C++用のライブラリはPostgreSQL7.3からlibpqxx、それ以前はlibpq++という名前だったようです。libpqは割とドキュメントやサンプルが豊富ですが、libpqxxはPostgreSQLのドキュメントからは分離しておりサンプルが少なかったので使ったときのメモ。 ダウンロードはlibpqxxのサイトから。インストールは解凍して./configure, make, make installで問題なし。PostgreSQLは8.1.4、libpqxxは2.6.8。 libpqxxのチュートリアルには動くコードが見当たらず、ソースの中のtest/test000.cxxなどがサンプルになる。 コンパイルがそのままでは通らなかったので以下のコマンドを打つことになりました。 $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig $ pkg-config –libs libpqxx コンパイルは以下のように。 $ g++ -Wall test.cpp -lpqxx -lpq test.cppの中身。 #include <iostream> #include <pqxx/pqxx> using namespace std; using namespace pqxx; int main() { try { connection Conn("dbname=test"); work T(Conn); result R(T.exec("select * from test")); for (result::const_iterator c = R.begin(); c != R.end(); ++c) [...]

Posted in いじる | Leave a comment

Google Calendar APIを制御するPHPのクラス(未完成)

Google Calendar APIを使ってアプリを作ろうと思っていましたが、お蔵入りして未完成のPHPで書いたライブラリだけが残ったので公開しちゃいます。未実装のメソッドも多いですし、エラー処理も適当ですが。 http://www.zuzara.com/pub/GCalender_Service.phps <?php require_once ‘GCalender_Service.php’; $c =& new GCalender_Service(‘mailaddress’, ‘password’); $data = $c->get(); print_r($data); GoogleのドキュメントはもちろんあるのですがサンプルがJavaとC#なので実際の通信内容を理解するのに時間がかかりました。。 認証の部分が複雑。Google Account Authentication には2つの認証方式が説明されていて、上記のコードで実装したのはInstalled Applications用です。HTTP1.1のパイプラインは使えない模様なのでいちいち3回アクセスすることになり若干重い。 APIでアクセスするURLにprivateとpublicがありますがそれによってReadOnlyだったり違いがあるので注意(参照)。 なお、HTTPSの通信を行うのでPHPのコンパイルオプションに–with-opensslが必要になります。残念ながらロリポップでは使えず、チカッパなら使えます。

Posted in いじる | Leave a comment

picks!リニューアル、深追い.comに移行

picks!をリニューアルしつつ深追い.com(closed)(さくらの専用サーバ)に移行しました。 ロリポップの限界は、1日2万PVといったところでしょうか。思いがけずHDDの容量200M制限に引っかかり、HDDを増量したのでまだしばらくは耐えられそうでしたが、ピーク時のレスポンスが悪かったのと追加したい機能もあったので専用サーバへ。容量がオーバーしたのはアクセスログのファイルサイズが肥大化したためだと思われます。 専用サーバでFedoraCore5を選択したのでPHP5を初運用。しばらくしてノウハウがたまってきたらいろいろ書こうと思います。

Posted in つくる | 2 Comments

PHP5.1.4でPDOとPEAR::DB, MDB2のベンチマーク

以前にPHP5.1.0RC1でPDOとADODB、PEAR::DBのベンチマークを取りましたが、今回は5.1.4でADODBの代わりにMDB2を加えてやってみました。zuzaraのサービスの一部をさくらの専用サーバに移行しようと考えていて、OSでFedoraCore5を選択するとPHP5.1.4になります。 PDO PEAR::DB PEAR::MDB2 PostgreSQL8.1.4 0.008 0.035 0.048 MDB2はどのぐらい速いのかなぁ、期待して試したのですがいまいち? 機能もメソッド名もほとんど同じなので5系ではやはりPDOがよさげ。 なお、testテーブルは1000行のデータが入っています。 pdo.php <?php require_once(‘Benchmark/Timer.php’); $timer = new Benchmark_Timer(true); try { $dbh = new PDO(‘pgsql:host=localhost;dbname=funaki’, ‘funaki’, ”); $sth = $dbh->prepare("select * from test"); $sth->setFetchMode(PDO::FETCH_ASSOC); $sth->execute(); $data = $sth->fetchAll(); } catch (PDOException $e) { die($e->getMessage()); } pear_db.php: <?php require_once(‘Benchmark/Timer.php’); $timer = new Benchmark_Timer(true); require_once(‘DB.php’); $db = DB::connect("pgsql://funaki@unix(/tmp)/funaki"); [...]

Posted in いじる | 1 Comment

coLinux+GentooでWindows上にLAMPな開発環境構築

Development Environment Conferenceも近く開催されるので自分の自宅での開発環境を書いてみる。 長いことVirtualPC2004のお世話になっていましたが先月辺りからcoLinuxに移行しました。coLinuxの方がコンパイル等CPUを使う作業は快適になった感じ。VMwareは試していませんがXを使うわけでもないので今のところcoLinuxで満足。 インストールやネットワークの設定手順等ははてブで「coLinux」タグを探したり、普通にGoogleで探せば解説サイトがたくさんあって助かります。デフォルトだと仮想のHDDは2Gで構築されるので、もう少し増やしておいた方がよかった。。(参照:ハードディスクを増やす) 前提条件: ノートPC1台で構築 ウェブアプリを作る以上、動作確認にIEは必要&サーバはLinux インストールしたもの: coLinux 0.6.4 Gentoo-2005.1-stage3-ext3 coLinuxの設定ファイル: <?xml version="1.0" encoding="UTF-8"?> <colinux> <block_device index="0" path="\DosDevices\c:\Program Files\coLinux\Gentoo-2005.1-stage3-ext3" enabled="true" /> <block_device index="1" path="\DosDevices\c:\Program Files\coLinux\swap_512Mb" enabled="true" /> <bootparams>root=/dev/cobd0</bootparams> <initrd path="initrd.gz" /> <image path="vmlinux" /> <memory size="256" /> <network index="0" type="tap" /> </colinux> Swapの設定: # mkswap /dev/cobd1 # swapon /dev/cobd1 # vi /etc/fstab /dev/cobd/1 [...]

Posted in いじる | Leave a comment

Page optimized by WP Minify WordPress Plugin