2012年3月31日土曜日

Flash PlayerでユーザPCに保存したデータファイルの場所

Flash Player でクライアントPCに保存した一時ファイルは、Flash版のCookieとも呼ばれる SharedObject として保存されています。

これはオペレーティングシステム(OS)によって保存場所が異なっています。(詳細は下記を参照)
Webサイトごとにディレクトリが作られ、ここに*.solファイルとして保存されています。

SharedObject は、Cookie と異なり有効期限が無く残り続けます。
データを削除する場合は、「Flash Player設定マネージャー」を起動してローカル記憶領域のファイルを削除します。
「Flash Player設定マネージャー」は、Windows であればコントロールパネルから Flash Player をクリックするか、ブラウザで動作中の Flash Player を右クリックして起動します。


・SharedObject のデフォルトの作成場所
http://livedocs.adobe.com/flex/3_jp/html/help.html?content=lsos_3.html
  • Windows XP
    C:/Documents and Settings/username/user_domain/Application Data/Macromedia/Flash Player/#SharedObjects/web_domain/path_to_application/application_name/object_name.sol
  • Windows Vista / 7
    C:/Users/username/user_domain/AppData/Roaming/Macromedia/Flash Player/#SharedObjects/web_domain/path_to_application/application_name/object_name.sol

2012年3月20日火曜日

BUFFALO 地デジHDDレコーダーで「ディスクが見つかりません」のメッセージ

BUFFALO TV用地デジチューナー DVR-1
内蔵の「ディスクが見つかりません」なるメッセージが表示されて、録画した番組が見れない!

これはどうやら、他でも良く起こっている様子です、正しく電源OFFできないと危険っぽい。
もはや家電じゃなくてパソコン機器としての故障率で考えていたほうがいいかも。長期で録画を保存する計画は無理そうです。

復旧方法として、リモコンから
# メニュー > 本体設定 > ディスク初期化

ここに、ディスクの型番が表示されていれば、内蔵ディスクは認識されているようです。
(誠に残念ながら録画した番組を失いますが)内蔵ディスクを初期化すれば再度使えるようになりました。

2012年3月12日月曜日

Twitter APIを利用したRailsアプリをブラウザから起動すると、LoadErrorが発生


Twitter APIを利用したRubyアプリケーションでは正常に起動できたのに、これをRailsに載せてブラウザから起動するとLoadErrorが発生する。
LoadError in Sample1Controller#test1
cannot load such file -- twitter

これはtwitterパッケージが、Railアプリにインストールされていないためです。
RubyGemでTwitter APIをインストールしただけでは、Railsアプリのディレクトリにはインストールされていません。

確認方法(Railsアプリのルートディレクトリでコマンドを実行する)
$ gem list --local
↑ここには、'twitter' が表示されているはず
$ bundle list
↑ここには、'twitter' が表示されないはず

twitterがインストールされていなければ、RailsアプリのルートディレクトリにあるGemfileに、
gem 'twitter'
を追記して、
$ bundle install
を実行します。

WEBrickなどのWebサーバは再起動が必要です。

2012年3月11日日曜日

Twitter4Rで、例外(uninitialized constant)が発生

Rubyで、Twitter API(Twitter4R)を試たところ、タイムラインの取得で例外(uninitialized constant)が発生しました。
試したコードはコレです。
client = Twitter::Client.new(:login => 'userid_01', :password => 'passwd_01')
timeline = client.timeline_for(:public) do |status|
  puts status.user.screen_name, status.text
end

この時の例外メッセージはコレです。
lib/twitter/client/base.rb:77:in `rest_access_token': uninitialized constant Twitter::Client::Error (NameError)
lib/twitter/client/base.rb:16:in `rest_oauth_connect'
lib/twitter/client/timeline.rb:79:in `timeline_for'

これだと本当の原因とメッセージの示す内容が乖離しすぎており、解決は厳しすぎます。
Twitterでは 2010年8月31日に、Twitter APIのBASIC認証が廃止されています。
http://blog.jp.twitter.com/2010/06/twitter-api-oauth.html

現在ではOAuth(オース)で認証しなければなりません。
TwitterのOAuthを利用するためには、Twitterで事前にトークンを発行する必要があります。
登録はココからできます。
https://dev.twitter.com/apps/new

OAuthで行う場合の例
require 'rubygems'
gem 'twitter4r'
require 'twitter'
client = Twitter::Client.new(:oauth_access =>
  {:key    => 'access_token_01',
   :secret => 'access_token_secret_01'
})
timeline = client.timeline_for(:public) do |status|
  puts status.user.screen_name, status.text
end