« 2007年09月16日 - 2007年09月22日 | メイン | 2007年09月30日 - 2007年10月06日 »



2007年09月23日 - 2007年09月29日 アーカイブ

2007年09月23日

みんなのフィードビューアをつくってみました。

mojaloglabs.JPG

みんなのフィードビューアを作ってみました。

そのサービスの性質上、宣伝なんかにも使われそうですが、基本的にはyahoo pipesなどを使って面白いRSSを編集し、投稿していただけることを期待したサービスです。

使い方は、特に難しいことはありません。紹介したいRSSを用意して、タイトル・名前・コメントを入力して投稿するだけです。

※このRSSビューアはGoogle Ajax Feed APIを利用しています。まれにRSSフィードが正しく認識できないことがありますので、ご用意いただいたRSSフィードにFeed Burneryahoo pipesなどを噛ませてから投稿してみてください。

ちなみにちょっと昔の記事ですが、GIGAZINEさんのとこで紹介していました、Search & RSSなんかも絡ませてみると面白いことになるかもしれませんね。
現在のところイメージファイルは表示できないので、コレが何とかなればいいかなーなんて思います。


[ 最近のエントリーとその関連エントリー ]


[ スポンサードリンク ]

2007年09月27日

SEOと検索ワードの有効利用

SEO.png

本エントリについての訂正記事


サーチエンジンの検索結果を上位に表示されるように工夫することをSEOとかって言いますが、mojalogもgoogleやyahooなどに対してのSEO対策を行っています。

<検索ワードの有効利用>

例えばgoogleでhtml tag removerという複数のキーワードで検索すると現在(20070927)、検索結果TOPページにmojalogが表示されています。
ですが、ユーザが探している情報が飛んできたそのページには無くて、「サイト内の他のページにあった場合」これがユーザによって見つけられる可能性は極めて低いと考えます。ワタシの場合は欲しい情報が無いとわかると、キーワードを変えてみたり、ヒットしたほかのサイトを見に行くことがほとんどです。

seo_google.PNG

例えば、html tag removerの3つのワードの内、removerだけで「サイト内を検索」すればユーザに必要なその情報があったとします。つまり、「site:mojalog.com removerという検索を行った場合」と言い換えられるのですが、ユーザはこういう検索を行うことはまずありません。あるとすれば、そのサイトに探している情報があると判っているときだけでしょう。
そして、googleで普通にremoverという検索を行ってもmojalogが上位ヒットすることは当然のことながらありません。
ですので、ユーザに提供できる情報があったとしてもこれが発見されることはほとんど無いとだろう考えました。

そこで、1つ前のエントリでもちょこっと紹介いたしました、ウェブサービスを作ってブログパーツとして紹介させて頂きました。
このパーツは、ホームページを作る人のネタ帳さん(※SEOの記事を参考にさせていただきました)などのように、コンテンツの内容とその量が充実していればいるほど、その効果を発揮するのではないかと思います。

このブログパーツのオススメできる点は以下のとおりです。

  • サイト内の検索フォームに改めてタイプする必要が無い
  • 非同期で検索結果を読み込むため、ページ全体のリロードの必要が無い
  • ウェブ検索・ブログ検索・ビデオ検索のほか、ローカルサーチ、ブックサーチ、イメージサーチ、ニュースサーチなどあらゆる検索結果が1度に得られる

<リファラ分割ウェブサービス>

リファラっていうのは、あるWebページのリンクをクリックして別のページに移動したときのリンク元のページのことで、リファラ分割ウェブサービスはこのリファラを判定して、検索ワードを抽出してxmlで返します。
返却したxmlの例はこんな感じで、itemlist->elem下に、インデックス(何番目の検索ワードか?)を示すタグであるidxと実際の検索ワードを示すタグitemを持ちます。
アクセス解析などのサービスは大抵このようなリファラを解析する実装がなされていますが、この機能だけを抽出してウェブサービス化してみました。
このサービスを呼び出す際は以下のようにリファラをエスケープしてから呼び出すようにしてください。
'http://mojalog.com/mojascript/gsajax/refrxml.php?refr=' + escape( top.document.referrer )

