Monthly Archives: January 2007

Request exceeded the limit of 10 internal redirects due to probable configuration error.

Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. LAN内のマシンでapacheを動かそうとしたらこんなエラーが。 httpd.confでmod_rewriteを使って RewriteEngine on RewriteRule !\.(html|txt|xml|js|ico|gif|jpg|png|css|gz)$ index.php としている部分がリダイレクト無限ループに陥る原因になっているらしい。 あれこれ変更していたら直った。 <Directory /> としていたのがまずかったらしい。 <Directory "/var/www/html"> と絶対パスに直したらエラーは消えた。環境の違うマシンに迂闊なコピペは危険。

Posted in いじる | Leave a comment

類似文字列マッチの実装例 今度はPHPのlevenshtein関数

zuzara : Dynamic Programming による類似文字列マッチの実装例 in PHP 昨日の記事でコメントをいただいた情報を参考にすると、 <?php echo levenshtein($argv[1], $argv[2]) . "\\n"; これで同じ結果が得られるか、と思いきやちょっとアルゴリズムが違うようです。 % php dynamicprogramming.php abcd dabc # 昨日の score: 1 php levenshtein.php abcd dabc # 上記コード 2 と違う結果が返ってきた。 levenshtein関数はext/standard/levenshtein.cで定義されていて、PHPに直すと <?php $key = $argv[1]; $text = $argv[2]; $p1 = array(); $p2 = array(); $l1 = strlen($text); $l2 = strlen($key); for ($i2 = [...]

Posted in いじる | 1 Comment

不覚にもミニーにぐっときた

Photos: In the shadow of ‘Star Wars’ | CNET News.com すいません、わかる人にはわかるネタです。 via digg, Digg – Photos: In the shadow of ‘Star Wars’

Posted in 感動する | Leave a comment

Dynamic Programming による類似文字列マッチの実装例 in PHP

