On the failure of tweets, RE: “TXTing”

One of the core failures of Twitter is that it’s based around a flawed idea. Text Messages. 140 characters. Shorten everything and use slang. Sure it’s become cute to try and manage your communications in 140 character bursts, but WHY? Holy flaming fig trees, it’s just not needed! I mean,? you may as well base your internet service around telegrams sent via morse code. The text message is an outdated idea, well past it’s prime. It may serve some historical purpose, much like Morse Code still does, but it is irrelevant to the future. Would twitter be as fun if you had to use all upper case, couldn’t use punctuation or non-alphanumeric characters, and had to say “STOP” at the end of each thought?
“TODAY WORK SUCKED STOP SOMEONE ATE MY LUNCH STOP HASHTAG FML STOP” is lacking in so many ways… Locking your service to the rules of an outdated and useless medium just doesn’t seem smart!

What you say? “It’s used my billions of people across the world! How can it be outdated and useless?”
They use it because they can. Simple as that. The cell phone companies provide it, including it’s outdated limitations, because it’s what you’re used to and what they can charge for. Never mind that it would be trivial to replace every SMS client in new phones with a Jabber (XMPP) app and install Jabber->SMS gateways to support legacy systems. (Okay, maybe not “trivial”, but you certainly see my point..) XMPP is a FAR better protocol by any standard. The vast majority of phones released on the market today would easily support this sort of change, “smart” phones especially. (You could even transfer seamlessly from your mobile device, to your computer, and back to your mobile device, without ever missing a message!!!)

Quick history lesson, if you need it. SMS, the “Short Message Service” operates on the control channel of your cell phone. This is a special data channel your phone uses to keep in contact with the towers and is always operational. This allows your SMS messages to get through even in the most dire of coverage areas, and even when your phone is in use, but is also what “limits” it to the 140 (actually 160) characters. Yes, I will concede that these are useful things about SMS that do make it stand out somewhat. I still thing we can design our way around it’s limitations though. However, there is no incentive to do so because even new “web 2.0” companies (like Twitter) are observing the limits of SMS and working within them! There’s nobody out there saying “hey, could there maybe be a better way?”

But my hatred of corporate greed and tyranny isn’t my only reason here! My love of language and clear communication weighs in rather heavily!

I am extraordinarily tired of slang and shortened “can I buy a vowel please Pat” words being used where they’re utterly unnecessary. And SMS is almost completely to blame for this change.
Now I know I sound like your college English teacher, railing against the evils of today’s youth… However, I think we can all get behind the idea that anyone who shortens “email” to “eml” in a non-space-constrained forum (in this case, facebook post) is a raving git. It’s completely and utterly unnecessary and the gross misuse of these sorts of shortenings obfuscates countless messages every day! (And by perpetuating mythical 140 character limit, Twitter perpetuates the cycle of social decay..)

Perhaps I just can’t help myself. I like to understand what people are talking about, and I very much like it when they understand what I am talking about. English has enough screwed up about it as-is, no need to intentionally make it worse.

Also, stick it to the man. That cell phone company is overcharging you out the ASS for those 140 characters, for no reason other than they really really like taking your money. Don’t fight the future. Evolve or die.

The experiment concludes. Social networking: meh.

So, I’ve been usin Twitter for a while now, and recently added facebook to my arsenal. This was hearalded by those who know me as a sign of the end times, but it was meant merely as an experiment. In fact, the facebook portion of the experiment lasted only a week before I learned all I needed. Now the experiment has concluded, and I’m dumping twitter/facebook in the trash where they belong.