<分割したリファラを取得するajax>

私はリファラ分割ウェブサービスをjavascriptで呼び出して、返ってきたxmlの要素を

<実装例>

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<title>example</title>
<!--
http://code.google.com/apis/ajaxsearch/signup.html
上記URLよりAPI-KEYを取得して、以下のAPI-KEYに設定ください
//-->
<script src="http://www.google.com/jsapi?key=API-KEY" type="text/javascript"></script>
<script language="Javascript" type="text/javascript">
    //<![CDATA[
    google.load( "search", "1" );
    function OnLoad() {
        var searchControl = new google.search.SearchControl();
        searchControl.addSearcher( new google.search.WebSearch() );
        searchControl.addSearcher( new google.search.BlogSearch() );
        searchControl.addSearcher( new google.search.VideoSearch() );
        searchControl.draw( document.getElementById( "searchcontrol" ) );
        // サイト内検索を行うため、site:ご自身のサイトトップレベルを検索条件に入れておきます。
        // and検索を行うため、サイト名の末尾に半角スペースを最後に入力してあげるのを忘れないでください。
        searchControl.execute( "site:mojalog.com " + form.sender.value );
    }
    //]]>
</script>
<script type="text/javascript">
<!--
function createXMLHttpRequest( funcPtr ){
    var xmlHttpInst = null;
    try{
        xmlHttpInst = new XMLHttpRequest();
    }
    catch( e ){
        try{
            xmlHttpInst = new ActiveXObject( "Msxml2.XMLHTTP" );
        }
        catch( e ){
            try{
                xmlHttpInst = new ActiveXObject( "Microsoft.XMLHTTP" );
            }
            catch( e ){
                return null;
            }
        }
    }
    if ( xmlHttpInst ) xmlHttpInst.onreadystatechange = funcPtr;
    return xmlHttpInst;
}
// タグのid名をもらって、該当のタグオブジェクトを返却する
function $( tagId ){
    return document.getElementById( tagId );
}
// XMLHttpRequest / ActiveXObjectインスタンスでウェブサービスを呼び出します。
function loadXMLFile( xmlPath )
{
    reqInst = createXMLHttpRequest( displayData );
    if ( reqInst ){
        reqInst.open( "GET", xmlPath, true );
        reqInst.send( null );
    }
}
function displayData()
{
    if ( ( reqInst.readyState == 4 ) && ( reqInst.status == 200 ) ){
        xmlData = reqInst.responseXML;
        elemTags = xmlData.getElementsByTagName( "elem" );
        idxTags = xmlData.getElementsByTagName( "idx" );
        itemTags = xmlData.getElementsByTagName( "item" );
        elemSize = elemTags.length;
        resultText = "<form action=\"\" method=\"post\" name=\"form\">\n<select name=\"sender\" onchange=\"OnLoad()\"><option value=\"\">サイト内検索</option>";
        
        // 取得したxmlをパースします。
        for( i = 0; i < elemSize; i++ ){
            // idxは今回使用してません。
            idx = idxTags[ i ].childNodes[ 0 ].nodeValue;
            item = itemTags[ i ].childNodes[ 0 ].nodeValue;
            resultText = resultText + "<option value=\"" + item + "\">" + item + "</option>";
        }
        resultText = resultText + "</select></form>";
        
        // resultをid属性にもつタグオブジェクトにform~タグを設定しています。
        $("result").innerHTML = resultText;
    }
    else {
        $("result").innerHTML = "<form action=\"\" method=\"post\" name=\"form\"><select name=\"sender\" onchange=\"OnLoad()\"><option value=\"\">サイト内検索</option></select></form>";
    }
}
// -->
</script>
<style type="text/css">
/* google search ajax apiのサーチボックスを非表示にしています。*/
#searchcontrol form.gsc-search-box { display : none; }
/* 検索結果のスタイルです。 */
.gsc-control { width : 400px; }
</style>
</head>
<!-- 
onload時にリファラ分割ウェブサービスを呼んでからgoogle search ajaxのOnLoadメソッドを呼び出します。
ウェブサービスを呼び出す際に渡すリファラはescapeしないと正しい結果が得られません。
//-->
<body onload="loadXMLFile( 'http://mojalog.com/mojascript/gsajax/refrxml.php?refr=' + escape( document.referrer ) );google.setOnLoadCallback( OnLoad );">
<!-- プルダウンフォームを表示します //-->
<div id="result"></div>
<!-- 検索結果を表示します //-->
<div id="searchcontrol"></div>
</body>
</html>

