‘web’ カテゴリーのアーカイブ

Japanese search in Sweetcron

2008年9月30日 火曜日

Sweetcron で日本語検索をするには少し改造が必要でした。というのも Sweetcron の検索機能は MySQL の全文検索機能を用いていますが、この機能では英語など分かち書きをする言語を前提としており、分かち書きを解析して関連度を算出するためです。これをとりあえず解決するために Sweetcron を少し書き換えました。

Sweetcron – 日本語検索

上記のページにその方法を書きました。必要であればお試しください。僕はプログラムとかよくわからないから、わかる人から見たらちょっとアレかもしれません。そういうときは、よりうまい風にWikiを書き換えてください。

さて、本来であれば標準で日本語検索ができると良いのですが、この方法だと英語圏の方には不便かもしれません。いくつかの部分で機能が劣ってしまうからです。ですが日本語圏のユーザーはこれくらいしないと不便で仕方ないですね。どうにかこれまでの検索と競合しない形で本体に取り込んでもらいたいですね。

Sweetcron Japanese Doc

2008年9月27日 土曜日

個人的にはそろそろ夏休み終了のお知らせなので、最後に一つ完成させました。

Sweetcron Japanese Doc

皆も大好きな Sweetcron の公式ドキュメントを和訳したものです。拙い部分等々ございますが、最低限必要を満たしているかと存じますのでどうぞご利用ください。wiki の仕組みを使っていますから、変なトコとか見つけたら直してあげてね。

それで今後は独自のコンテンツなどを拡充していきたいと思います。というのも、英語圏での情報はかなり出てきましたけど、日本独自のこととかそういう情報は少ないです。ですのでそれらを共有するハブになれたらと思うのです。そういうわけですから、いろいろとよろしくお願いします。僕は日本語では検索機能が動かないことに気付いて泣きそうです。誰かパッチ書いてください。

Sweetcron の Boxy But Good で Delicious を表示する

2008年9月7日 日曜日

_activity_feed.php に

<!-- this item came from delicious.com -->
<?php elseif ($item->get_feed_domain() == 'delicious.com'): ?>
<li class="activity_item link<?php if ($i % 3 == 0):?> last<?php endif;?>">
<div class="activity_list_inner">
<span class="type_label link"></span>
<div class="link_container">
<a href="<?php echo $item->get_original_permalink()?>"><?php echo $item->get_title()?></a>
<div>
<?php echo mb_strimwidth(strip_tags($item->get_content()), 0, 200, "...")?>
</div>
<cite>via <a href="<?php echo $item->get_original_permalink()?>">delicious.com</a></cite>
</div>

こういう感じで書き足すといいよ。ほとんど digg.com と同じだから、Digg の下のとこにでも入れておけば。

それと single.php にも同じように

<!-- this item came from delicious.com -->
 <?php elseif ($item->get_feed_domain() == 'delicious.com'): ?>
<div id="single_container" class="link">
<div class="activity_list_inner">
<span class="type_label link"></span>
<div class="link_container">
<a href="<?php echo $item->get_original_permalink()?>"><?php echo $item->get_title()?></a>
<div>
<?php echo $item->get_content()?>
</div>
<cite>via <a href="<?php echo $item->get_original_permalink()?>">delicious.com</a></cite>
</div>

これを書き加えれば好いかな。

Google Chrome

2008年9月3日 水曜日

ときどき、ある革新的なソリューションの登場によって、他の似たようなものをすべて変えてしまうようなことがある。たぶんそれはコロンブスの卵と呼ばれているのだろう。僕は今日、そういうものの一つを見たのだと思う。Google Chromeはこれから他のブラウザを全く変えてしまうだろう。

Google Chromeはそのユーザーインターフェースにおいて既存のブラウザたちから色々なものを拝借した。Safariからはタブのドラッグ&ドロップに関する挙動を。Firefoxからはスマートなロケーションバーやブックマークを。Operaからはスピードダイヤルを。そしてこれらをWebkitというオープンソースのHTMLレンダリングエンジンと、V8という仮想マシン機能付きのJavaScriptエンジンを載せたブラウザにパッケージした。WebkitはSafariに搭載され、W3C標準への準拠やその速度面で定評があり、またJavaScriptの仮想マシンは、いまやどこのブラウザも開発しているものだ。

インターフェースはとても優れている。タブが一番上についているなんて、素晴らしいじゃないか(どうして誰も気付かなかったのだろう)!冗談は抜きにしても、たとえばホームページ代わりとなるスピードダイヤル画面は、自動的に設定されるスピードダイヤルにブックマークも統合した。最近閉じたタブすら表示される。まさに至れり尽くせり。これこそインターネットのホームポジションと言っても良いだろう。それに加えてロケーションバーは本当にインテリジェントだ。ここにカーソルを持ってくるだけで、僕は何をするべきか分かるようになった。

しかしなんと言っても、僕が一番気に入っているのは、タブごとにプロセスを用意するという新しいアーキテクチャだ。詳しいことは全然分からないけど、はっきりしているのはSafariのようにメモリをバカ食いしないということ。タブを閉じるごとにその部分のメモリをほとんど完全に開放してくれる。ああこれでようやくダウンタイムなしのインターネットが楽しめるんだね。もうブラウザを再起動しなくていいんだ!

肝心のブラウザ自体も軽快だし、Google Gearsも上手く働いている。ブックマークなどのインポートでFirefoxからの移行も万全だ。ウェブアプリケーションを独立した普通のアプリケーションのように切り離すこともできる。それに(これはたぶん大切なことだろうけど)シークレットウィンドウという、履歴などが一切残らないプライバシー機能もついている(別名ポルノモードとして有名だ)。僕はしばらくこのブラウザを使っていこうと思う。そして願わくば、今度は他のブラウザがGoogle Chromeからその良いところを拝借していって欲しい。そのとき、僕はあらためてブラウザを評価したい。

