An observation: Door Store -vs- Vote-For-Me yard signs

Traditional email spam like the unsolicited Door Store ads they drop on my step (in plastic covers to maximize slipping).

Comment spam is a “We’re voting for Mr. Shmiggle” sign put in my yard without my consent.

Now that I’ve worked it out, I understand why comment spam irks me so much more, because it (ab)uses my reputation for its own (search engine) advancement.  But I don’t want to put up a fence by closing comments tho, because I do want my friendly neighbors to visit and talk to me.

So anyway, if anyone using .Text 0.95 is interested, here’s my code to negate the search engine benefit to the comment spammers:

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
	Dim reqURL As String = Request.CurrentExecutionFilePath
	IF reqURL.toLower().indexOf("/archive/")<0 OR Request.Form.ToString()<>"" THEN EXIT SUB
	
	'-- get content
	Dim oWriter As New StringWriter()
	Server.Execute(reqURL, oWriter)
	Dim strResponse As String = oWriter.ToString()
	oWriter = Nothing

	'-- find comment section
	Dim iStart As Integer, iStop As Integer
	iStart = strResponse.IndexOf("<div id=""comments"">")
	IF iStart>0 THEN iStop = strResponse.IndexOf("</div>", iStart)

	If iStart <> -1 And iStop <> -1 Then
		'-- nofollow comment section's links
		DIM strTarget as string = strResponse.Substring(iStart, iStop - iStart)
		DIM strTargetFixed as string = _
			strTarget.replace("<a target=""_new"" href=""http", _
			"<a target=""_new"" rel=""nofollow"" href=""http")
		strResponse = strResponse.replace(strTarget, strTargetFixed)
	End If

	'-- send content
	Response.Write(strResponse)
	Response.End()		'prevent conventional response
End Sub

Just replace the standard Application_BeginRequest procedure with this one in the global.asax.vb file (or absorb mine into it.)  It intercepts outgoing comments and dynamically inserts rel=”nofollow” into any contained links.

It won’t prevent comment spam, but it will negate the search engine benefit to the comment spammer, turning the “Vote-For-Me” signs into mere litter in your yard.

One catch:  this breaks .Text’s inline “Remove Comment” links.  You can still delete them in the the admin area’s Feedback section, tho.  Since the comment spam seems to come in waves, that’s an easier way to delete them all at once anyway.

(I guess my next goal is actually preventing comment spam via a captcha or challenge-reponse mechanism, but til then I feel more luxury of time to explore possibilities.)

Comments closed?

This sucks, but the gambling comment spam has hit a critical limit, and I’ve wasted a stupid amount of time trying to solve it (without luck). 


So I’ve closed commentsAnd now reopened, with my own clever nofollow solution.


To enumerate my frustrations:



* The code for both .Text and Community Server’s code is way too complicated.  Why is an open-source app — which is supposed to encourage hacking from other devs — full of such highly-abstracted code??  A main reason I settled on CS/.Text was because I know ASP.net fairly well (and ASP extremely well).  Unfortunately, the extreme complexity/abstraction and lack of decent docs pretty much cancels that out.  I’ve seen PHP apps which were easier to figure out (and I barely know PHP).


….If I’m going to waste this much time on fixing one little thing (comment spam), it’s so tempting to just write my own.  I specifically tried to avoid that, though, because I have so many other technical time-drains.


Argh!

One more: Motives

Introvert I am, I’m also analyzing my motives for how I’m blogging, and why I’m blogging at all.


My space.  Life gets crowded sometimes.  Work and family roles fill up most of it.  I guess I’m seeking a space all of my own, a “studio” (even if just a virtual studio) where I can work on being (and figuring out) Me.


Publishing.  This is the biggest motivation.  As a web developer, I’ve built a ton of stuff I want to share with the world.  I started doing this a couple years ago and self-publishing it in a section of my business site.  It’s always seemed a bit odd, though, since it wasn’t really business.  (Giving away stuff for free doesn’t pay the bills now does it?).  Furthermore, if that business ever went away, I’d still want to keep doing and publishing that stuff.


Self-Unification:  Sounds weird, and it is.  It falls somewhere between the first two, and has bothered me recently.  It was the final straw that got me here typing now.  I tend to cope with the complications of life by compartmentalizing my life, but many things fit more than one compartment.  The aforementioned publishing issue is one major symptom of this.


I guess these are all facets of the same issue.  I’m a developer at heart (I’d keep coding even if I was suddenly independently wealthy), and that creates tensions I have problems rectifying.  If I was only a developer by day, it’d be fine — I’d leave work at work.  I can’t leave it there though.


Heck, the reason I chose this profession is a story of its own, but one highlight is this:  I was just starting my 4th year of an English Lit degree circa 1997, and still didn’t know what I was going to do with it (and was not a little panicky about that).  I was wrapping up my 2nd or 3rd website when my “A-ha!” moment happened — I realized that a) I loved what I was doing, and b) I could get paid to do it.


