Category Archives: Hacking

Google Ajax Search が RESTful な JSON(P) に対応してる件

Google Operating System のエントリより。

More than one year after Google discontinued the SOAP Search API, it finally got a proper replacement. The AJAX Search API can now be used from any Web application, not just in JavaScript. The other two Google AJAX APIs for feeds and translations were updated for non-AJAX use, as well.

Ajax Search は知ってたんですが、あんまり食指が動かなかったという人も多いはず。こんなのしか作れなかったし。

でも、RESTでクエリを投げると JSONP で結果を返してくれる API が公開されました。サンプルリクエストはこんな感じ↓。

http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=%E9%AB%98%E6%A2%A8&callback=foo&context=bar&rsz=large&start=8

リクエストパラメータはこちらを参照してください。

ただし、制約もあります。

  • 正しい HTTPリファラを送ること。
  • 一度に取得できる件数は最大で8件。また、32件目以降の結果を取得することはできません。

あと、なるべくAPIキーをつけることが推奨されています。ざっと見た感じでは1日に何クエリーまでという制限はなさそうでした。

元ネタページの追記によると、ほぼ2年前から使えるようになってはいたものの、正式に公開されたのは最近になってからのようです。orz

ID自由化の波

Yahoo! に続き、 mixi アカウントもOpenIDに対応するようです。OpenPNE あたりはサクっと対応してくれるとカコイイ。また、DoCoMoでも、勝手サイトで端末IDが取れるようになるそうです。 いいですねぇ、こういうオープン化の動きは。これまでは大きなビジネスで公式サイトにならないと取れなかったんですが、DoCoMo もやっとスモールビジネスに目が向いてきたということでしょうか。

端末IDが取れるようになったらいろいろやりたかったことがあるので、草案を練って持ちかけてみようと思います。

きさっせ鴨川朝市に出店しました…が

折からの強風でやむなく途中で中止に。懸念されていたノートパソコンの電源は100mのコードリールを自作し、また市のコードリールも使わせていただき、確保しました。

実際出展してみての感想ですが、 やはりもう少し活気が欲しいですね。お客が集まらない⇒出展者が少なくなる⇒商品が集まらない⇒お客が集まらなくなる、という負のスパイラルにはまっている気がします。

で、考えてみたのですが、毎回「おらが汁」をお客さんにふるまってみたらどうでしょうね。出展までの魅力は感じなくても、またお金を出すのは抵抗があっても、いろいろなお店から食材はかき集められるんじゃないでしょうか。毎回同じでなくてもいいんです、「おらが汁」だから。大なべで作れば手間もかからないし、「今日の食材はこのお店からご提供いただいています」とA4チラシを作ればいい宣伝にもなります。お椀は使い捨てのではなく、寄付を募って洗って使い続ければ地球にも優しい。まあ手間はかかりますけど、やってみる価値はあると思います。ふむ、提言してみるかな。

spamhaus に載ってるじゃねぇか!(゚Д゚)ゴルァ!

最近、このサイトのコメントスパム/トラックバックスパム対策をしており、自前 RBL も立ち上げました。詳細は Wiki にまとめましたので、ご参考ください。自前 RBL も立ち上げていますので使いたい方はどうぞ。

がしかし、まさか自分のサーバが RBL に載っているとは思いませんでしたよ。 orz

載っているのは、泣く子も黙る spamhaus.org。たぶん、業界では一番有名な RBL でしょう。

早速ホスティング会社にチケットを送りました。以下がその文面。

Lately, I happeningly noticed that my IP (203.223.152.173) is listed in spamhouse.org’s RBL(sbl.spamhaus.org). They claims this block is “Dirty block Months of spammer hosting”.

http://www.spamhaus.org/sbl/listings.lasso?isp=aims.com.my

I think you are responsible to this problem and you should take a contact to spamhaus.org.

Thanks for your cooperation.

そしたら、すぐに返事が返ってきて言うことには

Hi,

Please be informed we will assist you to change to a new clean IP. Please update us on this issue when do you want us to change the IP. Please inform us if you need further assistance.

Thank you

Regards,

つまり、「(RBLに載っていない)綺麗なIPに変えるから都合を教えてくれ」ってことです。ええっ、spamhaus には連絡取らんの!?

というわけで泣く泣く IP 変えるハメになりました。お客様のことを考えると夜中に作業したいんだけど、対応してくれるんだろうなー。対応悪かったら乗り変えるぞ!


[追記:2007年12月11日]

IP移行作業をほぼ終えました。DNS が伝搬するのを待って、完了したいと思います。

