しかもフルアップデート。Yahooの検索順位が大きく変わりますねー。
Yahoo!検索 Index Update
http://searchblog.yahoo.co.jp/2010/01/yahoo_index_update_10.html
TDPと呼ばれている現象が解決するのか?加速するのか?
たまたまインデックスのされ方が悪かっただけなのか?
とりあえず2010年1月26日14時51分時点でYahooでSEOを検索した結果。
1. SEO対策、検索エンジン最適化はグラソフトへ
2. SEO対策|GMO SEOテクノロジー株式会社
3. 検索エンジン最適化 – Wikipedia
4. 長年の研究をもとにしたSEO対策「YES-SEO」-bing対策も始めました-
5. SEO対策 – 検索エンジンで上位表示(10位以内)できた場合のみ報酬を下さい。
6. SEO – Wikipedia
7. SEO対策:完全成果報酬型SEOサービス 旅行情報株式会社
8. SEO対策・・・。 – Yahoo!知恵袋
9. SEO対策|確かな技術と実績のスマートシステム
10. SEO – SEO対策 | 若葉なら10位までゼロ円
もう変動した後かも知れないですがどこまで順位が変動するのか楽しみです。
V200909のTargetingIdea#getを使うと速くなりますよ!
adwords4rを利用したサンプルコード。
service = @adwords.service("TargetingIdea", 200909)
kw = service.module::Keyword.new
kw.text = keyword
kw.matchType = "BROAD"
parameter1 = service.module::RelatedToKeywordSearchParameter.new
parameter1.keywords = [kw]
parameter2 = service.module::AverageTargetedMonthlySearchesSearchParameter.new
parameter2.operation = service.module::LongComparisonOperation.new
parameter2.operation.minimum = 0
parameter2.operation.maximum = 100_000_000_000
selector = service.module::TargetingIdeaSelector.new
selector.searchParameters = [parameter1, parameter2]
selector.requestedAttributeTypes = ["AVERAGE_TARGETED_MONTHLY_SEARCHES"]
selector.ideaType = "KEYWORD"
selector.requestType = "STATS"
selector.localeCode = "ja_JP"
selector.currencyCode = "JPY"
selector.paging = service.module::Paging.new
selector.paging.startIndex = 0
selector.paging.numberResults = 1
service.get(selector)
このサンプルでは月の平均検索ボリューム(AVERAGE_TARGETED_MONTHLY_SEARCHES)を1件のみ取得となっています。もしかすると自分の探し方が悪かったかもしれませんが、KeywordTool#getKeywordVariationsでは1件のみの取得が出来ませんでした。
V200909のTargetingIdea#getを使うと細かい設定ができるため、性能を良く出来ます。体感で70%ぐらい速くなりました。
みんな、Taggerにはnilとか”"(空文字)とかを引数に渡しちゃだめですよ!
>> MeCab::Tagger.new.parseToNode(nil)
(irb):1: [BUG] Segmentation fault
ruby 1.8.7 (2009-04-08 patchlevel 160) [x86_64-linux]
単体で動かしていればすぐに気が付いたんだろうけど、デプロイした後で起こっていたのでなかなか気付きませんでした。
HpricotのXPATHではlower-caseとupper-caseは使えなかったんですね。アイター。
ということでさっくりとコードいじりました。
例えばmetaタグのdescriptionを取り出すときに、以下のように大文字になっていると
<meta NAME="DESCRIPTION" ...>
次のようなxpathでは取り出せません。
//head/meta[@name=description]
これを解決するには以下のようにxpathの関数を使うのが理想なのですが
//head/meta[lower-case(@name)=description]
Hpricotでの実現方法が分からなかったのでElem::Travを直でいじるという乱暴な方法で解決しました。
#
# 属性へのアクセスは全て小文字に揃えます。
#
module Hpricot
module Elem::Trav
def has_attribute?(name)
self.raw_attributes && self.raw_attributes.has_key?(name.to_s.downcase)
end
def get_attribute(name)
a = self.raw_attributes && self.raw_attributes[name.to_s.downcase]
a = Hpricot.uxs(a) if a
a = a.downcase if (a && self.name.downcase == "meta" && name == "name")
a
end
alias_method :[], :get_attribute
def set_attribute(name, val)
altered!
self.raw_attributes ||= {}
self.raw_attributes[name.to_s.downcase] = val.fast_xs
end
alias_method :[]=, :set_attribute
def remove_attribute(name)
name = name.to_s.downcase
if has_attribute? name
altered!
self.raw_attributes.delete(name)
end
end
end
end
これでmetaタグのname属性だけが全て小文字に揃います。
もう3週間ほどたっていますが、札幌駅北口にあるヤマイチ根室食堂で食べてきました。
サバの刺身!

