Spam and user responsibility

Twitter, like any communication medium (physical or electronic) has a spam problem. They’ve been able to mostly keep it under control, but it surfaces every now and then. I was talking to a friend about this recently and he noted that certain kinds of spam are easier to detect than others. For example, a tweet full of suspicious URLs may very well be spam. But is an account that never tweets but follows lots of people a spam account? Part of this is an perception issue. I personally don’t care about being followed by (possibly) spam accounts. I get more annoyed if I get a tweet from one of them. However, I do know people who are really careful about who follows them. For Twitter, the question is how to tell spam tweets and spammers apart from legitimate traffic and users.

Getting users to report spammers is perhaps the first line of defense. If a large enough group of people report an account as a spammer, there’s a high probability that it actually is a spammer. But on the users side, what is my incentive to report an account as spam? Unfortunately, I feel that Twitter’s nature plays against it in this regard. In particular, a spam tweet is much less annoying than a spam email. Tweets and the Twitter stream are, by design, ephemeral and temporary. You see something and a few hours later it’s gone. You’re not expected to read each and every tweet and you’re certainly not expected to reply to everything and everyone (unless you’re  a self-styled social media guru, but that’s another matter altogether). Reporting a spammer is a pretty high overhead activity, especially with the current web interface. As far as I can tell, you can’t directly report a tweet, you have to click on the user image, click on the profile button and only then do you see the option to report spam. If I see a spam tweet, the easiest thing for me to do is shrug my shoulders and move on — it’ll be out of sight and out of mind in a while anyway.

Contrast this with email: I don’t reply to each and every email, but I do read most of it and I reply to a lot. Reading and answering emails (especially if they’re technical in nature) are fairly high load activities and my inbox definitely isn’t as ephemeral as my Twitter stream. Consequently, getting spam in my email inbox is correspondingly more annoying, especially if it’s more sophisticated spam (like a phishing attempt). It’s in my own best interests to report spam so that I have less to deal with in the future. Furthermore Gmail (and I would hope, most email interfaces) make it easy to report spam — generally just one click (two if you need to open a menu first, sometimes there’s a confirmation request).

(Aside: Note that Twitter associates “spam-ness” with the user, while email conventions associate it with the email itself. Objectively the two are isomorphic: the sender of spam message is very likely a spammer and a spammer account very likely sends out mostly spam. I find the difference is interface and convention interesting from an HCI point of view.)

An argument could be made that reporting spam is the users’ best interest, irrespective of quality of interface and immediate overhead. But I wonder if even this argument doesn’t quite work in Twitter’s case. Twitter is, and has always been, a largely public medium. Private accounts exist and you can block followers, but by and large you use Twitter to share everything with everyone. Email by contrast has always been more personal and private. But this means that reporting spam on Twitter is a lot like picking up litter off the street — it is bothersome, and you know that at some level you should do it, but is it really your problem? What’s really in it for you, and if you don’t do it someone else surely will, right? By contrast, spam email is pretty much exactly  like getting junk mail delivered right to your home.

While Twitter’s image as a public space has probably been key to its success, I do believe that it’s hard to get people interested in taking care of something they don’t have any ownership over (as far as I can tell the only way to pay for Twitter is to buy ads and it’s becoming increasingly harder to hook up non-official clients). To its credit, I haven’t found spam to be much of a problem — most days I don’t see (or at least don’t notice) any spam at all. Whatever they’re doing, it seems to be working. I don’t have any suggestions, just the above ruminations. But if you’re in the process of creating (or interacting with) any sort of user platform, it’s worth spending some time thinking about how to deal with spam.

Sunday Selection 2013-05-05

Happy Cinco de Mayo and Orthodox Easter everyone. Last week has been a bit quiet as far as reading is concerned. I have a hefty backlog in my RSS that probably won’t get cleared till next week. But here’s the pick of what I did read and discover:

Around the Web

10 Rules of  a Zen Programmer I’ve been doing meditation on a regular basis over the past few weeks and it’s been an interesting experience. I definitely feel calmer throughout the day and it’s getting easier to sit down and focus on tasks I would normally procrastinate on. This article agrees closely with both what I’ve been experiencing while meditating and as a programmer. I’m not a Zen practitioner, but you don’t have to be one to use the information this article provides.

I’m still here: back online after a year without the Internet This is the last (I think) in a series of articles by a journalist who spent a year offline. It’s an interesting read, though it ends on a very weak note. The author’s experience seems to agree with my own views on the matter: the Internet (and technology in general) is a tool and it’s up to us to use it best. Using it, or not using, is not suddenly going to make us a better or worse person. It’s up to us to use these tools according to our desires and help realize our potential.

Star Wars: Online review culture is dotted with black holes of bad taste This articles looks at the rise of popular review sites (focusing on Yelp and Amazon) and discusses how the reviews on these sites are often less then helpful to the point of negating the importance and usefulness of a review. There’s research going on at Cornell on better analyzing online reviews and review systems so this article was particularly interesting to me. While there’s something to be said for the usefulness of multiple opinions from different viewpoints, sometimes you just want an authoritative answer from an expert about the quality of a service and product, and that’s increasingly difficult to come by.

