/ 最近 .rdf 追記 設定 本棚

log[2010-03-08]



20100308() obsoleteって形容詞だと思うんだけど推測辞書に obsoletedobsoletingが含まれてるんだよね(辞書には載っていないが)obsoleted - Wiktionaryによれば nonstandardだけど一部の分野で使われているということらしい

最終更: 2014-12-05T17:23+0900

[tDiary] spam絨毯爆撃対策

送信元が限られてるのかワンパターンだったのでこれまでは </a>NGドにしてほとんどの spamを防いでいたんだけど今日は手ひどくやられた

ルタはイール方法がよくわからないComment-key Filtertdiary/filter/ に設置したがエラーが出るのでとりあえず最新の 2.3.3.20091124にアップデトしたそうすると plugin/60sf.rbが有効になっているはずなので misc/filter/ルタスクリトをmisc/filter/plugin/ルタに関連する設定などを表示するプラグイスクリトをmisc/filter/plugin/ja/ などにプラグインの言語リソースをイールし設定画面でルタを有効にするといずれのスクリトも読み込まれるようになる

 スパムルタ1: Comment-key Filter & Plugin version 0.5.0

コメトフームにキー文字列を埋め込みコメトが HTMLームを通して投稿されたことを確認するーは日記設置者の決めた文字列と日記の日付によって一意に決められるのである日のキー文字列を一度取得すればその日には何件でも機械的に投稿することができるGETして HTMLを切り刻む手間をかければ最初から機械的に投稿することもできるそんなのは防げない

tDiary-2.3.3.20091124にイールするのなら key.rbmisc/filter/key.rbcomment_key.rbmisc/filter/plugin/key.rbja/comment_key.rbmisc/filter/plugin/ja/key.rbへコピーすれば良いkey.rbというファイル名と KeyFilterというクラス名は対応しているのでkey.rbから comment_key.rbへの改名はやめたほうがいいコピー後にルタを有効にしー文字列を設定する

 スパムルタ2: limit_freq.rb

連投対策同じ IPスからの連続する投稿をはじく30分につき 3件までしか許可しないなど

# coding: utf-8
#
# limit_freq.rb: 
#
#  a spam-filtering plugin of tDiary
#  rejects frequent comments posted from an IP address.

module TDiary::Filter
	class LimitFreqFilter < Filter

		def comment_filter( diary, comment )
			now = Time.now.to_i
			comment_i = Comment_t.new( now, @cgi.remote_addr )

			# 数値形式の日時と文字列形式の IPアドレスの二要素
			# 配列の配列を、日時をもとに昇順にソートしたもの。
			# log = [[123456, "1.2.3.4"], [234567, "5.6.7.8"],...]
			log = []

			require 'pstore'
			ps = PStore.new( cache_path )
			ps.transaction( false ) { |db|
				log = db.fetch( DBRoot, log )

				# 新しいコメントを logに追加する。
				log.insert( ArrayExtension.lower_bound(log){|pair| pair.first - comment_i.time }, [comment_i.time, comment_i.ipaddr] )

				# 古い logを捨てる。
				oldest = now - time_span
				log.slice!( 0 ... ArrayExtension.lower_bound(log){|pair| pair.first - oldest } )

				db[DBRoot] = log
				db.commit
			}

			# 残った logに投稿者の IPアドレスがいくつ含まれるか数え、
			# その数が閾値を超えていないか確かめる。
			count = 0
			if log.all?{|pair|
				count += 1 if pair.last == comment_i.ipaddr
				count < threshold
			} then
				return this_is_not_a_spam( comment )
			else
				debug("limit_freq.rb: spam: the # of comments posted from #{comment_i.ipaddr} exceeds threshold:#{threshold} within the last #{time_span.to_i}seconds.")
				return this_is_a_spam( comment )
			end
		rescue
			debug("limit_freq.rb: BUG: #{$!}")
			return this_is_not_a_spam( comment )
		end

	private
		DBRoot = 'LimitFreqLog'
		Comment_t = Struct.new(:time, :ipaddr)

		def cache_path
			return File.join( (@conf.cache_path || "#{@conf.data_path}cache"), 'limit_freq.data' )
		end

		# どれだけの期間(秒単位)、コメントの投稿頻度の判定に
		# 利用するログ(日時とIPアドレスのペア)を保存するか。 
		def time_span
			30 * 60
		end

		# time_span当たり、何件目の投稿からを拒否するか。
		def threshold
			4
		end

		module ArrayExtension
			# ソート済みだという前提を活かしていない!
			def lower_bound( arr, &block )
				index = 0
				arr.length.times{
					return index if 0 <= yield( arr[index] )
					index += 1
				}
				return index
			end
			module_function :lower_bound
		end
	end
