gem install をしたら、ERROR: could not find gem ******* locally or in a repository が出て困ったときは
gem install *******
をしたら
ERROR: could not find gem ******* locally or in a repository
が出ちゃって困ったわあという方、
gem sources -c
を行って、gemのキャッシュを一旦クリアしてから gem install をもう一回試すとうまくいくかもしれません。
【Rubyでアクセス解析 その6】総仕上げ
・UserIDがuser-agentになっているが、apache提供のユニークIDフィールドや、ユーザのIPアドレスも加味した形でUserIDを振りたい
・apacheログの要素の場所が固定
・アウトプットがまだ
今の段階のソースコードを参照したい方は以下のコマンドでどうぞ
git clone http://github.com/rorkaido/farfalle.git
cd farfalle/
git checkout v1.1
ソースコード中、main.rb の write_access_count のソートの仕方が、けっこうお気に入り(というか苦労した点)です。PV数で降順でソートして、そしてURL文字列で昇順でソートしたりを1行で行っています。
それでは、応援してくださった全国のファン約3名ぐらいの皆様ありがとうございました。私は今日から普通の女の子に戻ります。
【Rubyでアクセス解析 その5】キーワードを抽出する
以下でなんとか出来ました!
require 'uri'
require 'kconv'
$KCODE = 'UTF-8'
URI.decode(ここにURLエンコード文字列を入れる).toutf8
というのを発見するのにだいぶ時間が掛かって、ビールの酔いが覚めました。もう一杯飲もう。
ちなみに、JavaScriptのescape関数でエンコードされた日本語は、上記ではデコードできません。
別途、正規表現で1文字ずつ読み取って、unpackみたいなことをしましょう!ソースコードは、ここには載せませんが、知りたい人は是非コメント欄にリクエストを書いて下さい ><
それから、今回は、モジュールファイルを1ファイルから細切れに分けました。
簡単に言うと、以下のようなことをしました。
### ファイル my_module.rb
module MyModule
def method1
end
def method2
end
def method3
end
end
を分散させて
### ファイル my_module.rb
require 'my_module/method1'
require 'my_module/method2'
require 'my_module/method3'
### ファイル my_module/method1.rb
module MyModule
def method1
end
end
### ファイル my_module/method2.rb
module MyModule
def method2
end
end
### ファイル my_module/method3.rb
module MyModule
def method3
end
end
さーて、あと1〜2回は続く予定です。
今の段階のソースコードを参照したい方は以下のコマンドでどうぞ
git clone http://github.com/rorkaido/farfalle.git
cd farfalle/
git checkout v0.3
【Rubyでアクセス解析 その4】apacheログファイルを読み込む
apacheログファイルを読み込むところまでは、なんとか形にしてみました。
色んな課題が途中で入ってきて大変でしたけどね。
例えば
・apacheログの標準の日時フィールドは[と]で囲まれているから、パースするのが大変
→[と]をダブルクォーテーションに置換して対処
・apacheログの標準の日時フィールドの文字がParseDate::parsedateでは解釈できない
→解釈できるように日時フィールドの値を置換して対処
・apacheログの標準フォーマットではユーザをユニークに判別するフィールドはユーザーエージェントぐらいしかない
→これはしょうがない
そして以下のような課題がまだまだ残ってます!
・keyword取得
・UserIDがuser-agentになっているが、apache提供のユニークIDフィールドや、ユーザのIPアドレスも加味した形でUserIDを振りたい
・apacheログの要素の場所が固定
・アウトプットがまだ
今の段階のソースコードを参照したい方は以下のコマンドでどうぞ
git clone http://github.com/rorkaido/farfalle.git
cd farfalle/
git checkout v0.2
もー、簡単な指標しか出さないのに意外と壁は厚い・・・次回もがんばろう!(たぶん3ヶ月後・・・ってか?)
【Rubyでアクセス解析 その3】機能を絞る
取り敢えずは機能を絞ってプログラムを作らないと、とんでもなく柔軟にいろんな事に対応しなくてはならなさそうな予感がしてきました。
なんでかっていうと
1. 日付ごとにaccess_logファイルが必ずしも作成される訳ではない
2. ブラウザごとにユニークなIDが必ずしも付与されている訳ではない
ですので、以下のような機能に絞れば、それなりに作れそうな気がしてきました。
1. インプットは複数ファイルもOK
2. 日別の指標しか集計しない
3. URLのPVとUU, キーワードの流入数と流入UUしか集計しない
(↑セッションという概念が入ると、ユーザ・日時順にソートしなくてはならないので、インプットがガチガチに固まっていない限り相当面倒)
よしではこれから作るぞ!
