The Artima Developer Community
Sponsored Link

Agile Buzz Forum
Finding the Damage

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
James Robertson

Posts: 29924
Nickname: jarober61
Registered: Jun, 2003

David Buck, Smalltalker at large
Finding the Damage Posted: Oct 17, 2005 8:13 AM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by James Robertson.
Original Post: Finding the Damage
Feed Title: Cincom Smalltalk Blog - Smalltalk with Rants
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rssBlogView.xml
Feed Description: James Robertson comments on Cincom Smalltalk, the Smalltalk development community, and IT trends and issues in general.
Latest Agile Buzz Posts
Latest Agile Buzz Posts by James Robertson
Latest Posts From Cincom Smalltalk Blog - Smalltalk with Rants

Advertisement

One of the cool things about BottomFeeder is that I don't have to resort to eyeballing in order to figure things out - I have the full power of Smalltalk in front of me. So, I thought I'd have an objective look at the spam damage from splogs over the weekend. Here's what I did. First, I selected the folder that holds all my search feeds. Then I executed this:


| folder mgr dict |
folder := RSS.RSSFeedViewer allInstances first feedTree selection.
mgr := RSS.RSSFeedManager default.
feeds := mgr getAllFeedsFrom: folder.
dict := Dictionary new.
feeds do: [:eachFeed | | matches |
	matches := eachFeed items select: [:eachItem | 
					eachItem link 
						ifNil: [false]
						ifNotNil: ['*blogspot*' match: eachItem link]].
	dict at: eachFeed title put: (eachFeed items size -> matches size)].
^dict

That resulted in an inspector that looks like this:

Splog Spam Damage

That's a useful view for scrolling through - let's cut things down and create a table that can be easily posted. I'll limit the table to feeds that have at least 10 bad results in them. First, I added a test to the previous script, such that only feeds passing my test get into that dictionary. I have 44 search feeds; 22 of them passed the bad results test. On to the html script:


stream := WriteStream on: (String new: 1000).
stream nextPutAll: '<table border="1" cellpadding="3">'; cr.
stream nextPutAll: '<tr>'; cr.
stream nextPutAll: '<td><strong>Feed Title</strong></td>'.
stream nextPutAll: '<td><strong>Total Items</strong></td>'.
stream nextPutAll: '<td><strong>BlogSpot Items</strong></td>'.
stream nextPutAll: '<td><strong>Splog Percentage</strong></td>'.
stream nextPutAll: '</tr>'; cr.
dict keysAndValuesDo: [:key :value | | total spam percent |
	stream nextPutAll: '<tr><td>'.
	stream nextPutAll: key, '</td>'.
	total := value key.
	spam := value value.
	stream nextPutAll: '<td>', total printString, '</td>'.
	stream nextPutAll: '<td>', spam printString, '</td>'.
	percent := ((spam/total) asFloat * 100) rounded.
	stream nextPutAll: '<td>', percent printString, '</td>'.
	stream nextPutAll: '</tr>'; cr].
stream nextPutAll: '</table>'; cr.
^stream contents

Running that produces the following output:

Feed TitleTotal ItemsBlogSpot ItemsSplog Percentage
IceRocket: "VA Smalltalk"801013
IceRocket: "Squeak Smalltalk"802329
BlogPulse: "Squeak Smalltalk"291552
IceRocket: BottomFeeder806278
BlogPulse: Cincom803443
BlogPulse: BottomFeeder801316
IceRocket: "Dolphin Smalltalk"801620
Feedster Smalltalk804961
Google Blog Search: BottomFeeder803544
Feedster: VisualWorks801013
BlogPulse: Smalltalk803139
IceRocket: Smalltalk803848
Feedster: Cincom802835
BlogPulse: Dolphin Smalltalk571933
BlogPulse: "Cincom Smalltalk"571730
IceRocket: Cincom805569
Technorati: BottomFeeder803139
PubSub: Smalltalk8080100
BlogPulse: VisualWorks802430
Technorati: "James Robertson"804658
Feedster on: "James Robertson"802734
Technorati: Cincom804455

Gives you an idea of the kind of spam attack that was running over the weekend, doesn't it?

Read: Finding the Damage

Topic: IM consolidation begins Previous Topic   Next Topic Topic: 25 years of Smalltalk-80

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use