Archive for May, 2006

オモロ検索 SAGOOL(サグール)のよだれが出るほどの裏技

May 31 2006 Published by funaki under 感動する

sagool_1.png

sagool_2.png
!?

!!

» オモロ検索エンジン SAGOOL サグール

One response so far

assist.search.yahoo.co.jpの入力補完が関連検索ワードとしてAPI化

May 30 2006 Published by funaki under いじる

今までは野良APIとしてこっそり使えましたが正式なAPIになりました。

» Yahoo!デベロッパーネットワーク – 関連検索ワード

picks!の方に組み込んでみました。下の方の深追い検索のところ。

関連語をページ内に書いておくことはパターンマッチングしか実現していない現状、SEOに役に立つかも。

追記:
» あなたのサイトはYahoo! JAPANで何位?
にも組み込んでおきました。ついでにprototype.jsも1.3から1.4に。

No responses yet

ユニクロのニューヨーク店専用サイトがかっこいい

May 30 2006 Published by funaki under 感動する

元記事。

» NIKKEI DESIGN | 注目デザイン情報

インタラクティブが気持ちいい。中村勇吾氏がデザインしたニューヨーク店専用Flashサイト。同じデザインのスクリーンセーバーもダウンロードできる。

» uniqlo.com : UNIQLO Soho NY Site

2 responses so far

picks! 要チェックワード集リニューアル

May 28 2006 Published by funaki under つくる

» picks! – 要チェックワード集(closed)

リニューアルしました!
トップページをタグクラウドにしたとか見た目の変化もありますが、Zend_Frameworkにインスパイアされて

RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

.htaccessに記述してMVC風に。機能もいくつか追加。

No responses yet

My はてなブックマークランキング

May 21 2006 Published by funaki under つくる

はてなブックマークのランキングである「最近の人気エントリー」が最近面白くなくなってきた、という話を聞きます。

カフェイン中毒クロニクル – はてなブックマークのランキングはつまらなくなった

自分もそれは感じるけれど、あきらめて見なくなるのはもったいないので一工夫してみました。

通常のランキングは随時更新されているので24時間ためると表示されているよりも多い件数が集まります。集めた珠玉のブックマークたちを、自分のはてなブックマークと照らし合わせて、同じタグが含まれていれば上位に移動、というロジックでランキングし直し。これが今回つくってみたMy はてなブックマークランキングの基本的な仕組みです。

» My はてなブックマークランキング

myhatenabookmarkranking.png

自分が登録したタグは自身の興味分野を示すのでそれなりに信頼できる情報だと思われます。
サンプルで勝手ながらnaoyaさんのを拝借。PerlとかMacが上の方に来てそれっぽい?

» My はてなブックマークランキング (id:naoya)

左の数字はタグに対する重み付けの結果。最近つけたタグが含まれている方が高いポイントになります。

はてブのfavoriteも考慮しては?というアイディアをもらったので実現したかったのですがfavoriteのRSSはタグ情報が抜けているので使いづらく断念。最近の人気エントリーを並べ直すだけでは十分とは言えず、質そのものを変えるにはfavoriteかあるいはタグや隣人(協調フィルタリングな手法で)からランキング外のはてブを収集してくるのがベターでしょうか。

なお、見た目の部分で使用させてもらったライブラリは以下。

3 responses so far

女性専用車両の広告:クラブニッキィ

May 21 2006 Published by funaki under 感動する

今日乗った電車の窓にピンクの広告で

上司に一目おかれたい

もっとデキるオンナになりたい

と書いてあってなんだろうな、と思ったらclub Nikkey-クラブニッキィ-なる日経新聞の宣伝。ネーミングも日経とは思えぬ意外性がありましたが、そういえばここ女性専用車両だ、と気付いてちょっと感動。

»女性専用車両に限定した車体広告を開始、西武鉄道 – nikkeibp.jp – 企業・経営

こんな例は1年前にあったようです。こちらは台湾の男性アイドル。

»編集者Asanaoのブログ : 女性専用車両という広告媒体

このブログでもちょうど1年前に言及。女性専用車両のように優先席付近は広告の値段が違ったりするんでしょうか。

»女性専用車両

このページの言及が詳しい。