※(もちろん、欲しい情報について専門的な情報を扱っているサイトでしたらタグクラウドをみてみたり、カテゴリから見てみたりします。)


[ 最近のエントリーとその関連エントリー ]


2007年09月25日

リファラをスライスするウェブサービスとajaxでサイト内再検索ウェブパーツ

refslice.JPG

本エントリについての訂正記事


なんだかわかりにくいエントリタイトルをつけてみましたが、google ajax search apiと検索で飛んできたリファラを使って、非同期でサイト内の再検索結果を得られるブログパーツを実装してみました。
(ソフトウェアなどの)技術系の検索を行う場合って、以下のように検索ワードが複数に渡ることがよくあるのですが、このようなユーザ検索を補助してあげるパーツです。例えばgoogleで、mojalog ajax feed apiという検索で飛んできた場合、これをリストにして

  • mojalog
  • ajax
  • feed
  • api

を非同期に再検索行えるようにしました。ためしにこんなワードで飛んできていただければ判ると思います。
エントリ毎に★このコンテンツに目的の情報はありませんでしたか?というリンクを用意しましたので、クリックしてみてください。ページ下部のリファラ再検索パーツに遷移します。
これは、検索して飛んできたページにあまり有用な内容がなかった場合、googleに戻って再検索するより手っ取り早く再検索が出来るようにしたかったためのものです。
ただ、mojalogはまだコンテンツが溢れているわけではありませんので、その効果はもしかしたら乏しいものかもしれません。
やっつけで作ったものなので、あまりオプショナルな機能(例えばサイト外検索したいなど)はありませんが、近いうちにスクリプトとその実装内容を報告したいと思います。たいしたことやってないけど。

あとリファラをスライスしてxmlで返すサービスはこんな感じです。
'http://mojalog.com/mojascript/gsajax/refrxml.php?refr=' + escape( top.document.referrer )
スクリプトでリファラ拾ってエスケープして上記のphpにrefr=で投げます。そしたらスライスして返してきます。実際にはこんな感じ。また今度解説します。

続きを読む "リファラをスライスするウェブサービスとajaxでサイト内再検索ウェブパーツ" »

★このコンテンツに目的の情報はありませんでしたか?


[ 最近のエントリーとその関連エントリー ]


この頃のHDDのメモリ単価ってどんなもんだったんだろ

DSCF6971.jpg

最近携帯を買い換えたんです。P900iからP903iにしました。ずいぶん使い倒したので、電池もすぐに切れちゃうし、カメラも取れなくなっちゃってるし、903シリーズなら結構値引きもしているようだったりで、買い換えました。
ポイントや値引きを使っておよそ3000円くらいになったです。すげぇお買い得でした。
で、この携帯はmp3プレイヤーがついてますので、microSDの2Gを買ったんですが、ちっさいですね。6000円くらいでした。携帯の2倍かよw
でも便利な時代になりました。2Gがこんなサイズに入っちゃうんですもんね。
で、どのくらい便利になったのかと言いますと、これがかつて(20年前)のIBM製の1Gドライブのようです。
コイツを携帯に差し込んでって差し込めるかwww


[ 最近のエントリーとその関連エントリー ]


2007年09月24日

秋刀魚のパスタだよ!キラーディッシュです。

DSCF6969.jpg

秋刀魚のスープパスタをつくったよ!
秋刀魚が美味しい季節になってきましたので、我が家の食卓は秋刀魚率が結構高いです。安いですしね。今日は嫁さんが美容室に行ってしまったので、1人遅めの昼ごはんです。

<材料>
  • 秋刀魚
  • ブロッコリー(アスパラでも美味しい)
  • 小口葱
  • トマト
  • ニンニク
  • 玉ねぎ
