83's

Top > Archives > 2007 > March

March 04, 2007

スパム 05:09

コメントとトラックバックのデータをとってみた。 これほとんどスパム。ここのブログじゃないけど。

+------------+---------------+
| year-month | # of comments |
+------------+---------------+
| 06-08      |            79 | 
| 06-09      |            97 | 
| 06-10      |            17 | 
| 06-11      |            21 | 
| 06-12      |            44 | 
| 07-01      |          1982 | 
| 07-02      |          4222 | 
| 07-03      |           913 | 
+------------+---------------+

+------------+-----------------+
| year-month | # of trackbacks |
+------------+-----------------+
| 06-09      |              22 | 
| 06-10      |               1 | 
| 06-12      |            1179 | 
| 07-01      |             825 | 
| 07-02      |           24787 | 
| 07-03      |            1854 | 
+------------+-----------------+

オレが憂鬱になっている間に先月のトラックバックスパムは約2万5千件もw

昨日やった対策がどのくらい効くかな……。 トラックバックが完全に防げないのはこのブログで実証済みだけど。

スパムのデータ集めてスパムフィルタ作るのも楽しそうだけどww その前にユーザが消えてしまう(´Д⊂)

てか就活のアピールポイントになるので本腰を入れよう……。

March 08, 2007

はてブのおすすめタグの大文字小文字を自分のタグと合わせる 21:30

いいタイトルが思い付かない。はてブでタグ付けるときに↓こうしたい人用の greasemonkeyスクリプトを作った。

スクリプト適用前後

( ´Д`)つfixrecommendedtags.user.js

スクリプト名もfixじゃおかしい気がしてきた。まあ英語苦手だし……。

ブックマークするときのおすすめタグは全部小文字なんだよね。 そこで、もしその中に以前自分が付けたタグがあったら大文字小文字をそっちに合わせるスクリプトです。

ブックマークの中に「CSS」と「css」が混在するなんて許せない神経質な人は 多分おすすめタグをクリックせずに自分でわざわざ入れてたと思うんだけど、 これがあればおすすめタグクリックするだけではぴねす!

てか「CSS」とタグ付けしたブックマークも「css」とつけたブックマークも 一緒に検索されることをさっき知ったんだけど。 おかげでこのスクリプトはただの神経質なブックマーカー向けになりましたw

みんな大文字小文字どうしてんだろ。気にせずおすすめタグをクリックするのかな。 「googleanalytics」とか「csrf」とか「ll」とか見にくいだろ、常識的に考えて……。

就活と研究でこんなことしてる場合ではないはずなのにやってるオレおばかさん。

自分のと同じタグを強調する機能も付きました。

March 09, 2007

この歳になって==と=を間違えるとは 15:40

はてブでタグを除外して絞りこむgreasemonkeyで ==と書くところが=となっていたために、 そのページにあるキャプチャ画像のように編集アイコンとかいろいろゴソっと消えてました。

ちょっと前に直したんだけど、もし使ってくれてる人がいた場合 そういうことですのですみませんでしたという告知エントリ。

March 11, 2007

ActiveRecordを単体で利用する時にテストでfixtureを使うには 23:42

ActiveRecordを単体で使うときってのは、 モデル自体はrequire "active_record"でいいわけだけど テストでfixture使おうと思ったらどうなるんだろうと思ってちょっと調べたのでメモ。 絶対忘れるからね!

ActiveRecord::Base.establish_connectionは今まで

  ActiveRecord::Base.establish_connection(
    :adapter  => "mysql",
    :host     => "localhost",
    :username => "myuser",
    :password => "mypass",
    :database => "somedatabase"
  )

みたいにオレはやってたんだけど、これじゃfixture使うにはダメみたい。

こうする。

ActiveRecord::Base.configurations = YAML.load_file(File.dirname(__FILE__) + "/database.yml")
ActiveRecord::Base.establish_connection

ここのdatabase.ymlはRailsのと同じ。まあdevelopment/test/productionでなくてもいいけど。 どれを使うかはRAILS_ENVで切替える (RAILS_ENVをdatabase.ymlから読んだハッシュのキーにするわけですな)。 だからRAILS_ENVestablish_connectionする前にセットしておかないといけない。 忘れるとActiveRecord::AdapterNotSpecified例外が投げられる。

これで準備が整ったので、テストでfixturesを使いたいなら いつものに加えてrequire "active_record/fixtures"でおk。

  1 $:.unshift File.dirname(__FILE__) + "/../prog"
  2 require "rubygems"
  3 require "test/unit"
  4 require "active_record"
  5 require "active_record/fixtures"
  6 
  7 RAILS_ENV = "test"
  8 require "connection" 
  9 
 10 require "morph"
 11 
 12 class MorphTest < Test::Unit::TestCase
 13   self.fixture_path = File.dirname(__FILE__)
 14   self.use_instantiated_fixtures = true
 15 
 16   fixtures :morphs
 17 
 18   def test_load_fixtures
 19     assert @morph1
 20     assert_equal "aa", @morph1.pos1
 21   end
 22 end

まだこれしか試してないけど、fixture読めてるんできっといいんだろう。

ちなみにrequire "connection"で上に書いた ActiveRecord::Base.establish_connectionをしてる。

今後モデルが増えるようなら、1〜8行目と13, 14は別ファイルに追い出しちゃえばいいね。

あー結局なんも作ってないから今日も研究進んでないけどまあいいや。

そう言えばRailsのdatabase.ymlはERB経由するんだね。豆知識フエタ\(^o^)/

March 12, 2007

スパム2 05:37

某サイトのコメントスパムやトラックバックスパムの件だけど、 コメントのほうはprototype.jsによるpostだけ通すようにした。Rails的にはxhr?。 これはリクエストに以下のヘッダがあるかないかをただ見てる。

X-Requested-With: XMLHttpRequest

すでにJavaScript必須な部分があるからこれでいいや。 今まで来てたスパムは完全に蹴ることができた。 まあ仕様変更直後だから当り前だけど……><

スパマーがこれを偽装するのは簡単だけど、 そしたら独自のヘッダ使えばいいだろうし。

そのときのためにメモっとくか……。最近記憶力ないんだ……。

new Ajax.Request(path, { method: 'post', requestHeaders: [ 'key', 'value', ... ], ...});

なんでrequestHeadersは配列なんだろうね……。

あとトラックバックスパムは参照リンクの有無を見るようにした。 これでも稀にくるみたいだけど、まあ効果はかなりある。