少しは速くなったかな?

このサイト、今まで l○lipop にホスティングしていたのを、Y!BB ADSL 配下にサーバ立ててみました。APCも入れてみたんですが、思ったほど速くならない。ハードの性能を考えればこんなもんかな、とも思いますが、もう少し改善の余地がありそうです。

SPAM 対策

メールアドレスをネットに公開しているせいで、毎日500通くらいの SPAM メールを受信していたのですが、

を設定したところ95%以上排除することができるようになりました。一部のフリーメール、DNS 設定が不十分なメールサーバからは少々遅延(1、2分ほど)が発生しますが、概ね良好な結果と言えるでしょう。

今回の対策のポイントは「メールの内容で判別しているわけではない」ということです。RBL DNS情報、接続元の逆引きDNS名のみで判別しているため、メールサーバの負荷はほとんど増えていません。greylisting と似た手法で tarpitting というものもあるのですが、SMTP 待ち受けプロセスの数が増えることが予想されるため、今回は導入を見合せました。

もう少し様子を見て、問題がなければメールホスティングサービスも始めようかと思っています。

玄箱カーネル書き換え失敗

PPTP に対応させるため、玄人のフラッシュメモリ内のカーネル・ブートローダを書換えたところ、正常にブートしなくなってしまいました。(;_;

シリアルコンソールもつけてみたのですが、ダメ。ブートローダすら立ち上がりません。

というわけで LANDISK に加えて2回目の失敗です。こういうことがあると非常に「負けた」気分になります…。

玄箱で文書管理サーバ

「製作所」と名乗っているからにはソフトウェアだけでなく、何か形のあるもの、つまりハードを作りたくて、玄箱を使って商品開発の案を練っていたのですが、とりあえず文書管理サーバを作りました。その名も「文子」。単なる NAS だけではなく、Word や Excel ファイルを全文検索できるのがウリ。

ネタばらしをすると、namazu で検索した結果をクリックすると samba で共有しているファイルが読める、というものです。IE の中で Word や Excel が開くので、直感的な操作感。

作ったからには売りたいし、安売りはしたくないので、あえてリース契約のみで行こうかと思っています。オフィスのペーパーレス化に一歩だけ貢献できる、かな。

RSS 擬似 proxy CGI アイデアメモ

XMLHTTPRequest の制限として、JavaScript が実行されているコンテンツの属するドメインと同じリソースにしかアクセスできないというのがある。

セキュリティ上必要な措置ではあるけれど、ホームページ(自社ドメイン)とブログ(ブログASPのドメイン)が別のドメインになっているというケースは多々あると思う。ホームページからブログにリンクを張るだけではイマドキじゃない。

そこで、こんな考えたのがこんなアイデア。UNIX サーバ上でPerlが使えることが前提。

  1. 初回アクセス時、HTTP経由でRSS/Atomをブログページから GET。ローカル(/var/tmp など)にキャッシュしておく。
  2. GETした RSS/Atom を解析。QUERY_STRINGによって返すHTMLをスイッチ
  3. HTTP Request 発行元のJSは受け取ったHTMLを document.write()
  4. 2回目アクセス以降は1.でキャッシュしたファイルの更新時刻と現在時刻を比較し、
    一定時間以内なら、キャッシュを読み込んで2.以降の動作。タイムアウトしていたら、1.から。

キャッシュをロックする必要があるが、ファイルシステムの排他的ロックを使えばよい。

なんとなく ajax ML で議論されていたような気がするが、車輪の再発明でもいいのでやってみる価値はある。コードは長くてA4一枚くらいだろう。

玄箱で作るアプリケーションサーバ

Webアプリケーションは何もインターネット上に公開しなければならない、とい決まっているわけではありません。社内に Web サーバを立てて、その中で使ってもらってもいいじゃないか、という発想で

を組み合わせてアプリケーションサーバとして売れないか、などと画策しています。

コケにコケまくりながらも、何とか玄箱HGの Debian(Sarge)化に成功。玄箱のいいところは、ファームウェアが既に Linux になってるので、もしDebian化に失敗しても、どうにもこうにも手出しできなくなる、ということはないことです。前に LANDISK のときはシリアルケーブルを取り付けに失敗し、ハード的にお亡くなりになってしまいましたが、玄箱はソフト的になんとかなるので、ぶきっちょ製作所も安心です。

今、PostgreSQL をコンパイルしてますが、さすがに遅いですね。実運用するには上手くインデックス張らないと厳しいかも。

Copyright © 2025. Powered by WordPress & Romangie Theme.