end

やめればいいのに本体もちょろちょろと変更

  • 設定画面における [セキュリ]>[spamルタ]>spamの扱い spamと判定されたツッコミを{非表示にする|捨てる}という項目は tdiary/filter/spam.rbに固有の設定らしいのだがそんなこととは夢にも思わないので最初は自作のルタでスパム判定したコメトが捨てられることに困惑した設定を本体に取り込んで他のルタからも利用しやすくした
  • limit_freq.rblimit-freq.rblimit_--_freq.rb というルタに対しては LimitFreqFilterという名前のクラスを要求するようにした(これらのファイルが複数存在するときは困るなあ読み込み順で最終定義が変わりそ)
  • どういうわけか無名クラスの下に定義された TDiary::Filter定数を参照してエラーになるので ::TDiary::Filterとした
Index: core/tdiary.rb
===================================================================
--- core/tdiary.rb	(リビジョン 44436)
+++ core/tdiary.rb	(作業コピー)
@@ -342,6 +342,22 @@
 
 				@logger.info("#{@cgi.remote_addr}->#{(@cgi.params['date'][0] || 'no date').dump}: #{msg}")
 			end
+
+		private
+			# config: hide or drop spam comment
+			def hide_spam?
+				return @conf.options.include?('spamfilter.filter_mode') && @conf.options['spamfilter.filter_mode']
+			end
+
+			def this_is_a_spam( comment )
+				comment.show = false
+				return hide_spam?
+			rescue
+				return false # comment could be a String(@cgi.referer).
+			end
+			def this_is_not_a_spam( comment )
+				return true
+			end
 		end
 	end
 
@@ -1303,7 +1319,7 @@
 			filter_path = @conf.filter_path || "#{PATH}/tdiary/filter"
 			Dir::glob( "#{filter_path}/*.rb" ).sort.each do |file|
 				require file.untaint
-				@filters << TDiary::Filter::const_get( "#{File::basename( file, '.rb' ).capitalize}Filter" )::new( @cgi, @conf, @logger )
+				@filters << TDiary::Filter::const_get( "#{File::basename( file, '.rb' ).split(/[-_]+/).map{|x|x.capitalize}.join('')}Filter" )::new( @cgi, @conf, @logger )
 			end
 		end
 
Index: core/plugin/60sf.rb
===================================================================
--- core/plugin/60sf.rb	(リビジョン 44436)
+++ core/plugin/60sf.rb	(作業コピー)
@@ -4,10 +4,9 @@
 # Modified by KURODA Hiraku.
 
 SF_PREFIX = 'sf'
-@sf_path = ( @conf["#{SF_PREFIX}.path"] || "#{::TDiary::PATH}/misc/filter" ).to_a
-@sf_path = @sf_path.collect do |path|
-	/\/$/ =~ path ? path.chop : path
-end
+@sf_path = ( @conf["#{SF_PREFIX}.path"] || "#{::TDiary::PATH}/misc/filter" ).to_a.map{|path|
+	path.chomp('/')
+}
 
 # get plugin option
 def sf_option( key )
@@ -128,7 +127,7 @@
 			if File.readable?( path ) then
 				begin
 					require path
-					@sf_filters << TDiary::Filter::const_get("#{File::basename(filename, ".rb").capitalize}Filter")::new(@cgi, @conf, @logger)
+					@sf_filters << ::TDiary::Filter::const_get("#{File::basename(filename, ".rb").split(/[-_]+/).map{|x|x.capitalize}.join('')}Filter")::new(@cgi, @conf, @logger)
 					plugin_path = "#{dir}/plugin/#{filename}"
 					load_plugin(plugin_path) if File.readable?(plugin_path)
 				rescue Exception

 @2010-03-09: IPスブロック

一件二件すり抜けるぐらいはいいかと思っていたがここ数日は毎日なのでいいかげん腹が立つなによりアクセスログを見たらヒト数転送ップが spammerだというのが決定的に許せない節度を知れiptablesはいじれないので .htaccessApacheに拒否してもらう


 @2010-03-11: 対応が早いね

spamコメトがくる月っていうのはいつもの決まった 23か国からのアクセスではなく 10近い国から少数ずつアクセスがあるもんだけど日単位では固定の IPスから数十件の spamがくるのが常だったでも今日は一件一件みごとに IPスが異なっているIPスブロックで次のステージに進んでしまったの

