タグクラウド

2008年05月17日

ウィルコムは端末固有情報を通知できないのでGREE不可

ウィルコムの端末は、端末製造番号など、端末固有情報をHTTPヘッダでwebサーバに通知する機能がありません。なので、個体識別番号を使って認証を行っているサービスは使うことができません。

例えばGREEとか。

GREEの招待状をもらったのに、ウィルコム端末からは「端末製造番号を通知してください」というエラーで登録できませんでした。PCからの登録も試みましたが、ドコモ、au、ソフトバンクのうちいずれかのアドレス入力が必須なので断念。

この程度の機能、ウィルコムもさっさと対応してほしいです。
ラベル:ウィルコム
posted by maeda at 15:15| 島根 ☀| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年05月16日

WebryReaderが無意味にサーバにアクセスする件

BIGLOBEがサービスしているweb型RSSリーダー「WebryReader」が、Perfume blog RSSフィードでサービスしているフィードを無意味に激しくアクセスしにきてます。実害は無いですが気に入らないです。

約10秒の間に同じコンテンツを繰り返し取得しています。
まさか、購読者の数だけ繰り返し同じRSSを取得している?


60.238.6.152 - - [15/May/2008:17:47:44 +0900] "GET /blog_feeds/nocchi.xml HTTP/1.0" 200 2786 "-" "WebryReader/1.0 (http://webryreader.biglobe.ne.jp/)"
60.238.6.152 - - [15/May/2008:17:47:44 +0900] "GET /blog_feeds/nocchi.xml HTTP/1.0" 200 2786 "-" "WebryReader/1.0 (http://webryreader.biglobe.ne.jp/)"
60.238.6.152 - - [15/May/2008:17:47:44 +0900] "GET /blog_feeds/nocchi.xml HTTP/1.0" 200 2786 "-" "WebryReader/1.0 (http://webryreader.biglobe.ne.jp/)"
60.238.6.152 - - [15/May/2008:17:47:44 +0900] "GET /blog_feeds/kashiyuka.xml HTTP/1.0" 200 3469 "-" "WebryReader/1.0 (http://webryreader.biglobe.ne.jp/)"
60.238.6.152 - - [15/May/2008:17:47:45 +0900] "GET /blog_feeds/kashiyuka.xml HTTP/1.0" 200 3469 "-" "WebryReader/1.0 (http://webryreader.biglobe.ne.jp/)"
60.238.6.152 - - [15/May/2008:17:47:45 +0900] "GET /blog_feeds/kashiyuka.xml HTTP/1.0" 200 3469 "-" "WebryReader/1.0 (http://webryreader.biglobe.ne.jp/)"
60.238.6.153 - - [15/May/2008:17:58:06 +0900] "GET /blog_feeds/nocchi.xml HTTP/1.0" 200 2786 "-" "WebryReader/1.0 (http://webryreader.biglobe.ne.jp/)"
60.238.6.153 - - [15/May/2008:17:58:07 +0900] "GET /blog_feeds/nocchi.xml HTTP/1.0" 200 2786 "-" "WebryReader/1.0 (http://webryreader.biglobe.ne.jp/)"
60.238.6.153 - - [15/May/2008:17:58:07 +0900] "GET /blog_feeds/nocchi.xml HTTP/1.0" 200 2786 "-" "WebryReader/1.0 (http://webryreader.biglobe.ne.jp/)"
60.238.6.153 - - [15/May/2008:17:58:07 +0900] "GET /blog_feeds/kashiyuka.xml HTTP/1.0" 200 3469 "-" "WebryReader/1.0 (http://webryreader.biglobe.ne.jp/)"
60.238.6.153 - - [15/May/2008:17:58:07 +0900] "GET /blog_feeds/kashiyuka.xml HTTP/1.0" 200 3469 "-" "WebryReader/1.0 (http://webryreader.biglobe.ne.jp/)"
60.238.6.153 - - [15/May/2008:17:58:07 +0900] "GET /blog_feeds/kashiyuka.xml HTTP/1.0" 200 3469 "-" "WebryReader/1.0 (http://webryreader.biglobe.ne.jp/)"



# 三人ともブログ更新してください...
ラベル:Perfume RSS
posted by maeda at 01:59| 島根 ☁| Comment(1) | TrackBack(0) | サーバ管理 | このブログの読者になる | 更新情報をチェックする

Subversionのリポジトリの内容を別リポジトリに移動する。

Subversionのリポジトリの内容を別リポジトリに移動する手順について。

<想定>
移動元: /var/lib/svn/repos
異動先: /var/lib/svn/repos_new

svnadmin dump /var/lib/svn/repos > repos.dump
cat repos.dump | svnadmin load /var/lib/svn/repos_new



移動元リポジトリの特定ディレクトリのみ対象とする場合はsvndumpfilterを併用する。

<想定>
リポジトリ中の /some_dir のみを対象とする