I think my second “A-ha” has been more gradual.  A major part of it has been the blog phenomenon (I’ll never forget my confusion at how google suddenly started returning a bunch of schmo developer’s personal sites when I was doing work research, and how it was not only extremely pertinent, but often better than the official documentation!).  Another big part was reading the fairly amazing Cluetrain Manifesto (read it now!), which pretty much just verbalized what had been churning.  This “A-ha” is basically that business is about people, including me, and so I can’t treat my career (my calling?) like a job.  It’s not just what I do, or where I spend 8hrs/day — it’s part of me.


I consider myself extremely fortunate to have found a profession I love (even if it’s still by the “sweat of my brow” ), but I guess that love needs its own space.


I love to code.


(Perhaps that should by my blog tagline?)

Blah Blah BLAH! (aka Goals)

Sheesh, it’s been mere minutes, and that opening post already looks to me like verbal-diarrhea!  That’s the problem with thinking while you talk.


I know I said it was “about me” and all that junk, but what’s the point if even I don’t want to look at it?!?  This is the web after all.  I’ve been reading almost 200 blogs for a couple years now, and I’ve gotten to be a way better skimmer than I ever was in school. 


So: why say it if nobody read it?  


It’s a battle between Expression and Communication.  To define: Expression is about simply “getting something out”.  Communication is about “getting something in” — into someone else’s head.  Apparently I look at language and the web as a medium of communication, but not expression? 


Is Expression of an idea valid on its own, even if nobody hears it?  Why do we speak?  (If a tree falls in a forest and nobody hears it….)


I dunno.  Perhaps I should just boil stuff down anyway. 


I’ll try a list — they’re hard to make wordy. My intentions:



  • Voice: be open and uninhibited, but succinct
  • Subjects:

    • talk about big web/dev/tech news
    • publish lots of my existing web/dev/tech-related tools/code/articles
    • thoughts on life (if you haven’t noticed yet!)
    • obligatory fun/funny links
    • some sort of music features (as-yet-undetermined)

  • Means:

    • That’s just it, though, I’ve got enough means.  This is about the end.  Therefore, Keep It Simple Stupid!
    • And to that end, I’m self-hosting (yes, I am a control-freak), but building atop the .Text blog engine (to avoid creating yet another content mgmt system — done enough of those thanks!)

Works for me.  Heh, I’m sure you care :>

Batter up (aka Voice)

Check check, “sssibilance”


Alright, “hello world” woulda worked too, but I hate clichés.  Now pardon me while I find my own voice…


Reluctant as I am to get near what seem like cliché opening posts, I now understand why they they’re popular.  In particular, the usual statement of intentions — such as “I plan to talk about technical things and my seven beautiful schnauzers” — now makes sense to me.  It’s a way of setting a goal and reminding yourself to pursue it.  The “yourself” part is what’s weird tho…


See, blogging rubs against several parts of my social conditioning — inhibitions in fact.  One is manners: it’s rude to talk about yourself too much.  The other is the avoidance of seeming like a “know-it-all”:  I learned to wrap statements in phrases like “I think” or “that’s my opinion.” 


Blogging is pure vanity,” and vanity is bad, right? 


Those inhibitions just don’t fit here, though, which I realized the moment I started typing.  Basically, a blog (mine anyway — there I go already, case-in-point) is about me, it’s all about me.  Terms like “I think” and “that’s just my opinion” do belong in a conversation (they’re certainly conducive to a friendly one, tho perhaps not as lively of one :>).  Yes, they have their place in a dialog, but not in a monologue.


(Aside:  apparently we Americans aren’t consistent in our -log/logue spelling?  I’m not, anyway.  I never noticed that before.)


So there should be a time and place to be completely self-centered, and it’s more commonly known as introspection.  I am definitely an introvert, so I do plenty of that.  The difference here is that doing this in a blog is introspection-out-loud.  I’m used to filtering what I express, all the way from my grand secret plans for world domination, down to simple parts of speech, which just happens to be conversational-lube.  …Not that I plan to give away my secret plans (suffice it to say it begins just after “get stinking rich”), but I don’t wanna sound or feel stilted either.


This is a journal/log, though, and more personal expression than I’m used to lately.  However, y’all would get bored quick if it was always this verbose.  I just had to get that out of my system first. 


I guess that’s another issue: I do want to take a dump-it-out-first approach here, rather than the filter-and-refine-it for the audience style I learned as an English major.  It’s a forest-for-the-trees situation: I feel like my unwavering focus on succinct expression has made me miss larger ideas. (Ironic bit here: I just spent a lot of effort expressing that very thought in language — hopefully it’s not always a catch-22).   *


Anyway, hopefully saying it out-loud and without reservation will pave that road for an interesting journey.  …So that’s my intention for this blog: to express myself without the cruft of social inhibitions. 


That’s one intention, anyway.  I’ll get to the other(s?) shortly…



* (Ironic bit#2 here: I just re-edited the post for succinctness anyway, so perhaps the old-school first draft/final draft approach is the answer to my bad edit-as-you-think habit).


So, is this thing on?