Spam Attack?

Blogspirit introduced a new anti-spam feature today which allows blogger to ban specific IPs. This is pretty nifty, but it coincides with an enormous increase in traffic spam. I wonder if this is either a weakness in the new system, or the revenge of some blogger who suddenly finds that his old methods of vandalism do not work.

A full list of Internet Protocol addresses (IPs) I’ve banned so far are below, but it appear that most spam comes from only a few sites:


While (edited) examples of the trackback spam are:

hockey Sabres hockey club Sabres
point Four point bed Four
screen Hot screen names Hot
sonia Lady sonia photo Lady

That the spam is coming from the same pattern (Word1 Word2 Word1 Word3 Word2) means that (a) the spam is coming from the same source and (b) the spammer is a poet.

Weird, no?

Full list of IPs banned so far:

Glad to be appreciated

Apparently the “Notes on Rails” project is going well — after the wedding day presentation to my adviser, I now have a contract position to continue developing it through the summer (on top of the doctoral credits for doing the same), plus my school-year-assistantship has been bumped up to a research assistantship in a related area.

Timewise, next semester will be busy but productive. I have only about three hours a week of pre-structured time in the fall, the rest being for research and work. I really like an environment such as this. I’ve never been one for make-work, and the longer I’m in it the more grad school lets you focus on getting things done.

Finishing the Question and Question-List Interfaces

After creating the QuestionList and Question controllers, the next step is to update both of them so that defaults are returned when the user edits the extended fields (which conditions the QuqestionList belongs to, and what options a Question has). Because these are stored in other tables, this information is not presented as-saved to the user, but rather the “defaults” are blank.

Populating forms with defaults from the database

With the help of, the process is pretty simple…

… add a new function to question_list_condition.rb (The QuestionListCondition model)

def self.return_checked_by_condition_id_question_list_id(condition_id,question_list_id)
to_find = find_by_condition_id_question_list_id(condition_id,question_list_id)

“checked” if to_find

And replace the current checkbox line in views/manage_question_lists/_form.rhtml with:

<br /><%= check_box :selected_condition,,:checked => QuestionListCondition.return_checked_by_condition_id_question_list_id(, %>

to QuestionOption controller will be modified in much the same way

in question_option.rb:

def self.find_display_text_by_question_id_option_id(question_id,option_id)
to_return = find(
:conditions => {
:question_id => question_id,
:option_id => option_id

return to_return.display_text if to_return

And in app/views/manage_questions/_form.rhtml, just one line needs to be changed:

<%= text_field :question_options, iterator, :value => QuestionOption.find_display_text_by_question_id_option_id(,iterator) %>

Next up: Display a question list