Sweetcron Memo

2008年9月1日 月曜日

トップページの表示が崩れるのを解決

これはテーマファイルの中で使っている「word_limiter()」が日本語非対応っていう問題。

system/application/view/themes/boxy_but_good/

っていうディレクトリにある「_activity_feed.php」の

word_limiter(strip_tags($item->get_content()), 25)

っていうところを

mb_strimwidth(strip_tags($item->get_content()), 0, 200, "...")

に書き換えると良い結果が得られました。単純に関数を換えただけですね。「200」っていうのは閾値なんだけど、微妙に200で100文字とかになる気がする。

ブログとかのタグをそのまま表示する

Sweetcronで他のブログなどからフィードを取得すると、シングルページでもタグが無視されて見難くなります。これを避けるにはプラグインを書くのが早いと思います。

まず自分のブログのドメインをファイル名に含めたPHPスクリプトを作ります。「yourblog.com」というドメイン名なら、「yourblog_com.php」という風になります。ドメインの中の「.」を「_」に置き換えるんですね。僕の場合「blog.cockscomb.info」というドメインなので「blog_cockscomb_info.php」になりました。

次にスクリプトの中身ですが

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class yourblog_com {

        function pre_db($item)
        {
                return $item;
        }

        function pre_display($item)
        {
                $item->item_content = $item->item_data['content'];
                return $item;
        }
}
?>

このようになります。「yourblog_com」の部分は先ほどのファイル名と同じように、ドメインにあわせて換えてください。簡単に何をしているか説明すると、プラグインでは2つのフックを利用でき、データベースに格納する前の「pre_db()」と表示する前の「pre_display()」があります。このうち表示する前のところで、通常タグをストリップされた状態の「item_content」に生のデータが格納された配列の「item_data」のうちコンテント部分を直接つっこむだけの簡単なお仕事です。ちょっと無茶している感じもしますが、まあ自分のブログだから大丈夫かな。わかんないけど。

で、これを

system/application/plugins/

ディレクトリに保存すれば、多分大丈夫だと思うよ。

誰か助けて欲しい

結構ここまでは頑張ったんだけど、なぜかUTF-8のBOMかなんかが意味わかんないことになってて、ブラウザにDOCTYPE宣言が認識されないくさい。CORESERVER固有の問題かも分からないけど、本当マジわかんないから誰か教えてください。Internet Explorerとかで酷いことになってる。

It’s so sweet! – Sweetcron

2008年8月31日 日曜日

ReadWriteWebとか読んでる人はとっくに知っていてウゼーと思うかも知れないけど、すごく面白いプログラムがあるから紹介するよ!その名も「Sweetcron」。

みんながインターネット上の色々な場所で活動した軌跡を、自分のウェブサイトでアーカイブしておけるソフトだよ。これはうれしいね。PHP5とMySQL4があれば動くから、その辺の適当なレンタルサーバー借りてるみんなは大丈夫かな。

全然意味が分からないって人は、僕のサイトの「cockscomb.info」を見たら好いと思うよ。なんか色々並んでると思う。これが僕の軌跡で、これらを集めてきて表示してるのがSweetcronなんだな。ちなみにこういう軌跡をアーカイブすることを最近は「lifestream」って言うらしいよ。

それで、インストールとかのやり方は賢い皆さんのことだから英語のドキュメントを読んだりして余裕だと思う。すごく簡単だしね。ZIPファイルを解凍してFTPにサーバーにアップロードして、「system/application/config」ディレクトリにsample見ながらconfig.phpとdatabase.php作ったらブラウザでアクセスして指示通りセットアップするだけだからね。なんかアップデートのだびアップロードしなおすの面倒だから最初のアップロードの代わりにSVN使ってもいいけど説明するのメンドイから勝手に調べると好いよ。

すごいデザイン格好好いとか、自由度高いとか、色々面白いんだけど、公開されたばっかりでまだまだこれからっぽいんだよね。個人的に気になるところもあるし。例えばこのブログから読み込んだら勝手にタグがストリップされるような、変態的な挙動がムカつくとか。

だから他のLifestream法も紹介しておく。WordPressでブログやってるなら「Lifestream」プラグインが好いかな。Movable Typeの人も「ActionStreams」プラグインがあるから安心して。サーバー持ってない人も「FriendFeed」っていうサービスを利用すれば好いね。

なんか色々どうでも好い感じになってきたから、最後にSweetcronのワンポイントティップス。ガチで役に立つから気を付けて!

Sweetcronに最初から付いているテーマの一つ、「Boxy But Good」っていう奴。すごく格好良いんだけど、日本語でブログとかやってるとトップページの表示が崩れちゃう。これはSweetcronが使っている「word_limiter()」っていうのが問題で、日本語に対応してないんだ。だからこれを「character_limiter()」っていう奴に代えてみよう。日本語への対応は完全じゃない気もするけど、随分マシになったよ。具体的には「system/application/view/boxy_but_good/」にある「_activity_feed.php」っていうファイルの中に書かれている「word_limiter」を「character_limiter」に書き換えるんだね。何箇所かあって僕はメンドイから全部換えちゃった。何故かよく分からないけど表示崩れないから好いことにしたよ。

もう少しだけ書き足すと、「character_limiter()」しても最初の改行位置かスペースのあるところまでは表示されるみたい。完全にコントロールするまではいかないけどちょっとはマシだね。最悪CSSでコントロールしても好いかな。

じゃあそういうことでよくわかんないけどみんなも頑張ろう!