Unbreaking Comments on Tiny Sites and Tech Blogs

I’m going to start with a fairly well understood, slightly boring truth here: Comments online are fundamentally broken. Big surprise. It’s been the trend of the last few years to say that, and then propose various fixes, like:

  • Facebook commenting  
  • Gamified commenting  
  • Message board style commenting  
  • Commenting with vote up/down systems

…none of which have seemed to measurably fix this problem of comments being fundamentally broken. Sure, with Facebook comments you get less hateful spam, with gamified comments you end up with knee-jerk or funny comments at the top of a post, etc, etc, but very few people are satisfied with these systems, as insight and community are lost in the mix.

Which, to me, is absolutely ridiculous. If the Internet is supposed to be this revolutionary platform to help people communicate, why the hell can’t we figure out how to actually use it for that? It’s massively disappointing that you have to either follow a professional or semi-professional blog/news- site/etc or dig massively deep into the stack of boring user-produced crap to get anything resembling decent content.

I’ve been running StoriTell, a site for anonymous story-sharing, for about a year and a half now. While the quality of the stories themselves have wavered between great and not-so-great, I’ve been fairly impressed with the comments on the site. Why is that? StoriTell is not a popular site, I’ll definitely be the first to admit that, especially looking at the somewhat abysmal traffic lately. This tiny number of users might give it a more community-oriented vibe. Nick Denton realized the same thing at his SXSWi talk on commenters, suggesting that Gawker might create isolated groups of commenters to foster a similar atmosphere. But why does that particular feeling lend itself to better comments, even in stories about controversial topics like abortion and mental disorders?

I’m thinking it has something to do with ownership and purpose. People need to feel like the content they provide is giving value to the site as whole, that they own a ‘share’, so to speak, of the site itself. If people believe their contributions have value, I think you can entice them out of mediocrity. Even if they have completely opposite viewpoints to one another on the subject. Another site that frequently has high-quality discussions is The Verge. They have an excellent forums section which allows people to write their own articles, ask questions, and build community around that. It’s encouraging valuable contributions, without just being a “look at these cool gadgets I have” or “should I buy this” type of thing (link to gdgt). Then, every so often, the members of the Verge staff on Twitter (mostly @joshuatopo lsky) will post links back to that content, featuring it like they would a news story. The commenters have a feeling that they’re helping build this great source of information on a topic. The site’s status as sort of a new player in the tech- blog sphere might help this too; people want to be there at the beginning, contributing valuable content to help build up their new favorite tech site.

Vote-up systems don’t really help with this; they encourage personal point- gathering for the sake of points rather than contributing to some greater whole. It’s less about providing content that is inherently valuable than it is about providing content people agree with. I’d also like to point out that anonymity doesn’t have to be sacrificed for the type of ownership I’m talking about here. It’s not about having a name attached to an individual piece of content, it’s about collectively identifying with a site or section within a site.

I don’t have any specifics for how to build a commenting system that can help enforce this kind of thinking. Right now, these are just general ideas for what works and what doesn’t. StoriTell was a great experiment for running a community, but it has fairly limited appeal and, when faced with lots of users, will probably run into the same problems as any other big site. I’d be interested to see how commenting systems mature over the next few years though, and maybe I’ll be able to contribute at some point.

Duck Hunt, Mini

I cannot paint to save my

I’m a pretty big fan of Duck Hunt. I remember going over to a friend’s house down the street when I was five and being totally enamored by the idea of using an actual object (the NES Zapper) to play a video game on a screen. That was some pretty crazy high tech stuff back then. My little-kid mind was intensely amazed.

For my Gadgets project, we were given an 8x8 LED matrix and an Arduino Nano and told to make a game. So, I made Duck Hunt. I took a photoresistor, built an (admittedly terribly-painted) NES Zapper replica out of balsa wood, and wired it up with the matrix, a button, and the Arduino, running this code. Basically, the way this game (and the original Zapper) works is through a light sensor making two different readings of the screen. In the first reading, the entire screen is either on or off, to establish a baseline reading. In the second, it turns it all on or off again, except for the pixels which represent the “target”. If there’s a difference between the first and second reading, you’ve hit the duck. There’s a pretty good explanation of the whole process here.

This was my first big Arduino project (big meaning: anything that’s not basically turning a light on or off based on one other sensor), so the code probably looks terrible to anyone who’s spent a lot of time doing embedded systems. I’m a noob, I’ll admit it :). But it was definitely lots of fun to put this whole thing together, and see something that I built from components actually working.

My version runs through two modes. The first has just one duck, the second has two. I tried to do the Duck Hunt dog at the end (you know, the one that would mock you when you sucked at the game), but it ended up mostly looking like an alien cause 64 pixels is surprisingly little to work with. Oh well. Enjoy this video of me playing, and please tell me what you think!


I love Apple earnings call transcripts.

“Cook: We’re going to continue to compete with anyone currently shipping tablets.”

Oh really? We thought you were going to discontinue the iPad and tout the Grid10 as the best hope for the tablet industry. Thanks for clarifying.

Making Robots Happy

Machine learning is super-cool. I’ve spent some free time over the last year trying to write a good way to analyze sentiment on Twitter. I started by picking out positive and negative words, but that didn’t work too well, especially without any corpus of positive and negative words to go off of. So, before winter break last semester, I wrote a tool that used a naive Bayesian classifier to do the sentiment analysis.

Which sounds pretty intense if you’re not into CS, but it really isn’t.

Basically, what it does is look at tweets that people have already categorized as positive or negative to learn from them. It then makes a guess for a new tweet based on how holistically similar it is to those old tweets. There’s a lot more to it than that, of course (for the technically-inclined, I took a lot of ideas from this guy’s suggestions, which were AWESOME), but that’s basically how it works.