Software

Tomato.es As the end of the semester approaches and the amount of stuff I have to get done explodes, I’ve been starting to use the Pomodoro technique to keep on top of things. Tomato.es is a simple timer that counts off 25-minutes intervals. If you sign in using Twitter or Github, you can keep a record of what you’ve been doing in those intervals.

Rust to OCaml via FizzBuzz

Last month fellow PL grad student Lindsey Kuper wrote a post about the Rust programming language and used the FizzBuzz problem as a running example to demonstrate Rust’s pattern matching features. While reading the post what was struck me was the resemblance to the OCaml language. After reading the post I sat down and ported Lindsey’s code to OCaml. The resulting code is on Github as a gist, feel free to take a look and fork away.

Lindsey’s Rust code and my OCaml code look practically identical (modulo syntactic differences like braces and semicolons). Both languages seem to support similar basic types and matching on them. I haven’t looked into Rust into any detail, but it seems like an interesting language. I’ve been using OCaml a fair amount over the past few months and I’ve come to miss its type system and pattern matching when working in other languages. I’m looking forward to seeing those features in a systems programming language and am particularly curious about how it will interact with an object syntax. There’s a big tutorial with lots of interesting stuff, so I’m looking forward to more exploring.

For your convenience, here’s the OCaml code:

Sunday Selection 2012-04-28

Around the Web

Minecraft, Scrolls, 0x10c: The past, present and future of Mojang as seen through Notch’s eyes. I’m not much of a gamer, but I do like making cool stuff and I love reading about people who are making amazing, beautiful things. Notch is the creator of Minecraft and the anticipated 0x10c and this interview is full of interesting tidbits.

The Terrifying Reality of Long-term Employment As a recent college graduate who has chosen the temporary sanctuary of the ivory tower, the job market is something I can afford to avoid, but it’s still something at the back of my mind. The state of the current market makes me wonder if we need to rethink jobs and value structures in an age where long-term stability is increasingly rare.

The Boston Marathon Bombing: Keep Calm and Carry On. I usually don’t write about current events, partially because I’m never quite sure what to say, and partially because I’d rather not add to the noise if I don’t have something useful to say. That being said, I’m all too happy to point in the direction of people who I think are actually making level-headed and rational comments about the current state of affairs. Bruce Schneier is certainly one of those people and I can’t help but wonder how different the world would be if people like him were in charge of our security.

Software

Capsule: The Developer’s Code Journal. I find that keeping a record of things I’ve done through the day is very useful. It’s a good estimator of where my time went through the day, and an empty log is a sign that things didn’t go quite right.  I normally have a text file on my phone that I just dump everything into. Capsule looks like an interesting solution for programmers (both teams and individuals) to keep a quick and dirty log of what they’ve been up to. I’m probably going to put it on my Linode for a week and give it a try.

Amazon has good customer service

Last week I realized I didn’t have a single usable USB Flash drive. So what do I do? I hope on Amazon and order myself one of course. I got this nice Kingston 32GB drive that looked small enough to fit on my keyring and spent a few minutes in awe of the fact that this tiny thing had more capacity than my first computer’s hard drive (a paltry 20GB).

I ordered it on April 15 at night and since I have Amazon Prime, I got an estimated delivery date of April 18. Unfortunately, the 18th came and went and there was no sign of the package showing up. The tracker on Amazon said that the package had “left the seller” on April 16 but had made on progress since then. Since this was the first time Amazon had been late with a package, I decided to give them some slack and wait a few more days. On Monday, April 21, there was still no sign of the package so I decided to contact and see if I could get some answers.

Once I found the Amazon Contact Us page I was glad to see that there was a live chat option along with the usual phone and email option. The chat experience was really smooth. After some simple questions to narrow down the problem I was talking to a real human (I think) within a few minutes. Once I told them what the problem was, they checked on the package status and immediately offered me a free replacement or refund, without even asking. I went with the replacement and today the package showed up at my doorstep. The process was smooth and quick and entirely without fuss. It’s definitely one of (if not the) smoothest customer service experience I’ve ever had.

It wasn’t perfect: the orders page has options to Track, Return/Replace Items, Leave Package/Delivery Feedback or Write a Review. There’s no way to say that the package delivery seems stuck. Under the Delivery Feedback I can say that I haven’t received the package, but it just tells me to leave more feedback when I get it. It would be great to actually have an option to say that there’s something’s wrong with the delivery and I want Amazon to look into it. Secondly, while the whole contact process was smooth, it was hard to find the contact page in the first place. There doesn’t seem to be a contact button or link on the main Amazon page or site and there’s nothing of the sort on the Track Orders page either. I had to Google for “Amazon contact” to find the page. It was smooth sailing after that point, but it’s definitely something I wish was smoother.

Anyways, the point is that I had a smooth customer service experience with Amazon and though there are rough spots, it was very good on the whole. Now I’m going to stop talking about my first world problems and get back to hacking in OCaml.