Porn marketing with Twitter (aka Adult Friend Requests)

Well, they do say that the sex industry does a better job of adopting the newest technology. And in that spirit, I got my first Twitter porn spam. I don’t even use twitter all that much, but when I get an email from twitter telling me that I have a new follower, I am intrigued and will usually click the link to see if I recognize them on their twitter profile page.

Today, I received this email from Twitter:

MelvaTrevino (Trevino216) is now following your updates on Twitter.

A little information about MelvaTrevino:

2 updates
following 981 people

This leads to a a profile with some erotic posts, and urls to adult dating sites that are obfuscated courtesty of

This is just the Twitter version of the Myspace friend request porn spam schemes. (That was a mouthful.) These spams made me tighten security and privacy settings on my Myspace account, and are one more reason why I stopped using Myspace.  Looks like I’ll probably have to do the same for Twitter. (My Bebo account also got crushed by porn friend request spam.)  I predict I’ll start to receive 5-10 Twitter porn spams a week before the month is out…if I don’t tighten the security.

2 things that come out of this:

1. If you run a social network in 2009 or later, you need to crowd source your spam feature. Just look at Craigslist. They provided simple tools to enable the users to police the site for them. I’m not saying it is easy to come up with a good spam filter algorithm on the backend, but it’s a requirement at this point. The networks shouldn’t be surprised if their traffic becomes largely spam, if they don’t take steps to fight the spam.

Twitter, this means that the emails and profile pages for new followers need to have ‘Report Spam’ links built in.

2. Kudo’s to Facebook for handling friend spam better than any other social network that I’ve used. I’ve never gotten a request from an escort service/porn site on Facebook. Great job! (Yes, the Facebook app spam was definitely an issue, but they’ve also committed enormous resources to improving that situation over the years.)

Posted in Uncategorized | Leave a comment

Google Analytics gotcha with java properties files

The unique id given by Google Analytics comes with dashes in it. Refactoring your GA id’s into java properties files will silently kill the variable substitution due to the id’s hyphens. Escape the hyphens to solve the problem.

UA-7341234-1 (will not work)

UA\-7341234\-1 (works)

Posted in Uncategorized | Leave a comment



Posted in Uncategorized | Leave a comment

Safari 4 is replacing FF3 on my Mac

Except when I need add-ons. But damn is it fast for non-work browsing. And the visual history and bookmarking rock!

Posted in Uncategorized | 2 Comments

Eclipse doesn’t have wild card Find function in 2009?

Wow, version 3.4.2 on linux 64-bit.

Can’t search through the current page using a wild card.

It’s supposed to be there (Regular expressions), but maybe somebody made a mistake in this build of eclipse?

Just finding a lot of commonly used productivity functions missing on a daily basis.

Basically, the things that make IntelliJ a joy to use.

Posted in Rants | 3 Comments

Apple iPhoto Flickr Sharing Doesn’t Include Video?

I am continually disappointed with iPhoto’s connectivity. The Apple team cripples it every time. It won’t put videos on Flickr? It throws away meta data when uploading to Facebook? Have you ever tried to upload iPhoto controlled albums by hand? The folder structure is a mess on the filesystem! I love the Faces feature, but Apple make my content too difficult to share. I’m switching to Picasa to manage all my media on my Macbook.

ok, just found that I could drag and drop from iPhoto into Flickr Upoader. That’s a lot better than hunting through the iPhoto folder structure. Now, if only Flickr Uploader didn’t crash all day. Why can’t I just ftp or sftp into my Flickr account? It’s old, stable technology that just works.

Posted in Uncategorized | 2 Comments

Jquery autocomplete plugin fix for single click focus

Jquery autocomplete forces a double click to get the drop down to show up. That’s no good for me. I’m using the jQuery autocomplete plugin instead of a Select box drop down. It needs to have the attributes of a dropdown, with the extra UI goodness of autocomplete pairing down a potentially huge dropdown list.

I’m going to be really lazy. I talked about the problem in a Google group thread here:

Here’s the patched plugin code:


Posted in Uncategorized | 5 Comments

FlickrJ’s ThreadLocal gotcha

If you use Desktop license from Flickr, you have to use the RequestContext class as follows from the FlickrJ examples:

Auth token =;

RequestContext stores the token in a ThreadLocal variable. To be brief, I’m running an app on Tomcat. Tomcat uses a ThreadPool. RequestContext corrupts my app because the threads go back to a pool, they don’t die. So, the token of previous users show up in new user’s requests. Not good, and took a while to track down this bug.

I’ve added checks in my FlickrDAO class to clear out the RequestContext’s threadlocal variables at the beginning of each public method that can be impacted. Now my users authenticate properly with Flickr, and information doesn’t leak between requests.

Posted in Uncategorized | 3 Comments

Where I find value from Twitter

I usually find twitter to be pretty worthless for me my life.

However, tonight (April Fool’s Eve), I went to youtube. Got a 500 error. So, I went to:

However, they don’t parse error messages, so they reported that the site was up.

So, I went to twitter and searched for ‘youtube’, and all the tweets about the service dropping for lots of users showed up.

Point to Twitter.

In much the same way, the only other useful feature I like on Twitter is when it is  paired with GPS on my iPhone so that I can get location aware tweets. I was inside a music venue on Election night this year, wondering where everyone was. I used Twinkle and found out there was a street party outside with cops blocking off the ends to contiain the crowd of Obama revelers. Much better experience than the Independent at that point.

About 1.5 years ago, I was working late in North Beach and I heard explosions that mildly shook the blinds of the building. I couldn’t find information anywhere online. I called some friends, and they could hear the noise and police helicopters. However, they had no idea either. Nothing in the papers or on Google the next day. I still don’t know what caused all of that noise. Twitter would have given me the answer.

So, I guess I like to ask questions from Twitter, that only a service like Twitter can answer. That’s the Twitter value for me. (And the cost is sifting through  the firehose of useless updates about what’s for lunch 🙂

Posted in Tips | Leave a comment

Setting up Hudson, Maven and Jetty Service on Windows

One gotcha with this setup. By default, Hudson will correctly persist all the jobs you create into C:\Documents and Settings\{username}\.hudson

However, Hudson will not attempt to load any of  jobs or configuration from this default location after your first reboot because the Jetty service starts before a user is logged in to the system. i.e. It no longer has a way way to know which user profile to use.

Therefore, you need to manually set HUDSON_HOME in your System Environment Variables to C:\Documents and Settings\{username}\.hudson

Then reboot and all your previous jobs will be happily running.

Maven gotcha:

The maven repository will end up being on your system drive at c:\.m2 after your reboot. It will start in your user directory under .m2. However, when you need to add custom libraries directly to the repository, or update the settings.xml, the proper place appears to be c:\.m2



Posted in Tips | Leave a comment