« 2009年1月 | トップページ | 2009年3月 »

2009年2月の7件の投稿

2009/02/28

槇原敬之さんの『Personal Soundtracks』は名盤だと思う

最近は音楽とかまったくチェックしていなかったので、かなり入手が遅くなってますが。
Personal Soundtracks
槇原敬之 
Personal Soundtracks
発売:エイベックス・エンタテインメント 
価格:¥ 3,150
ASIN:B001FOSLKQ
発売日:2008-11-19
1. Taking The Central Course
2. 幸せはタイヤを穿いてやってくる
3. Chocolats et Sweets
4. 君の後ろ姿
5. Orange Colored Sky
6. つま先立ちで(笑)
7. WE LOVE YOU.
8. Hey...
9. 僕の今いる夜は
10. Firefly~僕は生きていく
11. The Average Man Keeps Walking
12. Merry-go-round '08 ※初回盤限定ボーナストラック
『Personal Soundtracks』のAmazonカスタマーレビュー Page 1/5 - きまぐれびゅー
これは、名盤だと思いました。今はうちでいるときはエンドレスでかけていたり。
結構切ない歌も多くて、特に『8. Hey...』は、こころが弱っているときに聞くと泣けてきます…このアルバム内では一番好きな曲ですけどね。
そんでもって、初回盤限定のボーナストラックが無いのが(哀)。

2009/02/27

「予言詩メーカー」をブログパーツ化してみました