No responses yet

PHPの終了タグ (“?>”) っていらないんだ

May 12 2006 Published by funaki under いじる

知りませんでした。phpspot開発日誌経由でZend Frameworkの標準コーディング規約の「最初に」書いてあるのを見て初めて知りました。

PHP コードのみからなるファイルでは、終了タグ (“?>”) は決して含めてはいけません。終了タグは、PHP には必要ありません。 終了タグを省略することで、ファイルの最後にある空白文字が出力に影響することを防ぎます。

確かにその通り。PHPをLinuxでもWindowsでもCLIとして使うことが多い自分としては目からウロコ。

追記:
記事のタイトルにダブルクォーテーションがあると下のCommentへのリンクがおかしくなることに気付いた。

<a href="http://blog.zu~" title="Comment on PHPの終了タグ ("?>") っていらないんだ">

これは報告せねば、と思ったら既知。1月の報告でpriorityがlowになってますけど。。

#2358 (Transform HTML Special Chars in comment-functions.php:comments_popup_link()) – WordPress Trac – Trac

このページに辿り着くまでには、上のHTMLソース近辺のキーワードになりそうな単語でWordPressのソース全体をgrep検索して(実際にはロリポサーバでgrepできないので、別のLinux上にソースを展開…。p要素のクラスに指定されていたpostmetadataで引っかかった。)自分で作ったthemeファイルが出てきたので、あれ自分のバグ?と思って見たら該当箇所は以下。

<?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?>

関数名がわかったので再びcomments_popup_linkでgrep。wp-includes/comment-functions.phpの331行目に問題の箇所を発見し安直にhtmlspecialcharsでくくって解決。上のバグ報告も同じ解決方法をとっているのでOKっぽい。

echo ' title="' . sprintf( __('Comment on %s'), htmlspecialchars($post->post_title) ) .'">';

WordPress本家にBUG Reportのページが見当たらないのでSUPPORTで先ほどのcomments_popup_linkを検索したらBug Databaseというチェックボックスがあったのでそちらで再度検索してようやく先ほどのページがお目見え。

しかし、ログインしないと投稿できないのは仕方ないとはいえ、バグあったよーこれで解決すると思うよーというお気軽な報告ができず残念。

No responses yet

Vim 7をちょこっとカスタマイズ

May 10 2006 Published by funaki under いじる

Vim 7 is ready!ということで早速Windows版をインストール。

補完機能はぱっと見、良さそうです。JavaScriptの補完はなかなかアツイもののちょっと間違えることも。ctagsと組み合わせるとPHPもオブジェクト指向な補完ができるようになるようです。自分はネイティブ関数の補完だけで十分。

midnight2.vimを色分けに使っていますが補完の候補が表示されるエリアの色が派手過ぎるので変更。ついでにVisualモード時の色が変わっていたのでそれも変更。

hi Pmenu guifg=slategray3 guibg=blue3
hi Visual guibg=#666666

今まで色分けがうまくいかなかった、PHP、HTML、JavaScript(特にJavaScript)混在ファイルもきれいに色分けされるようになりました。

Undo branchesは、便利そうな反面、直感的ではないので使う場面があるかどうか。uとCtrl-rに加えて、ヤバぃ消しちゃった!と思ったらg-とg+を連打するぐらいが現実的でしょうか。

タブ機能はminibufexpl.vimを今まで使っていたので必ずしも必要なかったのですが、物は試し。:tabnewなどと打っていられないので

Tip #1221 – Alternative tab navigation : vim online

を参考にvimrcを変更。

set showtabline=1

" tab navigation like firefox
nmap <C-S-tab> :tabprevious<cr>
nmap <C-tab> :tabnext<cr>
map <C-S-tab> :tabprevious<cr>
map <C-tab> :tabnext<cr>
imap <C-S-tab> <ESC>:tabprevious<cr>i
imap <C-tab> <ESC>:tabnext<cr>i
"map <C-w> :tabclose<cr>
nmap <C-t> :tabnew<cr>
imap <C-t> <ESC>:tabnew<cr> 

Ctrl-Wはウィンドウの分割等に使うのでやめておきました。Ctrl-1、Ctrl-2のようにタブ間を移動したかったのですが、