spamコメトの目的が特定の URLへの誘導であるかぎりはコメトに含まれる URLドメインが白か黒かを判定する方法が有効でしょうね外部に問い合わせるのは避けたかったんだけどspamコメトの内容が URLも含めてワンパターンだから実際の問い合わせはごくごく限られた回数にできそうだし悪くないかな

 CodeRepos

ここで上記の comment-keyルタも含めてスパムルタの最新版が管理されていた >http://coderepos.org/share/browser/platform/tdiary/filter


 こぼれ: rel="true"

plugin/00default.rbに含まれるメソnavi_itemを自分でも使っていたのだけどtDiaryをアップデトしたら三番目の引数が真偽値からリンクの rel属性文字列へと変更されているせいで rel="true" なるリンクができていたこうする

def navi_item( link, label, rel = nil )
	rel = "nofollow" if rel == true # backward compatibility

 @2010-03-09: 日記の編集もキッシュベース?

スパムコメト一掃のために YYYYMM.tdcを削除したけど日記の編集画面からコメトが消えないYYYYMM.parserを開くとコメトが含まれていたしこれを削除すると編集画面からもコメトが消えた原因はデータファイルを直接削除するというイレギュラーな操作だけど日記の編集はマスターデータに対して行いたい気もする


20100307() っぱり毛皮骨肉店のバグは存在していたんだ> ICE DROP -ァイナルファンタジータククス裏技集初プレイで遭遇して源氏シリーズやセイブザクイーンが99個売られているのでバラス崩壊自主規制密猟の効果不明な一周目だった

最終更: 2010-03-08T01:18+0900

テキトエ+ォルダペイン

っぱり全画面表示にしていてもエクスプローラーが隠れてしまわないっていうのが一番便利な点だと思います。

基本的にファイルをいろいろ開きまくるタチですからタブとエクスプローラー的なものは結構重要だったりしますw

http://www.haijin-boys.com/weblog/index.php?fuseaction=discussions.replies&discussion_id=4b7556ba877cd8.90673501

自分もエクスプローラビーの価値を理解しないWindows Explorerにもナビゲーション ペインを表示させない人間なのでタにフォルダツリーにそういう価値(エクスプローラが隠れない)があるのを初めて知った

それでも反論はある

  • 最大化しているのに左側にテキト編集と関係ない領域が存在するのが許せない
  • ーカスの管理が面倒くさい

例えばVistaのフォルダ画面はフーカス可能な場所が多すぎる

アドレス欄 > 検索欄 > 状況に応じて変化するツールバー > リストビュー > カラム > (アドレス欄に戻る)

肝心要のリトビーに確実にフーカスを移動する最短手順は Ctrl+E↓だと思っているが他にあるだろうか?そしてエクスプローラがまたよくフーカスを見失うんだそのたびに Ctrl+E

ーボドでアクセスできない機能があってはいけないと思うし状況に応じて変化するツールバーはタブレトで操作しやすいらしいからーカスできなくしたりールバーを消したりするのはいい解決ではないトビーにフーカスするシトカトがあればいいのかなあとすると編集領域にフーカスするシトカトがあるならエクスプローラビーがあっても困らないな

脱線カラムクリックでソトする機能はエクスプローラが気軽にルタトできるツールなら役に立つんだろうけどなにせ表示設定に関して馬鹿だからなにも変更したくないトするときは間違ってカラムをクリックしたときだけだからとにかく邪魔Thunderbirdもメールのリトをカラムクリックでソトできるけどメニーでソト条件を(より細かく)変えられるからカラムクリックはできないほうが使いやすいそもそも最初に設定したとき以外にソト条件を変更したのって間違えてカラムをクリックしたのを戻すためだカラムのすぐ上にタブバーや QuickFolderのブックマークが存在するので今はこれらの操作に余計な気を使わされている

最終更: 2010-03-08T20:41+0900

無線LAN設定Windows 7

ったらしい事前共有キーをこねくりだす必要もなかった

  1. 親機の電源を入れる
  2. PCUSB子機を差す。> 自動ドライバイール完了
  3. 接続先として親機を選ぶ> 「セキュリーを入力してください親機のボタンを押すことでも設定できま
  4. 親機の AOSSボタン(Buffalo)を押して待つ接続完了

「親機のボタンを押すことでも設定できます(という意味のメッセージ)が気が利いている初めて無線LANを導入する人にとっては存在しないパスワドを聞かれているのに等しい状況だろうからこれは助かる

それでも問題はあるわけで

 問題1: インターネトにつながらない