Couple of core problems with the social networking scene as I see it:

  1. It remains a wasteland of self-centered indulgence. The very framework is designed not to encourage any sort of truly social behaviour, but to allow narccissistic indulgences (such as this?!) to proliferate with no regard for relevance or content. The utter banality of it amazes me. I want to have interesting conversations with people, not constantly watch comments about how someone’s cat just took a shit fly by. In traditional blogs people are at least somewhat encouraged to write interesting things because nobody will read or comment on them if you don’t! You have to keep the readers interested! “Social networking” has none of this. They’re going to be reading, if your content is good or not. I won’t completely discount Facebook as a way to have substantive discussions, but in my observation they seem to be more the weeds than the flowers.
  2. Social networking attitude. “why don’t you want to be my friend” is the only encouragement towards any sort of cooperative behaviour. Blackmail and guilt are a great basis for interacion and friendship, sure! “Be my friend” only extends so far as the little tag showing the number of people you’re friends with though.. Being someone’s “friend” grants only rights, without any accompanying responsibilities. You get to watch your “friends” fill out quizzes, talk about what they’re doing, maybe toss an “LOL” at other people once in a while, and it seems to encourage this shallow level of friendship. People may feel less alone by having 100+ “friends” that they chat about trivialities with. This also has the side effect of requiring less work than truly having and caring about even one single person. Also, when someone does something you don’t like you don’t feel like you have to fix the relationship, after all, you have over a hundred other friends to talk to.
  3. The overhead required! How do you balance what goes on facebook status, what goes on Twitter, what deserves a full blog post, and what simply doesn’t need to be said? I really don’t like the idea of having to maintain profiles and data on all these various sites either, especially when I have my very own location right here! For me I think this is the biggest issue. I like keeping track of what my friends are doing, but when you have to spend so much time spreading yourself across so many places, it really loses something. The problem goes both ways as well. Say I have a “friend” on Twitter who I follow because we have a bit of a shared history, and both like programming. He doesn’t tweet much about programming, but maybe he has a programming blog somewhere that I’m just unaware of because he doesn’t talk about it on Twitter. Because he has no centralized identity it’s difficult for me to see all the things he’s doing and choose what I’m interested in. (Turns out he also does some music stuff that I want to follow that he doesn’t tweet about much.)
  4. Eavesdropping. Yes, I’m guilty of it! I like to see what people are doing, and that’s the whole point of these sites! But what about when it turns out to be your boss, or someone looking to hire you? Twitter is all-or-nothing on the privacy issue, so you either lock yourself completely out of the crowd, or you’re completely open to everyone. Facebook has pretty good privacy capabilities, but is trending towards being more open.
  5. Walled Garden. This is very similar to problem 3 I suppose. I know I’m a geek but “Information wants to be free” is a guiding principle! I don’t care if you want to use Facebook. My problem is that in order to read your blog Facebook forces me to have Facebook as well! If you’re going to write interesting things, do it in a way that’s either public, or uses well-accepted security technologies to restrict access. I would love to add your blog to my Google Reader, honest! Use a tool that lets me! The Walled Garden issue is one of the primary reasons I don’t like Facebook, but am mostly okay with Twitter.

Or maybe, just maybe, the problem is completely different. Maybe I’m doing it wrong. “Josh is a socially retarded super-genius who doesn’t play well with others” is always a good fall-back position. 🙂
In truth, this may not be far wrong. In the end, I just have so very little interest in how things work on these sites that I’m not really interested at all in working with them. Maybe they work for some people, maybe I really am just that socially stunted in the real world that even the internet can’t help me.

What to do though? There are people who I know who I only really stay in contact with through either Twitter or Facebook. I’m going to miss them. As far as Twitter goes though, I’m adding people to my Google Reader feeds, so I can at least see what they’re doing and remember to shoot them an email once in a while. I would very much like people’s real blog addresses as well. Anything I can RSS, or add to my “blogs” bookmarks is great! And I’m going to try and work on blogging more here so anyone who follows me can say hi too. Feel free to comment, It doesn’t even require registration! (And OpenID is here too if you’d like to login as “yourself”!)

Now let’s see what we can do to do this the right way!

Things I learned from … facebook …

Yes, that’s right. I have joined the huddled and unwashed masses, and I now have a facebook account.

