Yahoo Japanのウェブ検索API

昨今、Web2.0がもてはやされている中、Yahoo Japanも昨年末からウェブサービスを始めた。Yahooにクエリを投げるとXMLでデータを返してくれる。
利用方法は以下の手順を踏む。

(1) Yahoo IDを取得する
http://edit.yahoo.co.jp/config/eval_register
(2) アプリケーションIDを取得する
http://developer.yahoo.co.jp/
(3) 上記アプリケーションIDを使用してアプリを作成する。

これで作成可能。ご親切にもプログラムのサンプルも用意してくれているから基本的にそれを使えばOK。でも、何度も使うものなので、クラス化してみた。

Read the rest of this entry »

「Google Maps」のgeocoding裏技

2006/07/24 | JavaScript/Ajax

Google Mapsの日本のgeocoding(住所から緯度経度を取得)機能が削除されてはや1ヶ月。いまだに復旧されたという情報はない。いつかはできるようになるとは思うけれど、いつになることやら・・・。
もちろんGoogle以外ではそういう機能を提供しているところはいくつかある(例えばhttp://www.geocoding.jpとか)。しかしどうせなら「Google本家から取得したい」と思うのは自分だけなのだろうか・・・。
世の中にはすごい方がたくさんいるもので、裏技でGoogleからgeocodingしてしまう人がいた。そのすばらしい方のウェブはこちら。なんでもGoogle AJAX Search APIを使うとのこと。さっそく試してみることにしよう。

バックアップからの復元

2006/07/22 | PostgreSQL

先日の大雨&雷の影響で、我が家のサーバが落ちた。
今日まで気づかなかったのだが(普段使わないから当然わからないのだけれど)、データベースが動いてない!。データベースには請求処理関連の全データがはいっていて請求書が作れないし、決算が・・・(驚愕)。
しばし悩んだあと、バックアップがあることを思い出しだ(笑)。バックアップがあることはわかっていたけれど、新たにマシンを用意してインストール・復元する元気がなかったのでなんとか動くようにできないかと悩んでいただけだったのだが。
まずPostgreSQLのデータフォルダをきれいにして、データベースの初期化を実行(以下のコマンド)。

initdb –no-locale –encoding=EUC_JP -D /var/lib/pgsql/data

この状態でPostgreSQLが動くことを確認できた(ほっ)。
次にバックアップからの復元。実はつまんないことだけど、バックアップからの復元方法がわからなかった。だってpg_dumpall(データベース丸ごとバックアップ)から復元する機会なんてそうそうないですから・・・。検索してやっと見つけたよ。

psql template1 < data.dump

template1に対してレストアするのか・・・知らなかった。何はともあれ、これで復元完了。あと設定関連を以前のものに戻して無事復旧終了。つくづく「バックアップって必要なんだ」と思った瞬間であった。

一時的に出力文字コードを変更する

2006/07/21 | Smarty

普段はmojavi+pear+smartyで開発し、なおかつ文字コードはEUC-JPを使用している。最近はなるべくWeb2.0の潮流に沿うべく、googleやyahooのAPIを利用するようにと考えている。
google mapsを利用する際は諸般の関係でUTF-8が推奨らしい。基本的に今まで構築してきたものはすべてEUC-JPだから、どのようにしようかいろいろ考えたけど、smartyのテンプレートで、一番最初に以下のように書くことにした。

{php}
mb_internal_encoding(“EUC-JP”);
mb_http_output("UTF-8");
ob_start("mb_output_handler");
{/php}

これで単純に、出力は全てUTF-8に変換してくれる。

画像のサムネイルを作成

2006/07/19 | 画像ツール

このブログ、「画像 サムネイル」なんてキーワードで検索する人も多いようだ。で、たまたま画像のサムネイル生成のルーチンを作ったのでのっけておく。

<?php
$filePath=’test.jpg';
list($imW,$imH)=getimagesize($filePath);
//サムネイルの長辺の長さ
$thumbnail=400;
if($imW > $imH){
$newW=$thumbnail +1;
$newH=round($imH * ($thumbnail +1) / $imW);
}else{
$newH=$thumbnail +1;
$newW=round($imH * ($thumbnail +1) / $imH);
}

$imOld=imagecreatefromjpeg($filePath);
$imTmp=imagecreatetruecolor($newW,$newH);
imagealphablending($imTmp, false);
imagecopyresized($imTmp,$imOld,0,0,0,0,$newW,$newH,$imW,$imH);

$imNew=imagecreatetruecolor($newW -1,$newH -1);
imagealphablending($imNew, false);
imagecopyresized($imNew,$imTmp,0,0,0,0,$newW -1,$newH -1,$newW -1,$newH -1);

imagejpeg($imNew);
exit();
?>

いったん画像を縮小して、それから端を1ピクセルカットしている。縮小時に四捨五入とかする関係で、端数の分、端に黒背景がでるので、それをカットしてる。とりあえずいい感じ。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net