So, here’s an example. It gets weird data points from time-to-time, but is mostly pretty accurate. I chose to look at SOPA sentiment on Twitter, so I expected pretty negative results.


So, this has been a long time coming. I bought a Kinect over break and wanted to do a little project to mess around with it. AirSample is that little project.

Originally, I was planning to do a synthesizer that created square waves with a frequency that depended on the position of each hand. I actually wrote some new classes for a C# audio library for it to work. It was okay, but ended up crackling really badly and having a terrible response time. C# is just not good for dynamic audio synthesis like that.

After that, I decided to just use samples. I found some samples online from an ARP Solina and decided to run with that. The system works with an arbitrary number of samples (right now, they’re hard-coded, but I plan on changing it so it knows what samples to load from an XML file soon). You can move each hand upward to make it louder, or downward to make it softer. Each hand is independent. There is a dead-zone at the bottom of the tracking area (about 1/4 of the total area) which will result in silence. The notes are displayed on the screen, as are the positons of each hand. You can pick your note by moving it to the dead-zone, then to the correct x-coordinate, then moving it upwards out of the dead zone.

I’m thinking about porting this to Processing using the OpenNI and NITE Kinect drivers so I can make it cross platform. As of now, I just wanted to get started with Microsoft’s SDK.

I’ll be posting the code soon, when it’s in a more usable state.


Yet another person is harassed by a sleazy business-owner after posting a negative review on Yelp:

http://boingboing.net/2012/01/13/lawsuit-store-owner-tried- to.html

I’m sick of hearing people claim that we need full accountability for the things we say online. While that’s an admirable goal in a perfect world, the reality is that we often post things that may be unintentionally dangerous. If it’s a company trying to destroy a woman’s online reputation or someone posting critiques of the Chinese government, our actions and words online often have consequences that go far beyond what we expect when we post them.

Some people may be comfortable with authenticating themselves online. That’s great. But any service that relies on some degree of personally identifiable information being shared should also offer an option to hide that information, or at least disguise it via a pseudonym. And when authentication is served up via an API, the API itself should offer the same ability to hide information.

Google+ drew this issue into the spotlight a few months ago when it forbade pseudonyms on the service. However, Facebook is an even more dangerous offender when it comes to this. When you use a Facebook platform application (like Facebook comments or any game or site that uses Facebook auth), you’re automatically sharing your identity with that application. No matter what. Anything you post using that application can easily share that identity with the public.

I’m not sure if the person here used Facebook to connect with Yelp for her account, but I know I do. And that worries me. I know I also use it to post comments on certain sites. To play certain games. Etc. If I ever posted something that could be dangerous on a site that required Facebook authentication, I would have no way to disguise that post. Which is a problem. I’d suggest that Facebook implement MUCH more granular authentication permissions (something which I happened to do a semester research project about recently). From the users I talked to, people want this kind of control. Something like this Chrome extension would work.

Even if your site isn’t using the Facebook API, the solution is simple (even simpler, probably). Sites can continue asking people for their names, but allow an option to hide that from the public. Or do what Twitter does and just let the user post under a handle. Not hard. If your site DOES use the Facebook API (which is totally fine, lots of mine do), then let the user know what information you have, why you have it, and how they can control what you do with it. Give them a “hide this from the public” option too.

I’m sick of people being punished for things they say online. The web lets us be more open and honest with businesses, governments and each other than anything has ever done before; let’s not let that go to waste.

Second Best

I am really, really liking Visual Studio. Been working on some Kinect stuff (will post soon!) and it’s definitely one of the best IDE’s I’ve ever used. The only one I like more is Xcode.

Definitely improved since the last time I used it. VS6 was sort of awful. Also, I was like 13, so… that could’ve had something to do with it.

The Little Things

I like Cory Doctorow. He fights the good fight more often than almost every blogger out there. But, sometimes he’s just wrong. Like, for example, this ar ticle about general-purpose computing. In it, he says, about single-purpose computing (see: Kindle Fire, Nook, Apple/Google TV, etc):

We’re not making a computer that runs only the “appliance” app; we’re taking a computer that can run every program, then using a combination of rootkits, spyware, and code-signing to prevent the user from knowing which processes are running, from installing her own software, and from terminating processes that she doesn’t want.

…which entirely ignores user experience. It’s like the user interface design portion of it didn’t even occur to him. People buy an e-reader to read books. They don’t buy it to run a spreadsheet or play Skyrim. Possibly because it’s just not good at that. I don’t see any problem with trying to encourage users to use a device for what they bought it for.

People aren’t stupid: if they want a general purpose computer, they’ll go out and buy a Dell or an iMac or whatever they want. If they want a set-top-box, they’ll buy that, expecting to use it as such. Admittedly, it’s a shame when those environments are locked down, but it really only affects such a vast minority of users that the problem is irrelevant.

And not only that, when I used two different Android phones for a year, knowing I could do whatever I wanted with them, I didn’t use them significantly differently than my iPhone. In fact, I preferred the locked- down environment simply because there was less in between the user and the experience. There was less I had to worry about when I wanted to just use my smartphone. I don’t have to stress about my custom ROM having flaky wi-fi. I don’t have to worry about accidentally installing spyware or wiping my phone when trying to restore a nandroid backup. I just use the product for the single-purpose it was designed for.

And I don’t feel any less free.

In Flux

Working on a new design here, which is why the design is changing basically every other day.

Someone get me a Geocities “Under Construction” gif.


Skyrim is the only game I’ve ever played that can have absolute crap characters and mediocre storyline and still keep me interested enough to play for 2 1/2 hours every time I open the game.