Allow me to set one thing straight though! The only reason that I caved: to destroy one’s enemy, one must first understand one’s enemy. I still think the concept is fundamentally wrong, but just my first 2 days in facebook has shown me some of the things it does astoundingly well, which are major hurdles to any attempt to replace the thing.

Here’s the thing facebook does right. Connect people.
The people facebook presented me with that it thought I might want to be friends with? Whew! It does it’s job pretty well! I did things step-by-step just to see what it would give me. When I entered that I worked at Apple, it gave me a lot of people. When I narrowed down that I lived in portland, it gave me people from my area, primarily people from my downtown store. When I the entered my email address it gave me a bunch MORE people. (I started with the address “facebook@joshproehl.com” just to test this functionality.)

It seems to remember anyone who’s ever searched for my name, my email address, or tagged anything with either of those. This is impressive, and something I have no idea how to duplicate when designing a distributed social networking service. This one thing (which I had previously overlook due to my anti-facebookery) ? may be the thing that makes facebook worth saving rather than destroying. At the very least it’s an incredible hurdle to overcome.

I’m going to go approve some people as friends so that I can “write on their wall” in a snide and demeaning tone.

Why no observer patterns? (Pt. 2)

Immediately after posting the last article I started thinking about how this could work. Let’s assume a RESTful Rails based project.

Things we want to observe: Resources.
Done! That was easy!

So: http://daedalusdreams.com/observers/ would show you a list of things you could “subscribe” to, and indicate which of them you were already subscribed to. This would require you to be logged-in (openID) and have your own site’s URL tied to your login. (Thought: OpenID metadata?) Then you could simply say “I am interested in blogposts, microblog posts, and any new images you post.”

Then I, as daedalusdreams.com, would have an option when I went to submit a blogpost: “Notify Observers?”. (Maybe it would only appear if this resource had people actually observing it?)

I should speak briefly on the core principle of this system and the reason I started thinking about it. People often think I am against “social networking”. In reality, what I am really against is personality fragmentation. I refuse to have a twitter AND a myspace AND a facebook AND a linkedin AND a flickr AND a del.icio.us AND twitpic AND youtube AND…. I AM daedalusdreams.com, and everything about me should be in this single place. (Subject to needing additional hosting/bandwidth, but that can still all be linked to daedalusdreams.com and found here.)

I’ve just discovered something called WebHooks.? I think I’ll go read about that for a while. Looks interesting.

Why no observer patterns?

The observer pattern is really quite handy:
“Hey, you, the dude responsible for managing Josh’s twitter posts! Let me know when he posts something new! My address is…”

That’s basically it. It works in Cocoa, it works in SproutCore (Javascript), it works in Rails.. Why has it never been taken to a wider scale?? I understand that pushing to users is difficult due to the “statelessness” of HTTP, but “push”ing between servers with static IP/Hostnames should be decently trivial.

REST, JSON, SSL, toss out any number of acronyms you want. It’s doable in a number of different ways. So why isn’t it common? Why can’t I subscribe to your blog and have it notify me when you make a new post? Forcing me to poll your RSS feed periodically to see if you’ve made a new post is, shall we say, fucking backwards and wrong!!

So what are the real challenges here?

  1. Callback address. What if a registered observer changes their callback URL? How do we address them?
  2. How do we authorize changes? Must research OpenID/OAuth and see if there are systems that might work for this.
  3. Sufficiently extensible and user-definable. No locking the user profile into ONLY having fields like “favorite pet” and “smoker y/n”. No limiting the language used.

What might this look like?? If I (joshproehl.com) want to obsevre events at daedalusdreams.com I could send this:


http://daedalusdreams.com/observer/create
POST
{
model:blogpost
callback:http://joshproehl.com/listener/
}

And then when daedalusdreams.com makes a change to the blogposts it would know to send this:


http://joshproehl.com/listener/
POST
{
source:http://daedalusdreams.com/
model:blogpost;
sourceURL:http://daedadalusdreams.com/blog/5
}

I’m having trouble visualizing both exactly how this would work, and why it might not. I think it may be time to start diagramming some things out.

Continue reading in Part 2