2004年3月2日
リンク収集
すんませんです。この間気づいて自分の手元では治したのですが、公開してませんでしたよ。自分の環境ですとフィルターの方では収集してるけどもプラグインの方が機能してくれてなくてHTMLでは空っぽになるって症状でした。どうもlocalってのがいかん、と起こられているっぽかったので、エラーにならない程度に適当に対処してみました。うちじゃこれで動いてますが、いかがでしょうね?
def plug(opt)
str = ''
str0 = ''
link = ''
monthlist = []
@months.reverse.each{ |i|
file = i.to_s + '.link'
d = Time.local(i[0..3], i[4..5])
if File::exist?(@logDirectory + file) then
monthlist << i.to_s
str << "<h2><a name=\"#{i.to_s}\">#{d.strftime2('%Y年%m月')}</a></h2>\n<ol>\n"
open(@logDirectory + file, "r"){ |f|
f.each{ |line|
date, text, url ,title = line.split(/\t/)
dmonth = date[4..5].to_i
dday = date[6..7].to_i
#str << %!\t<li><a href="#{url}">#{title}</a>(#{dday}日)</li>\n!
str << %!\t<li><a href="#{url}">#{title}</a>!
if @allDiaries.key?(date) then
link = date2monthlyfilelink(date, true)
str << "(<a href=\"#{link}\">#{dday}日</a>)</li>\n" unless url.nil?
else
str << "</li>\n"
end
}
}
str << "</ol>\n\n"
else
str << "<h2>#{d.strftime2('%Y年%m月')}</h2>\n<ol>\n"
str << "\t<li>なし</li>\n</ol>\n"
end
}
str0 << "<table><tr>"
monthlist.each{|elem|
str0 << "<td><a href=\"\##{elem}\">#{elem[0..3]}年#{elem[4..5]}月</td>"
}
str0 << "</tr></table>"
str0 << str
return str0
endこんな感じ。たぶんfilter/pick_up_links.rbは修正しなくてもいいはず。
2004年3月3日
NETWORK
TM Networkのシングルですが、今日買ってきました。発売されることは知っていたのですが、すっかり忘れてまして買ってないことに昨日気づいたのでした。TAKE IT TO THE LUCKYがやはり良いです。昔の曲調とはまったく異なってますが今回のこういう感じも好きなのですんなりと受け入れられたのこと。
うっかり
また小銭入れなくした・・・この前なくしちゃったので奥様がもってたのを頂いて使ってたんですがそれをなくしてしまいました。正確にはコンビニに入ろうとしてポケットを探ったらもうなくなっていた。ぐっすん。
とあるBlogより
アクセスログを見ていたら、 ここ(http://blog.livedoor.jp/sariuri/,トニモカクニモ)からどなたか来ていただいたようでした。で、ボクも見に行ったらなんでかボクのところへのリンクがある!びっくりするやらうれしいやらで・・・どこからここを知ったんだろう?という疑問は残るがnDiary系だった方かな〜と推察。
DateBk
ぼくはPalmユーザーとしてはそんなに長くない。大学卒業して就職してすぐに友人の影響でVisorDeluxeを買ってからだから足掛け8年くらい?でもVisorDeluxeを数年使ってから飽きてしまい、CLIEを買うまでまた4年くらいあいちゃってるし、つまり何が言いたいかって、Palmユーザーでは知らない人はいないであろう『Palm Air Line』というサイトは僕自身はまったく知らなかったってことで。もちろんクリエを買ってからはいろんなPalmサイトを見て回るようになったのでその存在はしったのですが、今日見て回ってうるちに機長さんのとある記事(日記?)にたどり着いたのでした。なんだかステキな話だと思ったので日記に書きたくなったのですよ。みなさんもよかったらどうぞ。 ここ(http://palm.org/f_pal_classic/f_pal_flight_000/p066_gorilla.html,Palm Air Line)です。
2004年3月4日
特定のトピックだけの?
nDiaryUserWikiにて特定のジャンルだけあつめた日記を生成したい、というのがあった。トピックのリストではなくだ。リンク収集フィルター/プラグインのように特定のジャンルの日記だけフィルタ側であつめてtxtファイルに吐き出させてプラグインでHTMLに挿入していく?それはすぐかけそうだがプラグインだけですませる方法はないものか。
notさんが書いておられたが、プラグインの場合は親?がTopicクラスなのでってあるので、日記本文は抜いてこれない?のかな??たしかできなかったような。以前ためしてうまくいかずに暴れた記憶がある。
そもそも、トピックのタイトルだけならともかくその後に連なっている日記本文までどうやってひっぱってきたらいいんだい?割とめんどくさいなぁ。だからいままでフィルタorプラグイン化してなかったのか。納得。
class Filter
def pick_up_diary(str, type)
return unless @diary.kind_of?(LastDiary)
@topic_diary ||= []
@diary_topic_flag ||= false
case type
when :TOPIC
str.scan(/.*\[CLIE\]/){
@ptopic = str
@diary_topic_flag = true
}
when :P, :CODE, :BLOCKQUOTE, :DL, :UL, :QUOTE
if @diary_topic_flag then
open(@diary.logDirectory + '200403.pdiary', "a"){ |f|
f.puts "#{@diary.date}, #{@ptopic}, #{str}"
}
@diary_topic_flag = nil
end
end
end
endてな感じで書けば、txtファイルに日付とトピックとそれにつづく日記が抜き出せるけど、HTMLのほうを抜き出したほうがいいんだろうなぁ。when :P, :CODE, :BLOCKQUOTE, :DL, :UL, :QUOTEてのを全部AFTER〜て書き換えればいいのか?それにこれ最新日記のだけだし、ジャンルはconfファイルで設定するのでなく中で直書きだし。まぁ、どなたかの参考になれば。
class Filter
def pick_up_diary(str, type)
return unless @diary.kind_of?(LastDiary)
@topic_diary ||= []
@diary_topic_flag ||= false
case type
when :TOPIC
str.scan(/.*\[CLIE\]/){
@diary_topic_flag = true
}
when :AFTER_TOPIC
@ptopic = str
when :AFTER_P, :AFTER_CODE, :AFTER_BLOCKQUOTE, :AFTER_DL, :AFTER_UL, :AFTER_QUOTE
if @diary_topic_flag then
open(@diary.logDirectory + '200403.pdiary', "a"){ |f|
f.puts "#{@diary.date}, #{@ptopic}, #{str}"
}
@diary_topic_flag = nil
end
end
end
endこのくらいでどうだろう?
2004年3月6日
pick_up_diary
いかん。filter/pick_up_linksを見たりfilter/rssを見ながら鼻歌交じりに適当に書いて、このくらいで参考になりますか〜?なんてアップしておいたらWikiにまんまひろわれてた。アレはジャンルがCLIEなのをファイルの中に直書きしてるし、なによりもそのフィルタだけではHTMLは生成できませんです。特定のジャンルのトピックのHTMLを抜き出してtxtファイルにはきださせるだけだから、そういうのをご希望な方はHTMLファイルに吐き出させるプラグインを作ってみてくださいね、という小人さん向けだったのですが(笑)
しかも最新月のしか抜き出してこないような仕様で書いてるし。見たところリアクションないのでこのまま埋もれさせておこうっと。念の為Wikiの方にもプラグインがないとHTML生成はできませんよって注を足しておきました。自分で作っておいてあれですが片手落ち(という表現でいいんだっけ?)だよね。
2004年3月7日
今日はゲーム三昧
今日は昼に起きたら天気がよかったので、とりあえず図書館へ行ってみた。一人です。めぼしい本はなかったが、CWニコルさんの本を1冊読んで図書館を出てみると雪が降っていた。家を出たときは日が照っていたのに・・・寒いのでポスフールで買い物をしてちょっと温まろうと思ったら、なんと今日は開店1周年だったらしく結構な値引きをしていてつい買いすぎてしまった。買うものは奥様に頼まれていたんだけど余計なものも安くてつい買ってしまったのことよ。オトコのくせに食材を買うの好きなんです。
で、帰ってきてTalesWeaverをずっとやってました。6時からだから8時間くらいやっていたらしい。まぁ、途中でジャンクスポーツを見たり、ネットで調べ物をしたりだから6時間くらい?クエストとかストーリーが進行したり、とUOやEQなどとはちょっと違う感じ。あ、UOは一応話が進行してるんだったっけね。でもクエストはあまり豊富でないし。なんとなくやめられない。
2004年3月8日
2004年3月9日
携帯
なんでかボクあてに機種変更のお誘いの手紙がauから来た。もちろんauの携帯を使っているわけだが、奥様宛てはないのになんでボクだけ?パケット代が多いから?だからCDMA 1X WINの案内が?
今月末に新しいWINな機種がでるらしい?(*1)のでそれを待ってみたいのだが、この機種変更の案内についてるクーポンは今月いっぱいが有効期限なのでした。
2004年3月11日
CLIE Mail
ここ(http://homepage2.nifty.com/visor/,Visorの衣裳部屋)を読んでて気づいたのだが、CLIE Mailの挙動が変な原因がわかったわけで。CLIE Mailで受信したメールに添付ファイルがあると、保存しようとするとメモリースティックではなく本体のメモリに保存されてしまうんだな。でDocument To Goを削除すると元通りの動作になるらしい。はやく本家で改善してくれないかなぁ>XLSoftさん。
ちなみにPDFファイルが添付されている場合、保存しようとすると受信しますか?と聞かれて、はい、と答えると赤外線で受信できませんでした、何てこと言われる。そんな風に受信したいと言った覚えはナイ。
2004年3月14日
bookstore_x
きっと一歩さんから反応があることでしょうが、気づいたので反応しておこう。 ここ(http://mas-r.s6.xrea.com/diary/200403.html#d13_t1,Webの恥は書き捨て)。
僕の場合は、splitでエラーはかれるのってRuby1.8〜だと正規表現をちゃんとしろってよく言われることが思い当たりますが・・・Regexpをつかったり囲むのを//にしたりって作業で治ったのですが。
続レイアウト変更
昨日からの続きでスケルトンファイルとかCSSファイルとかをいじっていた。今日は過去日記のレイアウトの調整とトピックス一覧のレイアウトの調整。あと、以前つくった標準添付のカレンダーを改造した、カレンダー一覧を過去日記に埋め込んでみた。
ちなみに、カレンダー一覧ってのは、プラグインで年を指定してやると、1ヶ月カレンダーを12個分羅列してくれるってのです。
def plug(opt)
require 'date'
begin
require 'date/holiday'
holiday_flag = true
rescue LoadError
holiday_flag = false
end
str = ''
unless opt['year'].nil?
y = opt['year'].to_i
else
if self.kind_of?(LastDiary) or self.kind_of?(Topics) then
y = @diaries[0][0..3].to_i
elsif self.kind_of?(PastDiary) then
y = @targetMonth.to_i
end
end
topic = {}
m = []
1.upto(12){|i|
m << sprintf("%04d%02d", y, i)
}
1.upto(12){|j|
thismonth = m[j-1]
monthlink = date2monthlyfilelink(thismonth)
alldiaries = @allDiaries.keys.sort
if opt['lang'] == 'en' then
wdayname = %w(Sun Mon Tue Wed Thu Fri Sat)
mo = Time::local(y,j).strftime("%Y/%0m")
elsif opt['lang'] == 'en2' then
wdayname = %w(Su Mo Tu We Th Fr Sa)
mo = Time::local(y,j).strftime("%Y-%0m")
else
wdayname = %w(日 月 火 水 木 金 土)
mo = Time::local(y,j).strftime2("%Y年%0m月")
end
css = %w(sunday monday tuesday wedneday thursday friday saturday)
open(@logDirectory + thismonth + '.topic'){ |f|
f.each{ |line|
d, t = line.split(/\t/,2)
t.gsub!(/\t/, " ")
t.gsub!(/<\/?([!\w]+)[^>]*>/i, '')
topic[d[6..7].to_i] = "#{t.chomp}"
}
}
day = (1..28).to_a.concat((29..31).to_a.delete_if{ |d|
begin
!Date::valid_date?(y, j, d)
rescue NameError
!Date::exist?(y, j, d)
end
}).collect!{ |d|
d.to_s
}
1.upto(Time::local(y,j,1).wday){
day.unshift(" ")
}
5.downto(Time::local(y,j,day[-1]).wday){
day.push(" ")
}
str_0 = %Q!<div class="pcalendar">!
enikkifiles = {}
if opt['mode'] == 'enikki' then
Dir::find(@outputDirectory + 'enikki/'){ |file|
if /\/(\d{8})\.(jpg|png|gif)$/i =~ file then
enikkifiles[$1] = '../' * @filename.scan(%r"[^/]+/").size + file.sub(@outputDirectory, '')
end
}
str_0 = %Q!<div class="enikkicalendar"><table class="enikkicalendar">\n!
end
str << <<HTML_END
<table class="calendar_#{j}">\n<tr>
<th></th>
<th></th>
<th colspan="3"><a href="#{monthlink}">#{mo}</a></th>
<th></th>
<th></th>
</tr>
HTML_END
str << "\t<tr>\n"
for i in 0..6
str << %Q!\t\t<th class="#{css[i]}">#{wdayname[i]}</th>\n!
end
str << "\t</tr>\n"
while day.size != 0
str << "\t<tr>\n"
for i in 0..6
d = day.shift
dd = sprintf("%02d", d.to_i)
c = css[i]
if holiday_flag and d != ' ' and Date::new(y,j,d.to_i).national_holiday? then
c = 'holiday'
end
if @allDiaries.key?(thismonth + dd) then
link = date2monthlyfilelink(thismonth + dd, true)
if enikkifiles.key?(thismonth + dd) then
str << %Q!\t\t<td class="#{c}"><a href="#{link}"><img src="#{enikkifiles[thismonth + dd]}" title="#{d.to_s+': '+topic[d.to_i]}" alt="#{d.to_s+': '+topic[d.to_i]}"#{' /' if isXHTML}></a></td>\n!
else
str << %Q!\t\t<td class="#{c}"><a href="#{link}" title="#{topic[d.to_i]}">#{d}</a></td>\n!
end
else
str << %Q!\t\t<td class="#{c}">#{d}</td>\n!
end
end
str << "\t</tr>\n"
end
str << "</table>\n"
}
str_0 = %Q!<div class="calendar"><table class="calendar">\n!
str = str_0 << str << "</div>"
return str
end2004年3月18日
2004年3月20日
購入記録
先月あたりからなんとなく購入した本の記録をつけていなかったので、またつけておこうかな、と思った次第。
- 探偵学園Q 15 (15): 本: 天樹 征丸,さとう ふみや by 天樹 征丸,さとう ふみや" />
Amazon.co.jp: 探偵学園Q 15 (15): 本: 天樹 征丸,さとう ふみや - 著さとうふみや 画
- 訳天樹征丸 原作
- ISBN4-06-363345-4
- 発行講談社
- 発売日2004.3
- 価格\440
- 史上最強の弟子ケンイチ 9 (9): 本: 松江名 俊 by 松江名 俊" />
Amazon.co.jp: 史上最強の弟子ケンイチ 9 (9): 本: 松江名 俊 - 著松江名俊
- ISBN4-09-126579-0
- 発行小学館
- 発売日2004.3
- 価格\410
- ああ探偵事務所 2 (2): 本: 関崎 俊三 by 関崎 俊三" />
Amazon.co.jp: ああ探偵事務所 2 (2): 本: 関崎 俊三 - 著関崎俊三
- ISBN4-592-13395-1
- 発行白泉社
- 発売日2002年12月19日
- 価格\5,303
onlytopic
なんだか盛り上がってる風味?ここ(http://jamano.afz.jp/200403b.html#20_t1,apolune zakki)とかを読んでました。
のところの日記抜粋のような感じのページってのは特定のジャンルのトピックだけではなく、そのトピックの日記本文も一緒にページとしてまとめたい、と?いう風に理解した。
一歩さんがおっしゃるようにそういうのを作るのはそんなに難しくないとは思うけどな〜。ボクが前に書き上げたように、フィルター使って特定のジャンルに属するトピック(とその日記本文付き)を抜き出してファイルに吐き出す→プラグイン使って、そのファイルからトピック一覧と日記を埋め込むってな具合か。でも、それだとトピック一覧には過去日記へのリンクがはられているから、トピック一覧から同ページ内の日記へのアンカーに張り直さないかんのかな?その日記の日付からも過去日記へとぶリンクになってるだろうから、リンクを外すのかな?そこまでしなくても、特定のジャンルのトピックが抜き出せて、目次的トピック一覧が付加できて、1ページに収まれば可?って、一歩さんと同じコトを違う表現でいってるだけか。
2004年3月23日
Ps・・・
追伸ではない。 ここ(http://www.jove21.com/palm/,Palm Space)のことです。せんべさんという方がPalm用のソフトを公開されてらっしゃいまして、頭文字をとって各ソフトにはPs・・・という名前になっているのですよ。ボクのもっているTH55にも2つ使わせてもらっておりまして、PsLinkとPsDBです。
PsLinkというのは[]で囲んだ文字をタップすると、しかるべきソフトに飛んでくれるという便利なモノ。[2004/03/23]とかだと設定した予定表ソフトのその日付を開いた状態で飛んでくれますし、アドレスとかToDoにも設定さえすれば飛んでくれます。特に、メモ帳のメモ同志でリンクしてくれるのがとても便利で重宝しています。あるメモに[hoge1][hoge2]・・・とかって書いておけば目次的な使い方ができるって寸法ですよ。
PsDBはCSVファイルを閲覧編集できるソフト。ボクは無線LANのアクセススポットの管理に使ってます。使っているというか、とあるPalmサイトでそういう使い方を見て真似してみた。でも北海道に住んでるので、使うファイルはFREESPOT(北海道).CSVだけだけどね。Yahoo!BBの無線LANのホットスポットは知ってる限りでは札幌市内だけしかなくて、10件程度しかないのだ。だから、わざわざメモしておかなくても、行動範囲内のアクセススポットは覚えられるってもんです。
2004年3月26日
2004年3月28日
TV番組表
TVscapeなるソフトをTH55に入れてみた。本当はVAIOでGigaPocketを使って番組予約をしてPCに録画できるらしいが、その予約をCLIE付属のTVscapeで予約入れるという使い方らしい。他にもメモリースティックに直接録画するようなのもあるらしく、そっちにもTVscapeと連動させたりって使い方もできるようです。TH55に付属のCDにはTVscapeが入ってなかったので当初対応してないのかと思ったけどCLIEのHPで新しいバージョンのが公開されていたので入れてみた。アップグレードするものだから、元のTVscape旧バージョン入ってないと単体では動かないかな?と心配だったのですが、今回いれたファイルだけでちゃんと動きました。
うちにはGigaPocketなどはないのでPCやメモリースティックに録画はできませんがCLIE上でTV番組をチェックはできるようになりましたとさ。
2004年3月30日
1995(平成7)年3月30日 石岡、同旅館で吉敷竹史の別れた妻の加納通子と出会う(龍臥亭事件) →
2004年3月31日
予定外
あぁ探偵事務所の新刊が出ていたのは昨日気づいたのでいいとしてだ、島田荘司さんの新刊は気づかなんだ。まぁ小説類はチェックしてないんだけども。
- ああ探偵事務所 5 (5): 本: 関崎 俊三 by 関崎 俊三" />
Amazon.co.jp: ああ探偵事務所 5 (5): 本: 関崎 俊三 - 著関崎俊三
- ISBN4-592-13318-8
- 発行白泉社
- 発売日2004年03月29日
- 価格\5,303
- 島田荘司「異邦」の扉に還る時
- 著島田 荘司
- ISBN4-562-03760-1
- 発行原書房
- 発売日2004.4
- 価格\1,470
- 説明書き下ろし小説「海と毒薬」をはじめ、ヨコハマミントンハウスでのジャズ対談、ジャズ・クルマ・バイク・ギター・模型などを語るエッセイに加えデジカメ日記までを収録した、スーパー・ヴィジュアル島田マガジン。
今回の島田さんの本には書き下ろしで『海と毒薬』というお話がある。これについてはちょっと感慨深いものがあった。『異邦の騎士』から『龍臥亭』へと石岡さんの紆余曲折を読んできましたが、今回の話では『異邦の騎士』のときの痛みが癒えて当時を振り返りながら、石岡さんが当時の事件に関係した場所を巡っていく。その時間の経過になんとなく、こう、感慨深いというわけです。なんか変な表現?うまくいえないがそういう感じでした。
bookstore_xとstrip!
一歩さんのところを見て、user/lib/amazon.rbとuser/filter/bookstore_x.rbの2ヶ所を修正してみた。が、以下の如し。
CHK; access; http://www.netdirect.co.jp/ -> ISBN:4-08-873571-4 Filter error: 'sum_price_x' -> NoMethodError: undefined method `strip!' for nil:NilClass (../user/lib/asahiya.rb:137:in `parse_bibinfo'../user/filter/sum_price_x.rb:243:in `join'../user/filter/sum_price_x.rb:243:in `sum_price_x'../user/filter/sum_price_x.rb:243:in `each'../user/filter/sum_price_x.rb:243:in `sum_price_x'../user/filter/sum_price_x.rb:142:in `scan'../user/filter/sum_price_x.rb:142:in `sum_price_x'./ndiary-lib.rb:231:in `send'./ndiary-lib.rb:231:in `filter'./ndiary-lib.rb:229:in `each'./ndiary-lib.rb:229:in `filter'./ndiary-lib.rb:481:in `makeParagraph'./ndiary-lib.rb:541:in `tohtml'./ndiary-lib.rb:535:in `each'./ndiary-lib.rb:535:in `tohtml'./ndiary-lib.rb:593:in `writeHTML'./ndiary-lib.rb:592:in `each'./ndiary-lib.rb:592:in `writeHTML'./ndiary-lib.rb:735:in `makeHTML'./ndiary-lib.rb:732:in `each'./ndiary-lib.rb:732:in `makeHTML'./ndiary-lib.rb:855:in `makepastdiary'./ndiary-lib.rb:853:in `each'./ndiary-lib.rb:853:in `makepastdiary'./ndiary-lib.rb:923:in `main'C:/www/aturust/public_html/cgi-bin/ndiary/script/diary:20)
[c:/www/aturust/public_html/log/200403.price]
CHK; access; http://www.netdirect.co.jp/ -> ISBN:4-592-17356-2 Filter error: 'bookstore_x' -> NoMethodError: undefined method `strip!' for nil:NilClass (../user/lib/asahiya.rb:137:in `parse_bibinfo'../user/filter/bookstore_x.rb:324:in `join'../user/filter/bookstore_x.rb:324:in `bookstore_x'../user/filter/bookstore_x.rb:324:in `each'../user/filter/bookstore_x.rb:324:in `bookstore_x'../user/filter/bookstore_x.rb:208:in `gsub!'../user/filter/bookstore_x.rb:208:in `bookstore_x'./ndiary-lib.rb:231:in `send'./ndiary-lib.rb:231:in `filter'./ndiary-lib.rb:229:in `each'./ndiary-lib.rb:229:in `filter'./ndiary-lib.rb:481:in `makeParagraph'./ndiary-lib.rb:541:in `tohtml'./ndiary-lib.rb:535:in `each'./ndiary-lib.rb:535:in `tohtml'./ndiary-lib.rb:593:in `writeHTML'./ndiary-lib.rb:592:in `each'./ndiary-lib.rb:592:in `writeHTML'./ndiary-lib.rb:735:in `makeHTML'./ndiary-lib.rb:732:in `each'./ndiary-lib.rb:732:in `makeHTML'./ndiary-lib.rb:855:in `makepastdiary'./ndiary-lib.rb:853:in `each'./ndiary-lib.rb:853:in `makepastdiary'./ndiary-lib.rb:923:in `main'C:/www/aturust/public_html/cgi-bin/ndiary/script/diary:20)
[c:/www/aturust/public_html/log/200403.price]で、bookstore_xにもsum_price_xにもstrip!は使われてない。そんで、修正箇所を戻してみたけどエラーは止まらず。なんでやねん。
エラーメッセージを眺める・・・・asahiyaって見えますね。user/lib/asahiya.rbの中を見てみるとstrip!があった。
stock.gsub!(/\(.*?\).*/,'').strip!これだ。しょうがないので、strip!を丸ごと削除してみる。
おや?これだけでエラーが出なくなった。謎だ。修正をするまでエラーメッセージ出てなかったしちゃんとbookstore_xは動いてたのに、修正後はエラーが出て、修正箇所を戻してもエラーが消えないってのは??でもとりあえず動くようになったがいいんだろうか。
お騒がせしてすいませんでした〜。

