既存の設定済みの Buffaloの無線ルーターの下に新しい無線ルータ(これも Buffalo)を接続したのでどちらも同じ 192.168.11.1(デフト設定)を名乗ってしまったことが原因っぽい無線の問題では不具合が突然起こりよくわからないうちに直ってしまうことがよくあるのではっきりしないけど時系列順に並べると1.DHCPーバーが見つからないと二台目のルーターが報告2.二台目の LANIPスを 192.168.12.1にした3.開通

現実には 12の間に「あれおかしいなという疑問のぐるぐるする時間があり2の行動に根拠はなく問題が起こったことで問題がありそうだと思っていた部分(重複するだろう IP)をいじってみただけだし23の間にも DHCPーバーが見つからないという 1と同じエラーやっと違うエラーが出ていたりする

 問題2: 接続速度が 54Mbps

タスクマネージ「ネトワークタブ「リンク速度カラムで確認してるんだけど理論値 300Mbpsを謳う親機と子機のセト製品なんだから 54Mbpsは間違ってる

子機のセキュリ設定を自動設定された WPA2-PSK(TKIP)から WPA2-PSK(AES)に変更した後で確認したら 270Mbpsになっていた(親機と子機を本来の設置位置に移動すると 84Mbpsくらいになっていたから 300Mbpsにならないのは普通らし)


20100306() [TM-150] SetPoint 6.00が出ていたらしいップデトは基本的に好きだけどSetPointに限り、によってイールはしない設定項目が増えてるらしいので最初にイールするバージョンとしてはいいかもしれない


20100302() [javascript] MSWebブラウザ選択画面にアルゴリズム上のバグか - @IT<<< 15.4.4.11 Array.prototype.sort (comparefn)comparefnundefined でなくかつ この配列の要素について首尾一貫した比較関数 (下記参) でない場合トの振る舞いは実装依存である 例えば実装がクイックソトだった場合 > ランダムソ()とは - 西尾泰和のはてなダイアリ