svnadmin dump /var/lib/svn/repos | svndumpfilter include /some_dir > repos.dump
cat repos.dump | svnadmin load /var/lib/svn/repos_new


異動先リポジトリ内の特定ディレクトリ以下にdumpした内容を格納する場合は、--parent_dirオプションを使う。指定したディレクトリは存在しているものでなければならない。

cat repos.dump | svnadmin load /var/lib/svn/repos_new --parent_dir /foo/


●関連ページ
svndumpfilterで「単に番号が飛ばないようにするための空のリビジョンです」を出させない
ラベル:SVN
posted by maeda at 00:04| 島根 ☁| Comment(1) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年05月13日

気象予報士試験勉強のブログを始めた

8月の第30回試験に向けて、実技の勉強のために勝手にその日の気象の解説をするブログを始めました。日々まじめに天気図を解析するモチベーションになるはず。

http://harerun.seesaa.net/

仕事で気象警報・注意報を処理するプログラムを書いていたらいつの間にか気象にのめり込んで、今年の1月に初めて気象予報士試験を受けました。結果は一般知識と専門知識のみ合格。実技で落ちました。

次回と次々回は学科免除で受験できるので、なんとしても合格したいです。まじめに勉強するために、ブログで毎日天気の説明をすることにしました(気象業務法に抵触しないように)。
ラベル:気象予報士
posted by maeda at 00:11| 島根 ☀| Comment(0) | TrackBack(0) | 気象 | このブログの読者になる | 更新情報をチェックする

2008年05月11日

Redmineが最も使われている国は日本?

Googleで「redmine」というキーワードで検索を行う回数が最も多い国は日本のようです。Redmineの作者であるJean-Philippe Langが住んでいるフランスが2位。1位と2位の差は異常と感じるほど圧倒的です。


GoogleでRedmineというキーワードがどの程度検索されているかをグラフ表示するGoogle Trendsで、キーワードredmineの結果を調べてみました。

Google Trends: redmine
http://www.google.com/trends?q=redmine&ctab=0&geo=all&geor=all&date=ytd&sort=0

グラフに載る程度に検索回数が増えたのが昨年後半から。そして、検索が行われている国は圧倒的に日本です。言い方を変えると海外におけるRedmineの利用は非常に低いということ。どこに原因があるのか、興味深いです。

google_trends_redmine.png
ラベル:redmine
posted by maeda at 10:07| 島根 ☁| Comment(0) | TrackBack(0) | IT | このブログの読者になる | 更新情報をチェックする

2008年05月10日

webで公開する資料を作るにはGoogle Docsが便利

Google Docsで作った文書は、「公開」機能を使えばHTML化してweb上に公開することができます。作成から公開までweb上でのオペレーションで完結するため、webで公開するための文書はGoogle Docsで作るのが便利です。

文書を公開するには、文書の編集画面の右上にある「公開」タブの中の「公開する」ボタンをクリックします。

google_docs_publish.png

以下は、Google Docsのスプレッドシートで作成した文書を公開した例です。公開設定を行うと、固有のURLが割り当てられ、インターネット上で閲覧できるようになります。JavaScriptやActiveXを使わない純粋なHTML+CSSで記述されているため、多くの環境で閲覧できます。

GAME オリコンランキング推移:
http://spreadsheets.google.com/pub?key=proSItWcJi5lX8HWlq5bmAA
ラベル:Web制作 Google Docs
posted by maeda at 23:45| 島根 ☔| Comment(0) | TrackBack(0) | IT | このブログの読者になる | 更新情報をチェックする

2008年05月07日

Google検索結果 1位と2位のアクセス数の違い

4月30日ごろから、Googleで「redmine」を検索するとRedmine.JPがトップに表示されるようになりました。これによって、Googleで「redmine」を検索した結果からのアクセスが約1.4倍になりました。

1位と2位で、これほどアクセス数が違うとは思っていませんでした。

redmine_jp_analytics_20080505.png


redmine_jp_google_top.png
ラベル:google
posted by maeda at 00:25| 島根 | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年05月06日

Radiant CMSでPerfumeブログのRSSフィード

PerfumeのオフィシャルブログはRSSが出力されていません。日々更新をチェックしにいくのもアミューズにお願いするのも面倒だったので、自分のサーバでRSSフィードを生成・提供するようにしました。
配信するのはタイトルとURLのみで、ファンクラブ会員限定コンテンツである本文の配信は行いません。

http://perfume.yurufuwa.jp/blog_feeds/


このフィードは、オープンソースのCMS「Radiant CMS」と、Radiant CMSのテンプレート上で直接Rubyコードを実行できるようにするエクステンション「Back Door」を使って生成しています。

http://www.radiantcms.org/
http://backdoor.rubyforge.org/


■処理の流れ

  1. Radiant CMSがRSSリーダーからのHTTPリクエストを受け、該当するテンプレートの処理を開始。
  2. Back Doorによりテンプレート内のRubyコードが実行される。オフィシャルブログのHTMLを取得、必要な情報を切り出しRSS生成。
  3. Radiant CMSが生成されたRSSを返す。