phaさんという方が作成された「予言詩メーカー」のすばらしさに感動して、思わずブログパーツ化してしまいました(w。
予言詩メーカー
「予言詩メーカー」を作った - phaのニート日記
当たってるような気がする?「予言詩メーカー」 - はてなブックマークニュース

Showpropheticverse001

とりあえずココログの場合、下のフォームによりブログパーツとして登録できます。
【2009.03.02追記】
はてなダイアリーの場合は「はてなダイアリーにも「予言詩メーカー」ブログパーツを設置可能に - 風柳メモ」を参照のこと。
他のブログなどでも設置出来るかどうかは不明です。スクリプト貼付可能であれば設置出来るかなとは思いますが。
■「予言詩メーカー」表示パーツをココログに設置

作者名
提供元
パーツ名
パーツID
設置用HTML
お好みで設置用HTML欄(テキストエリア内)のオプションを変更してから登録することも出来ます。
■覚書など

続きを読む "「予言詩メーカー」をブログパーツ化してみました" »

NewsExplorer:「はてなブックマークニュース」に対応(wedata)

はてなブックマークニュース」が公開されたので、拙作NewsExplorerでも対応してみました。

Nx_hbnews

wedetaにデータを登録しましたので、すでにNewsExplorerをインストール済の方は、そのうち読めるようになるはずです。
もしくは、
ブックマークレット:NewsExplorerClearCache
を実行するか、Firefoxの場合は「ツール(T)」→「Greasemonkey(G)」→「ユーザスクリプトコマンド(C)」→「NewsExplorer clear cache」を実行することで、すぐに対応出来ます。

2009/02/26

はてな☆ログ:はてなスターを利用した足跡ログ取得サンプル

はてなスターは☆を付けたはてなユーザのIDが表示されますが、この仕組みを利用して、あるページにはてなユーザがアクセスしたときに足跡(ユーザID付きのログ)を記録することが可能です。
Google App Engineの学習のために簡易アクセスログ記録ツールを作ったついでに、上記機能を具体的に実装したはてなスターへのパッチスクリプトと、これを使ったサンプルサイトを作成してみました。
■サンプルサイト
はてな☆ログ・サンプル
上記のサンプルを応用すれば、スクリプト(JavaScript)が貼付可能な任意のサイトで、はてなユーザのあしあとを記録することができます(w。
まぁ、逆にスクリプト(JavaScript)有効じゃないと取得出来ないわけですが。
■参考記事など
はてなスターの認証強化について - はてなスター日記で触れられている、
新しい仕様でも、JavaScriptが実行可能な環境で意図的にスクリプトを仕込むことで意図しない☆が付く動作を実行させることが可能ですが、はてなダイアリーやグループなどのJavaScriptを自由に書くことができない環境ではこのようなことはできなくなっています。
の、『JavaScriptが実行可能な環境で意図的にスクリプトを仕込むことで意図しない☆が付く動作を実行させることが可能』な例ということです。

2009/02/22

[JavaScript]GAE_xmlhttpRequest:クロスドメインのHTTP GET(Google App Engine経由)

JavaScriptでクロスドメインなHTTP GETを可能にするライブラリを試作してみました。
gae_xhrequest.js:JavaScriptでクロスドメインなHTTP GETを可能にするライブラリ
動作サンプル
といっても、Google App Engine(GAE)経由で、JSONPで取得しているだけですけどね(笑)。
■使用方法
<script type="text/javascript" src="https://furyu.tea-nifty.com/script/gae_xhrequest.js"></script>
のようにしてスクリプトを読込んだ後、
GAE_xmlhttpRequest({
    method              :   [HTTP Request種別(サポートしているのは'GET'のみ)]
,   url                 :   [取得するURL]
,   onload              :   [正常終了時(HTTP Status Code:200番台)のコールバック関数]
,   onerror             :   [異常終了時(HTTP Status Code:200番台以外)のコールバック関数](省略可)
,   onreadystatechange  :   [ReadyState変化時のコールバック関数](省略可)
,   headers             :   [HTTP Request時に指定するヘッダ要素(連想配列)](省略可)
,   timeout             :   [ローカルタイムアウト時間(秒)](省略時はタイムアウトなし)
,   ontimeout           :   [ローカルタイムアウト時のコールバック関数](省略可・timeout指定時は必須)
});
のような感じでGAE_xmlhttpRequest()をコールします。
コールバック関数は、
{
    status          :   [HTTP Status Code]
,   statusText      :   [HTTP Status 文字列]
,   responseHeaders :   [HTTP Response Headers(文字列)]
,   responseText    :   [応答内容(ページコンテンツ)]
,   readyState      :   [ReadyState(HTTP Request実行段階:1~4)]
,   rspheaders      :   [HTTP Response Headers(連想配列:rspHeaders['Content-Type']のように参照可能)]
}
のような連想配列が引数に指定されてコールされます。

【使用例】
GAE_xmlhttpRequest({
    method              :   'GET'
,   url                 :   'http://www.google.co.jp'
,   onload              :   function(xh){alert(xh.responseText)}
});
パラメータなんかは、基本的にGM_xmlhttpRequest()にあわせてあります(ただし、timeout, ontimeout, rspheadersはオリジナルです)。
……が、もちろんいろいろ制限があります。そもそも"GET"しか出来ないし(苦笑)。
■注意書き
  1. 例によって無保証です。ご使用は個人の責任にて。
  2. HTTP Requestは"GET"のみサポートです。
    当然ながら、"POST"のパラメータである'data'は未サポートです。
  3. headers(HTTP Request Headers)に指定出来る要素は、Google App Engineのセキュリティ上の制限を受けます。
    例えば、"Referer"とかは指定しても無駄です(GAE側で無視されます)。
  4. ReadyState実装はいい加減です。
    onreadystatechangeを指定している場合、GAE_xmlhttpRequest()コールのタイミングでreadyState=1及び2、GAEからの応答があったタイミングでreadyState=3及び4が指定されて連続してコールバックされます。
  5. timeout/ontimeoutを指定していた場合、timeoutで指定した秒数が経過すると、ローカル的に要求がキャンセルされます。タイムアウト後にGAEからの応答があっても、onload/onerror/onreadystatechangeはコールされません。
  6. GAEの制限上、urlで指定したサーバ側が数秒(約5秒?)経っても応答を返さない場合には、エラーとなってしまいます(onerrorを指定していた場合はコールされます)。
    これはtimeout(ローカルのみで使用)とは独立です。
  7. コールバック時、HTTP Response HeaderはresponseHeaders(文字列(String):GM_xmlhttpRequest互換)及びrspheaders(連想配列(Object):独自拡張)のふたとおりで返されます。形式が異なるだけで、中身は同じです。
    responseHeadersだけだと解析が面倒なので、rspheadersを追加しました。rspheaders['Content-Type']みたいにして内容を参照出来ます。
  8. GM_xmlhttpRequest()にある(隠しオプション?)overrideMimeTypeは未サポートです(指定しても無視されます)。
    一応、responseTextの文字コードについてはサーバ(GAE)側で自動認識・変換し、ユーザが意識せずとも済むようにしたつもりです。
  9. リダイレクトはサーバ(GAE)側で自動でおっかけています(urlfetch.fetch()のfollow_redirects=True)。
  10. statusはurlで指定したサーバが返す値が入りますが、statusTextの方はGAE(urlfetch.fetch)では取得できないため、ローカル(ライブラリ)側でstatusを元に作ってます(一部、サーバ(GAE)側から返すものもあります)。
  11. パラメータチェックやエラー処理はすごくいい加減です(ライブラリ・サーバ側とも)。ご了承願います(汗)。
  12. フリーソフト扱いです。転載・改修など、ご自由にどうぞ。
    なお、気づいた点などありましたら、お知らせいただけると幸いです。
■覚え書きなど
  1. GM_xmlhttpRequestの場合は取得したページがUTF-8以外だとresponseTextが文字化けすることがあるため、overrideMimeTypeで文字コードを明示的に指定したりする必要がありましたが、GAE_xmlhttpRequest()の場合、サーバ(GAE)側で文字コードを自動認識・変換し、JSON(P)は常にUTF-8で返すようにしています。
    その上で、ライブラリ内でJSONP呼び出し時にUTF-8を明示的に指定するようにしているため、文字コードはブラウザにより自動変換されるので、ユーザは特に意識せずにすむようになっているはずです。
    もっとも、うまく行かないケースもあると思いますが(苦笑)。
  2. Yahoo!PipesのFetch Pageモジュールを使っても同様のことは可能なので(URLを渡すとページの内容(htmlソース)をJSONPとかで取得できるAPIをYahoo! Pipesで作った(管理人日記) - むぅもぉ.jpとか)今更の感はありますが、
    • PipesのFetch Pageモジュールだと、ちょっと大きなページだと取得出来ない場合がある。
    • Pipesでは日本語ページが結構文字化けしやすい。
    • PipesではHTTPプロトコルの付加情報(ヘッダ・ステータスコードなど)が扱えないが、GAEではある程度扱える。
    といった点で、GAEの方が多少ましかな、と。

大団円

続きを読む "大団円" »

2009/02/21

Tweak AP:AutoPagerize拡張スクリプト(SITEINFO毎の初期ON/OFF状態記憶、ほか)

Greasemonkey版のAutoPagerizeにいくつかの機能を追加するコバンザメスクリプトを試作してみました。

Tweakapsample1

具体的には以下のような機能があります。
  1. SITEINFO単位で、自動ページングの初期状態(ON/OFF)を変更&保存可能に。
    オリジナルでは自動ページングの初期状態は一律ON(AUTO_START=true)ですが、これをSITEINFO単位でON/OFF出来ます。
  2. アイコンクリックで閲覧中サイトのページングON/OFF切替が可能に。
    オリジナルではアイコンにマウスオーバ→表示されたHELP内の「on/off」リンクをクリックだったのを、アイコンクリックのみでトグル切替出来るように機能追加。
  3. アイコン内にページ合計を表示。
…ってこれだけか(苦笑)。しかも、例によって既にだれかやってそうだし…。
■Greasemonkeyスクリプト(Firefox専用)
Greasemonkeyについては、例えばこちらを参照。
■インストール時の注意
本スクリプト(TweakAP.user.js)は、AutoPagerizeより前に読込まれる必要があります。
従って、Greasemonkeyの「ユーザスクリプトの管理画面」画面にて、[TweakAP.user.js](上)→[AutoPagerize](下)の順になるように、並び替えてください。
■使い方
  1. SITEINFO単位の自動ページング初期状態(ON/OFF)変更&保存
    右上のアイコンをマウスオーバすると出てくるHELP画面に、
    default:on to off
    もしくは、
    default:off to on
    と表示されますが、左側のon/offが現在の閲覧ページ(に対応したSITEINFO)の自動ページングの初期状態になります。
    右側(リンクになっている方)のoff/onをクリックすると、初期状態が変更&保存され、次から同一のSITEINFOに対応したページを開くと、保存した状態(off/on)が反映されます。
    例えば、閲覧中のページのURLが^https?://(?:d2?|[^.]+\.g)\.hatena\.ne\.jp/という正規表現(url)を持つSITEINFOにマッチしている場合、この状態でoffをクリックしておくと、これ以降、当該正規表現にマッチするページは全て、初期状態が「自動ページング:OFF」の状態で開かれます。
    なお、クリックした際に、
    • いったん下方にスクロールしてからまた戻る。
    • on→off切り替え時に、アイコンが消えてしまう。
    といった現象が発生することがありますが、これは仕様です(苦笑)。
    閲覧中ページに適用されているSITEINFOを取得するための苦肉の策による副作用だったりします。
    また、Firefoxのメニューで、[ツール(T)]→[Greasemonkey(G)]→[ユーザスクリプトコマンド(C)]に、[Tweak AP - clear all]というコマンドが追加されていますが、これを実行すると、上記で保存した内容が全てクリアされてしまいますので、ご注意を。
  2. アイコンクリックによるページングON/OFF切替
    右上のアイコンをクリックすることにより、閲覧中ページのページングON/OFFを一時的に切替えることが可能です(設定は保存されません)。
  3. ページ合計表示
    右上のアイコン内に、現時点で読込まれている全ページ数が表示されます。
■覚書など
  • 適用されているSITEINFOの情報を取得するのに一苦労……かなり不細工な実装しか思いつかなかった…もっとうまい方法があれば、教えてください。
    GM_getValue()は、他のスクリプトが保存したものは参照できないんだよね……。
    現在適用されているSITEINFOだけでもいいので、簡単に取得できるAPIがAutoPagerize本体に追加されないかな…。
  • SITEINFO毎の初期on/off状態設定&保存機能については、 AutoPagerizeで一覧ページだけでなく個別ページでも過去の記事が継ぎ足されるのはかなり嫌い - つれずれなるままに…が元ネタ。
    個別ページでのページ継ぎ足しに関して、
    なぜ、そのような個別ページでも過去の記事を継ぎ足すようにする必要があるのだろうか?

    普通、ある記事の個別ページを表示するときは、その記事を読みたいのであって、他の記事まで読む気はないことが多い。それなのに勝手に過去の(たいてい今読んでいた記事と無関係の)記事を継ぎ足しされると、無駄な表示処理が見えたり、処理待ちでスクロールができずそこまでの読む勢いが止まってしまったりで、不快に感じてしまう。
    取りあえずのところ、自分は個別ページでも過去の記事を継ぎ足す動作は嫌いだ。AutoPagerizeのSITEINFOを全部編集したいほど嫌いだ。
    という意見を読んで、なるほどと思った。
    確かに、少なくとも使用者側にとってのメリットはあまり思いつかない。
    ただ、
    はてなブックマーク - AutoPagerizeで一覧ページだけでなく個別ページでも過去の記事が継ぎ足されるのはかなり嫌い - つれずれなるままに…
    を見るかぎり、個別ページ継ぎ足しを肯定する意見もあり、難しいところ。
    というわけで、SITEINFO単位でon/offが設定できるなら、どちらの人でも使えるかなぁと。
    もっとも、現状は、一覧用/個別用のSITEINFOにわかれていないサイトはあると思うので、ちょっと小細工してある。
    例えば、
    ^https?://(?:d2?|[^.]+\.g)\.hatena\.ne\.jp/
    という正規表現をurlにもつSITEINFOは、
    http://d.hatena.ne.jp/[id]/
    ※一覧ページ
    にも、
    http://d.hatena.ne.jp/[id]/[date]/[number]
    ※個別ページ
    にもマッチしてしまうので厳密にSITEINFO単位の設定だとかぶってしまうのだけれど、ディレクトリ階層の違いによって区別可能なようにしてみた。
    副作用ありそうだけどね……。

« 2009年1月 | トップページ | 2009年3月 »

戻るリンク追加

カレンダー

2025年5月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

ココログカレンダーPlus(旧2)

検索


    • Web全体 サイト内
    • 蔵書のISBNを入力して下さい
    • はじめる前
      初級者向け
      上級者向け
      ブログ紹介
      結果を表示

コメントリストツリー化

無料ブログはココログ