DSCF6970.jpg <調味料>
  • オリーブオイル
  • 白ワイン
  • エルブドプロバンス(あれば)
  • 昆布だし(顆粒)
  • 小麦粉

エルブドプロバンスは、ミックスハーブです。バジル・オレガノ・ローズマリーなどがブレンドされたもので、魚の生臭さを消すために使います。ネギも入っているので使わなくてもいいです。

DSCF6966.jpg

秋刀魚など、魚をスパゲティのソースの具として使う場合はなるべく骨を取り除いてあげるとあとで食べやすいです。
1口大にきって、骨を抜いてキッチンペーパーなどでよく水気を取ってください。小麦粉をまぶして、下ごしらえは完了です。

<作り方>
  • オリーブオイルをフライパンに敷きます。
  • 刻みニンニクを投入します
    • ニンニクは包丁の柄などでぶっ叩いてつぶしたほうが香りがいいですよ。
  • コンガリキツネ色に焼けてきたら、秋刀魚を投入します
    • 小麦粉をまぶしているので、秋刀魚もいい感じにこげた色がついてきます。なるべく崩れないようにしましょう。
  • 玉ねぎを投入します。
    • このあと、白ワインを入れて香りをつけて、味をつけたり茹で上がったブロッコリーを混ぜたりするので、秋刀魚を避けておくと、後のトッピングがきれいになりますよ
  • ソースと平行して、パスタをゆでます。スープパスタにしたいので、いつもより早めに(1分くらい?)あげてしまいましょう
    • このときにブロッコリーもゆでてしまいます。
  • 玉ねぎによく火が通ったら白ワインを投入します。フランベしてアルコールを飛ばします
  • 続けて、パスタのゆで汁とオリーブオイルでスープ状にして、昆布だし(顆粒)、塩などで味を調えます。
  • パスタが茹で上がったら、ブロッコリー、秋刀魚、角切りトマト、小口ネギを混ぜで、エルブドプロバンスを少量入れて盛り付けます。
DSCF6968.jpg

<以前あった質問>
☆ソースがさらさら過ぎるんだけど!
→オリーブオイルである程度調整できます。

☆秋刀魚が崩れる!
→きれいに盛り付けたい場合は、ソテーした後、避けておきましょう

☆トマト必要?
→基本的には彩りで入れてますが、酸味もあって俺はいつも入れてます

☆骨がじゃまなんだけど
→パスタの具になる魚の骨は抜いてあげたほうがいいです。あるいは、オイルサーディンを使ってみましょう。料理は愛情!

☆( ´д`)マズー
→すみません。オレはこのパスタ、結構好きです

☆(゚∀゚)うめぇ
→うん。うまいよね。


[ 最近のエントリーとその関連エントリー ]


2007年09月23日

おもしろ写真集の紹介だよ!

面白いタイミングで撮った写真とか、面白い角度で取った写真集だよ。
VOWみたいですね。youtubeにも小田和正さんの「言葉にできない」をBGMにして
http://www.youtube.com/watch?v=Z--siVJjgWs
でポストされてますね。あんな感じのものです。


[ 最近のエントリーとその関連エントリー ]


みんなのフィードビューアをつくってみました。

mojaloglabs.JPG

みんなのフィードビューアを作ってみました。

そのサービスの性質上、宣伝なんかにも使われそうですが、基本的にはyahoo pipesなどを使って面白いRSSを編集し、投稿していただけることを期待したサービスです。

使い方は、特に難しいことはありません。紹介したいRSSを用意して、タイトル・名前・コメントを入力して投稿するだけです。

※このRSSビューアはGoogle Ajax Feed APIを利用しています。まれにRSSフィードが正しく認識できないことがありますので、ご用意いただいたRSSフィードにFeed Burneryahoo pipesなどを噛ませてから投稿してみてください。

ちなみにちょっと昔の記事ですが、GIGAZINEさんのとこで紹介していました、Search & RSSなんかも絡ませてみると面白いことになるかもしれませんね。
現在のところイメージファイルは表示できないので、コレが何とかなればいいかなーなんて思います。


[ 最近のエントリーとその関連エントリー ]


ツリータイプ・カテゴリー

open all | close all

リファラから検索