■実装
<レイアウト「XML Feeds」作成>
Content-typeを「text/xml」として以下の内容のレイアウトを作成します。

<r:content />


<スニペット「tag_perfume_blog_feed」定義>
テンプレート中で「perfume_blog_feed」というタグでRSSを生成できるようにします。タグにするのは、複数のフィード(のっち、かしゆか、あ〜ちゃん、スタッフの各ブログ)を生成する際にRubyコードを使い回せるようにするためです。


<r:tag name="perfume_blog_feed">

require 'rubygems'
require 'hpricot'
require 'rss'
require 'open-uri'
require 'cgi'

FETCH_URL = tag.attr['url']
FEED_TITLE = tag.attr['title']
FEED_LINK = tag.attr['url']
FEED_DESCRIPTION = tag.attr['title']

# 指定されたURLのコンテンツを取得し、Stringとして返す。
def get_html(url)
result = ''
open(url) {|f| result = f.read}
end

# HTMLからblogエントリーのタイトル、URL、更新日付を取得しHashのArrayとして返す。
#
# Hashのキー: :url => blogエントリのURL, :title => タイトル, :date => 更新日付
def extract_blog_entries(html)
result = []
doc = Hpricot(html)
doc.search("div.box_cont_01").search('h4').search('a').each do |e|
url = CGI::unescape(e['href'].sub(/.*set_ref__=http%3a%2f%2f/, "http://")).gsub(/&sid=[^&]*/, "")
date = Time.parse(e.search('span').inner_html.gsub(/\./, "/"))
title = CGI::unescapeHTML(e.inner_html.gsub(/<span.*/, ''))
result.push({:url => url, :title => title, :date => date})
end
return result
end

# extract_blog_entriesで戻された情報からフィードを生成する
def generate_feed(blog_entries)
rss = RSS::Maker.make("2.0") do |maker|
maker.channel.title = FEED_TITLE
maker.channel.link = FEED_LINK
maker.channel.description = FEED_DESCRIPTION

blog_entries.each do |entry|
item = maker.items.new_item
item.title = entry[:title]
item.link = entry[:url]
item.date = entry[:date]
item.dc_date = entry[:date]
end
end

result = rss.to_s
end


html = get_html(FETCH_URL)
if html != nil then
blog_entries = extract_blog_entries(html)
xml = generate_feed(blog_entries)
end
xml
</r:tag>


<RSS出力用テンプレート作成>
以下の内容のテンプレートを作成します。下記はあ〜ちゃんのブログ(http://www.amuse.co.jp/perfume/blog/a-chan/)のフィードの例です。


<r:snippet name="tag_perfume_blog_feed" /><r:perfume_blog_feed url="http://www.amuse.co.jp/perfume/blog/a-chan/" title="Perfume A-CHAN BLOG" />


テンプレートの「slug」はRSSっぽく「a-chan.xml」などとします。レイアウトは、前述の手順で作成した「XML Feeds」を適用します。

以上で完了です。

ピクチャ 4.png

Radiant CMSでは一定時間コンテンツがキャッシュされます。キャッシュが有効である間は、何度アクセスしても実際にはフィード生成処理は行われずキャッシュが使用されます。HTML取得先のサーバへの負荷が軽減されるので好都合です。

Radiant CMSでレスポンスキャッシュの有効期限を変更する:
http://vividtone.seesaa.net/article/94905361.html
posted by maeda at 12:10| 島根 ☀| Comment(3) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2008年04月27日

Radiant CMSでレスポンスキャッシュの有効期限を変更する

Radiant CMSは作成したレスポンスをキャッシュとしてディスクに保存し、次回のリクエストを高速に処理します。

キャッシュの有効期限はデフォルトで5分間ですが、config/environment.rbで設定を変更することができます。

config/environment.rb中でResponseCache.defaults[:directory]などの設定を行っている箇所がありますので、そこに下記のような記述を追加します。

ResponseCache.defaults[:expire_time] = 15.minutes

有効期限をのばすのは、テンプレート内で重い処理を行っている場合のパフォーマンス改善に有効です。
例えば、Radiant CMSを使っているゆるふわPerfumeのトップページではナタリーとはてなブックマークのRSSを取得しています。RSSの内容は5分程度では変わらないことが多い上、取得・処理にやや時間がかかるため、有効期限を15分に変更しました。
ラベル:Radiant CMS ruby Rails
posted by maeda at 21:52| 島根 ☁| Comment(0) | TrackBack(0) | サーバ管理 | このブログの読者になる | 更新情報をチェックする

2008年04月26日

Radiant CMSのセットアップ


  1. radiant /path/to/radiant
  2. config/database.yml編集
  3. rake production db:bootstrap


database.ymlの例:

production:
adapter: sqlite3
database: db/radiant.db
timeout: 5000
ラベル:Rails ruby Radiant CMS
posted by maeda at 12:45| 島根 | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。