map <C-1> :tabn 1<cr>

は動かず。Ctrl+数字はダメなんでしょうか。Googleで調べても解決策は見つかりませんでした。

minibufexplは、ファイルをダブルクリックするなどして開いたときには別ウィンドウになってしまうのが不満でしたが、Vim7のタブも少なくともデフォルトではダメ。常にウィンドウは1つで新規に開くのはすべてタブになって欲しい。-pのオプションやらautocommandのTabEnter辺りがそれっぽいのですが。。

なお、新機能については

:help version7

で確認できます。

追記:
midnight2はVim7用にアップデートされました。
midnight2.vim – Dark blue colorscheme. No sharp contrasts to tire your eyes. : vim online

2 responses so far

複数の検索語をハイライトしたいときの簡単なPHPのコード

May 01 2006 Published by funaki under いじる

IT系ニュース専用検索エンジンでは多くの検索エンジンと同じように、検索結果中の検索語を太字にして強調表示しています。複数のキーワードを指定されたとき、ちゃんとそれぞれ強調表示されるようにするにはちょっと工夫がいりました。

preg_replace("'($query)'i", "<strong>$1</strong>", $buf);

ベースになるのはこの正規表現。

function replace_search_result($query, $str)
{
    $query  = str_replace(' ', ' ', $query);
    $q = preg_split("'[\\s,]+'", $query, -1, PREG_SPLIT_NO_EMPTY);
    $qq = array();
    foreach ($q as $val) {
        $qq[] = "'(".preg_quote($val).")'i";
    }
    return preg_replace($qq, "<strong>$1</strong>", $str);
}

第1引数に検索語、第2引数に検索結果をそれぞれ文字列で与えて、強調表示された文字列を返します。

検索語に複数の単語を指定する際には全角スペース、半角スペース、カンマが使われることを想定しています。あらかじめstr_replaceで全角スペースを半角スペースに変換しているのはpreg_splitで文字化けないため。

mb_regex_encoding('UTF-8');
$q = mb_split("\\s| ", $query);

str_replaceとpreg_splitの行を上記のようにしても動きます。速度的にはほとんど変わらなかったので好みでしょう。

preg_replaceの第1引数に配列で渡していますが、これはforeachでpreg_replaceを呼び出すよりやや速いため。$qの値を正規表現の書式に直す処理はarray_mapやarray_walkでやるよりforeachで回した方が速かったです。

WordPressの検索語をハイライトするプラグインやPukiWikiのplugin/search.inc.phpも参考にしました。WordPressの方はHTMLの混じった文字列を置換するので少々複雑。PukiWikiは全角スペースでの区切りに未対応。

2 responses so far

WordPressを1.5から2.0.2にアップグレード

May 01 2006 Published by funaki under いじる

ちょっと前に2がリリースされたWordPress、1.5にも特に不満はなかったのですがどんどん古いバージョンになるのもイヤなのでアップグレード。
いつの間にか本家のサイトもリニューアルしていました。

Upgrading WordPress « WordPress Codex

に忠実に従い、ちゃんとバックアップをとってから作業。と言っても全く問題なく1.5系から移行できました。

新しくなったのはなんと言っても記事を編集する画面。JavaScriptでWYSIWYGなHTMLを意識しない編集が可能になっています。が、僕はHTMLが見れないと逆に気持ち悪いので、開発者の皆さまゴメンナサイ、と思いながらもUsersのページにある「Use the visual rich editor when writing」のチェックボックスを。。

オフにしても、各種メッセージがフェードインで表示されたり、ファイルのアップロードがAjaxで編集中のページ上でできたり。アップロードは便利になりました。HTML直接編集用に今までのようにタグが出てくれるとより使いやすいのですが。

コメントスパム対策にはWordPress Hashcashを使っていましたが、デフォルトで入ったAkismetに切り替え。さらに強化されるかどうか。
Akismetを使うにはwordpress.comのアカウントが必要になります。wordpress.com自体はいわゆるブログサービスでWordPressが使えるサブドメインをくれます。通常のWordPressにはない機能としてログ解析が可能でした。

Flashで何やらかっこいい。プラグインとしては提供されていないようなので使えず残念。

No responses yet