色々と盛り合わせ豪華!

北海道の居酒屋は寿司もうまいです。

お店の雰囲気はほんと居酒屋です。座敷に座るタイプの、掘りごたつもありますが典型的な居酒屋スタイルで落ち着くと思います。
以下お店の住所です。
北海道札幌市北区北6条西6丁目札幌駅西口高架下
札幌駅西口JR高架下、サンクスより更に西へ
おいしいスープカレーおごって貰いました!野菜たっぷり、お皿はいつまでも暖かいまま!

辛さレベル3を選んだところ激辛で汗だくになりました。スープがすごく良い美味しいです。おすすめ!
以下お店情報です。
ピカンティホライゾン
札幌市中央区南19条西7丁目2-17
すすきのの勝山さんで牡蠣をたくさん食べて来ました!小粒で味がぎゅっと濃縮されていて体が欲しがる牡蠣です。


北海道って牡蠣の産地がないと思っていたのですがそんなことは無く、厚岸の牡蠣はすごい有名みたいです。天ぷらでも食べたいなー。
上品な野菜スティックを頂いたり、

〆のお蕎麦がまた別格の味わいです。蕎麦そのものも、上にのってる桜海老も、ソバツユもまたどれも優しいんです。

ごちそうさまでした!
近江軍鶏と和食の店。直(じき)で食べてきました。焼き加減が素晴らしい!ものすごくふっくらとした焼き鳥です。

うすはりのグラスで飲む日本酒。すっきりとした味わいと香りが増す感じです。

たっぷりの炊き込みご飯!軍鶏の炊き込みご飯初めて食べました。これは美味い!4人で分けてちょうど良く食べれました。

店内は和風テイストで落ち着く空間、概観は通向けに目立たないようになっています。値段設定はやや高めぐらいですが価格以上に丁寧な料理が食べれますので大満足です。
以下、お店の情報詳細になります。
住所。札幌市中央区大通西18丁目2-12 MMビル1階
交通機関。地下鉄東西線 西18丁目駅3番出口より徒歩約2分
営業時間。18:00~24:00
定休日。日曜日
席数。14席(カウンター6席・テーブル8席)
場所はこちらです。
大きな地図で見る
MeCabで日本語を楽しむサイト、めかるぶ(Mecab-る)をリリースしました!日本語が分解されるって面白い!
http://mecabru.jp/

