Pyon's Diary
2003-10-02 舊 平成拾伍年長月漆日 (曇) [更]
ソースコードを讀むための技術。
書留めて置く。
追記: 讀んでゐ無かつた。(2007-09-19)
「書留めて置く。」と書いて置き乍ら讀んでゐ無かつた。改めて讀んでみたが、C 言語を念頭に置いてゐる樣だが、「データの變化を追へ。」と云ふのは何れの言語にも通じるのでは無かろうか。
2005-10-02 舊 平成拾漆年葉月廿玖日 (土・晴) [更]
今のUTF-8のオクテツト數は四。
いやなブログを讀んで知つた。今迄六オクテツトだと思つてゐたのだが、RFC3629(日本語譯)に依ると
UTF-8において、U+0000..U+10FFFF範囲(UTF-16アクセス可能範囲)からの文字は、1から4までオクテットの連鎖を使って符号化される。
[RFC3629 UTF-8, ISO 10646 を変換したフォーマット 「3. UTF-8の定義」より引用]
と成つてゐた。
圖書劵の發行が終了。
(Wikipedia (日本語版) 經由) 圖書カード・ドツト・コムのお知らせに依ると、圖書劵の發行が昨日(2005-10-01)で停止されたとの事。以後は圖書カードと云ふものに統合されるらしい。ふ〜ん。
2006-10-02 舊 平成拾捌年葉月拾壹日 (月・雨) [更]
VMware Player (1.0.2) に Gentoo (2006.1) を入れる。(其之參)
カーネルの再構築が終はつたので、後は必要な應用ソフトのインストールをした。
取敢へず必要なのは、
なので、
# emerge -DNav xorg-x11 xfce mlterm # emerge -Dav --oneshot atokx2
を實行して只管マージを行つた。
xorg-x11 のマージでの注意點。
xorg-x11 のマージをする前に /etc/make.conf に以下の設定を追加して置く。
# For xorg-x11 INPUT_DEVICES="keyboard vmmouse" VIDEO_CARDS="vmware"
atokx2 (ATOK for Linux) のマージでの注意點。
普通にマージすると emerge -e world とかした時に再マージの對象に成つて、CD-ROM を入れて置か無いと成ら無いので、
# emerge --oneshot -Dav atokx2
として、world に含まれ無い樣にして置く。
又、/etc/conf.d/iiim で設定されてゐる環境變數は export する樣に書換へる。
export JUSTSYSTEM_TRIGGER_SHIFT_SPACE=t
然うして置か無いと有効に成ら無い。
追記: (2006-10-04)
結局、コンパイルし終はるのに丸二日掛かつた。
2007-10-02 舊 平成拾玖年丁亥葉月廿貳日己巳 (火・雨) [更]
tDiary で Amazon の商品プレビューを使用する。
現在午前五時。蒲團の上で數時間轉がつてゐるのに全く寢付け無い。
仕方が無いので計算機の電源を入れて、tDiary で Amazon の商品プレビューが使用出來無いかを調べた。
最初に Google で「tdiary amazon 商品プレビュー」を檢索すると以下の頁が見附かつた。
此處に有る amazon_preview.zip を落として來て解凍し、得られた amazon_preview.rb を core/plugin ディレクトリに抛り込むと、フッタ領域の直前に商品プレビュー用のコードが插入された。
然し上記頁にも書いて有る通り、此乃コードは amazon.rb が生成するテキストリンクには作用し無い。百萬人の煩惱生活では、
http://www.amazon.co.jp/o/ASIN/[アマゾン商品コード]/[アソシエイトID]/
で無いと駄目だと書いて有るが、他に無いのか商品プレビューのコードを調べてみた。
商品プレビューのコードでは、
http://www.assoc-amazon.jp/s/link-enhancer?tag=[アソシエイトID]&o=9
が指す JavaScript を讀込んでゐる。ぢやあ其乃中身を觀てみると、
http://www.assoc-amazon.jp/s/link-enhancer-common.js
と云ふ JavaScript を讀込む樣に成つてゐた。で當然の如く其れを開いてみると、商品プレビューのコードが作用する URL には五種類の形式が有る事が判つた。
tDiary の amazon.rb プラグインは商品の URI を Amazon Web サービスを利用して取得してゐて、戻り XML の中の DetailPageURL タグの値を使用してゐる。其乃 URI の形式はキャッシュファイルを確認すると、
http://www.amazon.co.jp/gp/redirect.html?ASIN=[商品コード]&tag=[アソシエイトID]&lcode=###&cID=####&ccmID=######&location=/o/ASIN/[商品コード]%3FSubscriptionId=####################
と成つてゐた。要は此を個別商品リンク(テキスト)と同じ形式、
http://www.amazon.co.jp/gp/product/[商品コード]?ie=UTF8&tag=[アソシエイトID]&linkCode=###&camp=###&creative=###&creativeASIN=[商品コード]
と同じに成る樣に變換してやれば良い。だが商品プレビューの JavaScript を讀んで一寸實驗して觀た所、
http://www.amazon.co.jp/gp/product/[商品コード]?tag=[アソシエイトID]
で有れば商品プレビューは有効に成る模樣。
amazon.rb を改造する。
此等を考慮して次の方針で amazon.rb を改造する事にした。
- amazon_previre.rb を amazon.rb に取り込む。
- amazon.rb#amazon_url が返す URI を商品プレビューの JavaScript が解釋出來る樣に變更する。
上記に基づいて変更した amazon.rb (Rev 1.64) との差分を以下に示す。
@@ -7,6 +7,7 @@
#
require 'open-uri'
require 'timeout'
+require 'uri'
require 'rexml/document'
# do not change these variables
@@ -83,7 +84,11 @@
end
def amazon_url( item )
- item.elements.to_a( 'DetailPageURL' )[0].text
+ asin = item.elements.to_a( 'ASIN' )[0].text
+ uri = URI::parse(item.elements.to_a( 'DetailPageURL' )[0].text)
+ uri.path = '/gp/product/' + asin + '/'
+ uri.query = 'tag=' + @conf['amazon.aid']
+ uri.to_s
end
def amazon_label( item )
@@ -316,3 +321,18 @@
alias isbnImgRight isbn_image_right
alias isbnImg isbn_image
alias amazon isbn_image
+
+# Imported from http://different-view.jp/~vette/108/amazon_preview.rb.html
+add_footer_proc do
+ aid = @conf['amazon.aid'] || ''
+ if not aid.empty? and not @cgi.mobile_agent? then
+ <<-SCRIPT
+<!-- ********** Amazon Item Preview ******************** -->
+<script type="text/javascript" src="http://www.assoc-amazon.jp/s/link-enhancer?tag=#{aid}&o=9"></script>
+<noscript><div><img src="http://www.assoc-amazon.jp/s/noscript?tag=#{aid}" alt="" /></div></noscript>
+<!-- ********** Amazon Item Preview ******************** -->
+ SCRIPT
+ else
+ ''
+ end
+end
此で商品プレビューが効く樣に成つた。
追記: オプションで有効/無効にする。
tdiary.conf にオプションを追加して、
@options['amazon.preview'] = true
としたら商品プレビューが効く樣にしてみた。以下は其れと amazon.rb (Rev 1.64) との差分。
@@ -7,6 +7,7 @@
#
require 'open-uri'
require 'timeout'
+require 'uri'
require 'rexml/document'
# do not change these variables
@@ -83,7 +84,15 @@
end
def amazon_url( item )
- item.elements.to_a( 'DetailPageURL' )[0].text
+ if not @conf['amazon.preview'] then
+ item.elements.to_a( 'DetailPageURL' )[0].text
+ else
+ asin = item.elements.to_a( 'ASIN' )[0].text
+ uri = URI::parse(item.elements.to_a( 'DetailPageURL' )[0].text)
+ uri.path = '/gp/product/' + asin + '/'
+ uri.query = 'tag=' + @conf['amazon.aid']
+ uri.to_s
+ end
end
def amazon_label( item )
@@ -316,3 +325,18 @@
alias isbnImgRight isbn_image_right
alias isbnImg isbn_image
alias amazon isbn_image
+
+# Imported from http://different-view.jp/~vette/108/amazon_preview.rb.html
+add_footer_proc do
+ aid = @conf['amazon.aid'] || ''
+ if @conf['amazon.preview'] and not aid.empty? and not @cgi.mobile_agent? then
+ <<-SCRIPT
+<!-- ********** Amazon Item Preview ******************** -->
+<script type="text/javascript" src="http://www.assoc-amazon.jp/s/link-enhancer?tag=#{aid}&o=9"></script>
+<noscript><div><img src="http://www.assoc-amazon.jp/s/noscript?tag=#{aid}" alt="" /></div></noscript>
+<!-- ********** Amazon Item Preview ******************** -->
+ SCRIPT
+ else
+ ''
+ end
+end
Amazon Web サービスが返す商品詳細頁の URI に商品プレビューが對應して呉れゝば、斯樣な事はし無くて濟むのだが。
處で現在午前八時。きのふ行つて無いし、此乃儘寢ずに仕事に行かなきや。
追記: 設定畫面で切り換へ可能に。(2007-11-03)
商品プレビュー機能を使用する/しないを設定畫面で切り換へ出來る樣に變更した。
以下に差分を示す。リビジョン番號が長いのは新暦 2007/10/22 に UTF-8 版の tDiary に切り換へた爲。
plugin/amazon.rb (Rev.1.48.2.14) との差分。
@@ -7,6 +7,7 @@
#
require 'open-uri'
require 'timeout'
+require 'uri'
require 'rexml/document'
# do not change these variables
@@ -83,7 +84,15 @@
end
def amazon_url( item )
- item.elements.to_a( 'DetailPageURL' )[0].text
+ if not @conf['amazon.preview'] then
+ item.elements.to_a( 'DetailPageURL' )[0].text
+ else
+ asin = item.elements.to_a( 'ASIN' )[0].text
+ uri = URI::parse(item.elements.to_a( 'DetailPageURL' )[0].text)
+ uri.path = '/gp/product/' + asin + '/'
+ uri.query = 'tag=' + @conf['amazon.aid']
+ uri.to_s
+ end
end
def amazon_label( item )
@@ -248,6 +257,8 @@
end
end
end
+
+ @conf['amazon.preview'] = (@cgi.params['amazon.preview'][0] == 'true')
end
unless @conf['amazon.hideconf'] then
@conf['amazon.aid'] = @cgi.params['amazon.aid'][0]
@@ -278,6 +289,8 @@
</select></p>
<h3>#{@amazon_label_clearcache}</h3>
<p><label for="amazon.clearcache"><input type="checkbox" id="amazon.clearcache" name="amazon.clearcache" value="true">#{@amazon_label_clearcache_desc}</label></p>
+ <h3>#{@amazon_label_preview}</h3>
+ <p><label for="amazon.preview"><input type="checkbox" id="amazon.preview" name="amazon.preview" value="true"#{" checked" if @conf['amazon.preview']}>#{@amazon_label_preview_desc}</label></p>
HTML
end
end
@@ -316,3 +329,18 @@
alias isbnImgRight isbn_image_right
alias isbnImg isbn_image
alias amazon isbn_image
+
+# Imported from http://different-view.jp/~vette/108/amazon_preview.rb.html
+add_footer_proc do
+ aid = @conf['amazon.aid'] || ''
+ if @conf['amazon.preview'] and not aid.empty? and not @cgi.mobile_agent? then
+ <<-SCRIPT
+<!-- ********** Amazon Item Preview ******************** -->
+<script type="text/javascript" src="http://www.assoc-amazon.jp/s/link-enhancer?tag=#{aid}&o=9"></script>
+<noscript><div><img src="http://www.assoc-amazon.jp/s/noscript?tag=#{aid}" alt="" /></div></noscript>
+<!-- ********** Amazon Item Preview ******************** -->
+ SCRIPT
+ else
+ ''
+ end
+end
plugin/en/amazon.rb (1.11.2.2) との差分。
@@ -61,3 +61,5 @@ @amazon_label_usedefault = 'Use default image' @amazon_label_clearcache = 'Clear Cache' @amazon_label_clearcache_desc = 'Delete local cache file about book images' +@amazon_label_preview = 'Use Preview' +@amazon_label_preview_desc = 'Check if preview is used'
plugin/ja/amazon.rb (1.11.2.3) との差分。
@@ -77,3 +77,5 @@ @amazon_label_usedefault = 'デフォルトのイメージを使う' @amazon_label_clearcache = 'キャッシュの削除' @amazon_label_clearcache_desc = 'イメージ関連情報のキャッシュを削除する(Amazon上の表示と矛盾がある場合に試して下さい)' +@amazon_label_preview = '商品プレビューを使う' +@amazon_label_preview_desc = '商品プレビュー機能を使う場合はチェックして下さい'
plugin/zh/amazon.rb (1.6.2.2) との差分。
@@ -61,3 +61,5 @@ @amazon_label_usedefault = 'Use default image' @amazon_label_clearcache = 'Clear Cache' @amazon_label_clearcache_desc = 'Delete local cache file about book images' +@amazon_label_preview = 'Use Preview' +@amazon_label_preview_desc = 'Check if preview is used'
固めたものを以下の場處に置いた。
* {{tlink "/depot/tdiary/amazon.tar.gz", "amazon.tar.gz"}}
亦本家との差分が擴がつて了つた。
2010-10-02 舊 平成廿貳年庚寅葉月廿伍日乙酉 (土・晴) [更]
ラリー巡り。
けふもた○ちやんとち○し○と三人でラリー巡り。
けふ廻る積もりだつたのは、
- ブラッセルズ原宿。
- カフェヒューガルデン新宿。
の二店舗。
でもTwitterを見てゐたら、る○る○が神田でセーラー服を着てゐる、とふ情報を入手。急遽再度神田を巡ることにした。
慥かにセーラー服を着てゐた。似合つてゐた。
ラリー巡りの人達がひつきりなしに寫眞を攝つてゐた。丸で人氣アイドル状態。
十二分にセーラー服を堪能して歸宅。面白い一日だつた。