20100227() 暇人\(o)/速報 : 【速報】ついにロマサガ2が移植決定!!! - livedoor Blog(ブログ << 最初に購入した SFCトはこのロマサガ2閃きシスムが術とは関係ないもんで合成術の一つも使えないままラスボスに突入して詰んだのはいい思い出二周目で倒した(クイックタイムは覚えずにエリクサーがなかったのが一週目の敗因)


20100226() UTF-7っぽい? 参考>IE7においてはCVE-2007-1114を利用することでほぼ確実にUTF-7と誤認させることすなわちXSSを発生させることができます。(そろそろ UTF-7 について一言いっとくか -っぱ日)


20100224()

最終更: 2010-02-26T20:42+0900

[無題]

 数学への不安は一桁の数「数える行為にも影響あり - スラッシト・ャパンから

いやはや、数字を数えるのも難しいものですよ。
{}の次が{{}}で、その次が{{},{{}}}で、次に{{},{{}},{{}, {{}}}}くらいまでは、すぐに分かりますが、
数学が苦手な私には、その次の{{},{{}},{{},{{}}},{{},{{}}, {{},{{}}}}}はなかなか出てこないですねぇ。

こういう話をかみ砕いて順々に展開していっていたの[単行] ドナド・E. クヌース【至福の超現実数―純粋数学に魅せられた男と女の物語】 柏書房った

 [BAD BOY] 絶対値変化量

12週間前の大雨の日に乗って以来トの調子が悪かった重いし変わらないしトワイヤ(in&out)を交換してもらったらワイヤーの先に何もつながってないんじゃないかという軽さ忘れていたよ調整後にさらにちっと伸びたのかチチチチチとトダウンに失敗する段があって手元でアウターをちっと延長した購入した店だと完璧にやってくれるんだけどね


20100218() [ーンベ] 手がかじかむのでこの二日プレイできていない銃より先に 20万もするパンチラスカトを買いました他のスカトの 20倍以上もするこの値付けは明らかに中身に対するものだよね同時入荷の 20分の1の方(こちらも生足)はピンクのスパッツレギ(というらしい)でしたEoEでリーンベル(*´д`*)に安心してうつつをぬかしていられるのはもちろんゲームとしてそれも RPGで大部分の時間を費やす戦闘が面白いからです。そこは tri-Aceですから(自分にとっての tri-Aceァンタジアと SO1の頃はゲーム機を持っていなかった)blogでの開発者ならではの裏話に共感します。>>これはむしろ謝罪文tABについて一方12を持っているアトネリコの 3をスルーしたのは2になったときに戦闘部分が劣化していたのと12通してしょぼいグラックを補って余りあ「ムスメ調合RPGの真骨頂だったツボを押さえた萌え成分の安売りが発売前から目立ったから(ヒロイン増量投下されるネタとそれへの反応)ャラに対する制作者の愛を感じない愛なきところに萌えはありません付け加えると戦闘シスムを評価できるほどの情報も提供せず「なぜ脱ぐのか「何をすると脱ぐのか「脱げば脱ぐほど強くなるなんて解説を繰り広げる公式サトに販促効果はありません


20100216() みりおんぐらむとみねこあでしょうかいされていたほんをきおくしただが本屋で近寄りがたいレーベルだ


20100215() [今日の無] const, ポイン, Bing, 月例パッチ不具, ポイ

最終更: 2010-02-26T19:22+0900

 [C++] const, ポインタ

当たり前のことを書こう1) const int*int* const. ポインタが constなのは後者でポインタの指す対象が constなのが前者2) const char*char*はどちらもポインタ型だけどint*char*ぐらい違う型だと認識すべきconst_castreinterpret_castが使えるという点で関数ポインタやメンバ関数ポインタとその他のポインタを比べたときほど違いはしないようだついでに関数ポインタのサイズ以上の落とし穴を最近知った配列の要素の次のス モ配列の最後の要素の次の次を指すポインタが配列の先頭を指すポインタより大きいとは限らないんだと数値にもオーバーフローがあって数が巻き戻ったりするからむしろ配列として確保されたメモリ領域を一つはみだした部分を指すポインタが配列の要素を指すポインタより大きくなければならないと予め決められている部分に感心すべき

 BingURLの評価が高すぎるんじゃないか?

constで検索したら建設関係ばっかりURLconstが含まれてるだけなのに(ほとんど全て) URLと同じ文字を使って文章を書いてる人らはこの検索結果に満足できる?日本語で検索する場合はマッチするのは本文に限られるし自動で言語ルタまでかかってるようなもので全く問題ないけど

 >>IE全バージョンに含まれる脆弱性発覚そして月例セキュリッチにも不具合 - スラッシト・ャパン

VistaMedia Player ClassicWindows Updateのあとエラー終了するようになるのも 2chで報告されていて自分の所(Vista x64)でも mp3は再生できるけど動画が再生できなくなってるこれも直してほしいなあMedia Player Classic Home Cinemaは終了しないみたいだけどこれは Quick Time系の動画みたいにシークが遅いのでできれば使いたくないーク速度を改善する方法はあるのかもしれないけどコーデックとかルタとかわからんのだよね

Alt+Spaceでシスムメニーを開けない(Alt, Spaceでならできる)動画の再生中はスタトメニーの電源ボタン(スタンバイに設定)を押してもロックにしかならなくてァンが回りっぱなしで驚かされたりもするし(MPC HCがやってるというよりはメア共有の省電力設定が影響してるのかもしれないけれど)

 >>裁断機PLUS PK-513Lで雑誌を裁断してScanSnap S1500Mで取り込みDropboxで共有してGoodReaderiPhoneに入れてみた!! [Mac] [net] [iPhone] [今日の楽] [Shopping] - No Second Life

水を差す。これまでにためたポイトを使ったから○○円得した今回△△ポイト付いたから△△円得したこの二つの合計を割り引いて実質 160円で買えたなんていうのはポイトの価値を二倍に水増しした誇張でし次に何か買うときもポイトを使ったから△△円得したっていいませんか?

恨みがあるわけじゃなくてアマゾンの書籍に付くゴミみたいなポイトだとかーパーでレジ袋を断ったときの 2円引きがなくならないかなあと日頃思っていることを吐き出したかっただ

レジ袋に関してって 2円引いてもらった後でやっぱり手持ちの袋に入りきらないことがわかった場合に袋をもらうことはできるのかとレジの青年に聞いてみたら考えたこともないと彼なら 2円引いてもらった上で快く袋をもらえそうだ


20100214() [ーンベ] エイミア先生の影響でマシンガン一筋のリーンベルさん画面奥から手前に向かって滑り込んできてスカトを翻らせながら反転します。LVが上がらなくってもいいんです。(側宙しながらパイナップル(あるいは犬の糞)を放る姿は二周目で堪能するつも)


20100212() [790FX-GD70] BIOS v1.9 出てた


20100211()

最終更: 2010-02-12T00:42+0900

 >>タイピング技能検定イータイピング・マスタ[模擬試]

一級と特級はやってみるまでもなく無理だ5分で手のひらの筋肉がつりそうになった漢字変換がないだけでこうも疲れ具合が違うとは