このサイトでしている事はほんとに単純で、MeCabの解析結果をそのまま画面に表示しているだけです。
この他にリリースしている地域ったーやpimotterでもMeCabは使っていて、もうMeCabなしには生きられない体になってしまいました、YahooAPIのあれじゃ満足できないかも。
でもでも右左にMeCabでの解析結果、YahooAPIでの解析結果を見比べれるのは面白そうです。
仕事でもちょっと使っていますが、このライブラリとしての使いやすさは素晴らしいと思います。テキストプロトコルの偉大さを感じます。あと辞書に単語を足すのが凄く簡単です、パフォーマンスの問題はあるのですが、ちょっとした差分を辞書全体の構築からやり直さなくてもできるのでとっても手軽です。
以下今回のサービスのネタバレです。他は画面だけでした。モデルはありません。
require 'MeCab'
class MecabruController < ApplicationController
def index
@form = Form.new(params[:form])
@form.text ||= DEFAULT_TEXTS[rand(2)]
end
def parse
if (params[:form].blank? || (@form = Form.new(params[:form])).valid? == false)
render :text => "
値を入力して下さい。
"
return
end
m = MeCab::Tagger.new
@nodes = @form.text.split(/[\r\n\t\s ]+/).inject([]){|result, text_node|
n = m.parseToNode(text_node)
while n
result << [n.surface, n.feature]
n = n.next
end
result
}
end
class Form < ActiveForm
attr_accessor :text
validates_presence_of :text, :message => "テキストが入力されていません。"
end
DEFAULT_TEXTS = ["そんなことねーよ
前に俺がクオーターパウンダー頼んだ時、
玉ねぎがみじん切りの玉ねぎになっててわざわざ店まで戻って
「クオーターパウンダーの玉ねぎ違うだろ!」
ってクレームつけたら「?」みたいな感じで首かしげられて
新しいの渡されたけど開いてみたらまたみじん切りの玉ねぎで
「みじん切りの玉ねぎしかないなら予め伝えるべきだろ!」ってクレームつけたら
「いや、でも玉ねぎは玉ねぎですからねえ」みたいな事言われて
「いや、じゃなくて俺がクオーターパウンダー頼む理由は
玉ねぎがみじん切りじゃなくて千切りって理由で買ってるわけであって
それならビックマックたのんだ方がましじゃねーか!」
ってクオーターパウンダーモドキを投げつけたら
「こーまーりーまーすー」
とかいってきたからついでにポテトもばらまいてコーラも投げつけようとしたら
「こーまーりーまーすこぉーまーりーまーすぅー」
とか言いながら手を押さえ付けられたから
「え、何しちゃってんの?暴力?」
って言ってコーラ自分でかぶって
「店長さんよお、お前が手を叩いたから
俺にコーラ全部かかっちまったじゃねえか、どないしてくれますの」
って言ったら「こーまーりーまーすー」
ってまた言ってきたから示談金として
ビックマックとフィレオフィッシュ要求したら、警察に通報されてて捕まった",
"俺は昔H宿のマックでダブルチーズバーガーのLセット頼んだんだけど、
ドリンク置かれた場所がトレーの端だったから
地下行く階段の手前でトレーから落としたのね
あちゃーって顔してレジ見たら店員のお姉さんが笑顔で
「新しいのご用意しますね」って言いながら、
トレー持って立ち尽くしてる俺に小走りでカウンターの中から出てきたのね
多分落ちたカップを拾ったり掃除しようとしたんだろうけどさ
そしたらお姉さんがいきなり
「おきをふんすなっぶ」
とか言いながら落ちてた氷を踏んで豪快に転けたんだよ
そして俺に体当たりしてきて俺はトレーに残ってたポテトを
撒き散らしながら階段を転げ落ちた
お姉さんは体当たりした瞬間俺のみぞおちに二発位パンチしてて
マックの店員ははんぱねぇと思ったわマジで"]
end
以上です。それではよろしければMeCabを楽しんで下さい!
ふとした事で読んできた本を振り返る機会がありましたので、
ここ数年で読んで面白かった本の紹介です。
マキャベリを読むと内製の重要性が分かります。
全てのプロジェクトで共通する考え方と行動を学べます。個人的にソフトウェア開発のプロセスについて書かれた本の中で最高の本です。
自分で自由を選び取る過程と、その環境を理解できます。自発的な行動をしたい、または促したい時に読むと最適だと思います。
変化し続ける事と、学び続けることの大切さ。その姿勢を正してくれる本です。ストイックな気持ちよさがあります。
前半だけ読むと面白いです。「戦争とは他の手段をもってする政治の継続である」
プログラマーにはウィトゲンシュタインが好き人が多いです。ぼくもそうです。プログラミング言語ではありませんが、ここに書かれていることはプログラミングそのものです。
以上です、多いような少ないような感じでした。