[を] Dynamic Programming による類似文字列マッチの実装例 でPerlのコードがあったのでPHPで書いてみた。途中まで。keyとtextを配列ではなくて文字列にしている点がちょっと違う。Perlのコードを読むことは滅多にないので新鮮。 <?php $key = ' ' . $argv[1]; $text = ' ' . $argv[2]; $C = array(); $t_len = strlen($text); $k_len = strlen($key); for ($j = 0; $j < $t_len; $j++) { $C[0][$j] = 0; } for ($i = 0; $i < $k_len; $i++) { $C[$i][0] = $i; } for ($i [...]

Posted in いじる | 4 Comments

4travelの写真でフォント(?)をつくるAPI: “phont”

4travelの写真検索APIを使ってアルファベットのビットマップフォントをつくってしまうAPIです。 カカクコムのAPIコンテストに出してみます。 デモは以下のリンクを押してみてください。 レイヤーが出てきますが閉じるボタンはないので消すときはリロードで。 phont (現在停止中) ブックマークレットになっています。適当なページを開いたあとアドレス欄にスクリプトをコピペしてEnterを押しても動くと思います。動作確認はFirefox2.0.1とIE7。 ページ内の適当な文字列を、APIに送って結果をそのままどーんと貼ってます。写真は4travelの写真検索APIにランダムでカメラのモデルを入力して取得。 REST APIの仕様: URL http://zuzara.dyndns.org/api/phont 入力 parameter value description q 文字列(必須) 4travelフォントで表示させたい文字列 size 整数(デフォルト: 20) 1つ1つの写真の大きさ(単位はpx) callback 文字列 JSONPのfunction名を指定、空のときは自動的にJSONになる 出力 JSON/JSONP(Content-Type: application/json) 例) callback({"test":"<table><tr>\\n<td>\\n<table>\\n<tr><td>&nbsp;<\\/td> <td>&nbsp;<\\/td><td>&nbsp;<\\/td><td>&nbsp;<\\/td><td>&nbsp;<\\/td> <td>&nbsp;<\\/td><td>&nbsp;<\\/td><td>&nbsp;<\\/td><td>&nbsp;<\\/td> <\\/tr>\\n<tr><td>&nbsp;<\\/td> <td><a href='http:\\/\\/4travel.jp\\/traveler\\/kamosan\\/pict\\/10568417\\/'> <img border='0' src='http:\\/\\/img.4travel.jp\\/img\\/tcs\\/t\\/pict\\/sml\\/10\\/56\\/84\\/sml_10568417.jpg?20060807153948' width='20px' height='20px' alt='' \\/><\\/a> …中略…"}) エラー 特になし 例によってAPIは無保証ですが、どうぞご利用ください。(注意点等はこちらに準じます) コンテストに出そう、ということでいろんな人とブレストしてネタを考えたのですが、昨日ふと思いついたこの一発ネタにしてしまいました。すいません、エネルギー不足でした(^^; 名前は4travelとかけて4ontにしようか、ちょっと迷いました。APIを使うコンテストにAPIを出品してみる、とマニアックにひねったつもりですがどーでしょうか。 なおビットマップフォントの元データはこちら。thanks! Grixel Kyrou 7 Wide Font [...]

Posted in つくる | 1 Comment

はてなブックマークにみる人気記事をブログに追加してみた

はてブへのリンクを張るだけだと見てくれない気がしたので、リストにしてみました。blog.zuzara.comの人気エントリー by はてなブックマーク。各記事のページ下部に表示しています。 RSSを読み込んでリストにする、という関数が何気にWordPressには用意されていました。wp-include/rss-functions.phpのget_rssです。でも後述しますがバグあり(^^; function get_rss ($uri, $num = 5) 中身はMagpie RSS(PHP RSS Parser)で、キャッシュもしてくれます。theme内のファイルから呼び出すときはこんな感じ? define('MAGPIE_CACHE_DIR', ABSPATH . 'wp-content/cache'); define('MAGPIE_CACHE_AGE', 60*60*24); // one day require_once (ABSPATH . WPINC . '/rss-functions.php'); get_rss('http://b.hatena.ne.jp/entrylist?mode=rss&url=http%3A%2F%2Fblog.zuzara.com&sort=count&threshold=5', 8 ); ?> この関数、WordPress内では使われていないのでなぜあるのか謎です。 で、このget_rssを使おうと思ったらバグが。。 バグレポートの仕方がよくわからなかったのですが、ユーザ登録してtracにticket発行してみました。(WordPressの2.0.6がつい先ほどリリースされたようですが、マイナー過ぎるバグなせいか直ってません) #3527 (wp-include/rss-functions.php function get_rss has a bug) – WordPress Trac – Trac 単純な変数名の記述ミスです。あと日本語の場合、htmlentitiesを使うと化けるのでそこも修正する必要あり。というわけで、get_rssの中で呼び出しているfetch_rssを直接使った方がいいような気がします。。 fetch_rssはwp-admin/index.phpのDashboardで使われており、ドキュメントもあります。 Function Reference/fetch rss « WordPress [...]

Posted in いじる | Leave a comment

PHPマニュアルのgrep検索API(JSONP)

PHPのマニュアルに対してgrep検索(実装上ではUNIXコマンドのgrepは使っていませんがgrepと同じ全文をなめるタイプの検索)を行うAPIをつくってみました。php.netの検索やNamazuの検索だと記号が含まれた検索語のときに漏れがあってちょっと不満があったので。 APIで返ってくる結果を並べたアプリが以下。比較的さくさく検索できると思います。 http://z.fukaoi.com/phpsearch/#mb_convert_encoding #以降のlocation.hashを書き換えてパーマリンクにしているので、Firefoxのクイックサーチと併用するとよさげです。 参考:ITmedia Biz.ID:Firefoxのブックマーク・キーワード活用法 http://z.fukaoi.com/phpsearch/#%s 未実装な点: Google CodeSearchなどとマッシュアップ PHP特化型検索エンジンで実装したネイティブ関数の自動補完機能をつける(zsh形式の補完がいいなぁ) ページャがない(10件目以降が表示できなぃ、キーボードのj/kでさくさくやりたい) Firefox2.0.0.1とIE7以外のブラウザでの動作は未確認 REST APIの仕様: URL http://zuzara.dyndns.org/api/phpsearch 入力 parameter value description q 文字列(必須) 検索したい文字列、ただし複数語には未対応 start 整数(デフォルト: 0) 出力結果の先頭位置(10件ずつ出力、トータルの件数は表示されない) callback 文字列(デフォルト: phpsearch) JSONPのfunction名を指定 出力 JSONP(Content-Type: application/json) エラー 特になし 未実装な点: AND検索など複数語の検索に未対応 ソーティングのアルゴリズムがない(現状ではマニュアルに出てくる順) クリック履歴をソーティングに反映する仕組み PHPのマニュアル以外も対応したい(PostgreSQL/MySQL、JavaScript、C++とか) 未実装が多過ぎてお正月クオリティです。。でもどうせなのでお蔵入りする前にリリース。検索結果の最初の10件だけでいいや、などとかなりいい加減ですが自分では使う予定。不満が募ってきたらアップデートするかもしれません。 例によってAPIは無保証ですが、どうぞご利用ください。(注意点等はこちらに準じます)

Posted in つくる | Leave a comment

Page optimized by WP Minify WordPress Plugin