Tuesday 31 March 2009

The Big Social Network Noise Pool

I cancelled my Bebo account, it was turning into a giant teenagers playground. And, I for one, wasn't wanting to sit around to watch.

I did a purge on my Twitter followers, they responded in the same fashion (as to be expected really), "if you don't follow me, I won't follow you". Fine by me.

Tonight was Facebook's turn. My original intention was to keep this one to people who I knew but as time wore on friend of friends start turning up and I blindly accepted thinking that their comments here and there may have been useful. In most cases it was a waste of time.

The signal to noise ratio is increasing at an alarming rate. Twitter's @reply is me basically shouting in a field of 100 other people with the person I'm trying to reach standing at the other side. The mere fact that @replies don't get email alerted has caused me more misses than hits. Identi.ca solves this problem (yay!) but the interface isn't very inviting to use and, finally, is treated more of a techy plaything than anything else.

Myspace is in decline, ITV are desperate for a buyer of Friends Reunited, Twitter isn't money making yet. I'm starting to wonder where this is all going. We could have the biggest set of redundant data on our hands, just waiting to be mined or searched but never quite got round to it.

While a few companies like Salesforce.com, SAP and Sysomos are trying to get sentiment out of social networks and blogs the amount of increasing noise will make their lives more and more difficult. While the ACE Conference in Northern Ireland says the province needs to concentrate on it's social applications there's a good chance that the boat has already been missed and the decline to a more normal way of doing things will start to appear.

Saturday 28 March 2009

Twitter to Speech in Java

During the working day I glance at Twitter quite a lot to see what folk are saying. I'd personally rather have it talk to me instead, if something interests me then I can go looking on the website.

(Now I know mobiles do text to speech well already, this was more of a basic exercise to see how easy it would be in Java).

First of all we need some Tweets.
public class TwitterSpeech {
public TwitterSpeech(String username, String password){
Twitter twitter = new Twitter(username, password);
List messages = twitter.getFriendsTimeline();
for(Status s : messages){
System.out.println(s.getUser());
System.out.println(s.getText());
}
tv.closeVoice();
}
}


The Winterwell JTwitter API works really well for what we need and I don't see the point of overcomplicating the matter by reading JSON and Atom feeds. So, a username and password are passed to the method and the getFriendsTimeline() method pulls the last 20 Tweets in the timeline.

Now for some speech.

The FreeTTS project is on Sourceforge and provides a nice way to get text to speech in short space of time. Here there is another class that sets up the voice synth and gives a way of passing a text message to it to be processed.

public class TweetVoice{
VoiceManager voiceManager = null;
Voice helloVoice = null;

public TweetVoice(){
voiceManager = VoiceManager.getInstance();
helloVoice = voiceManager.getVoice("kevin16");
helloVoice.allocate();
}
public void closeVoice(){
helloVoice.deallocate();
}

public void speakTweet(String message){
helloVoice.speak(message);
}
}

Kevin16 is the voice set to be used, a bit robotic but fine for our needs. So now, back in our original code segment, it's just a case of plumbing in the speech synth and passing tweets to it.

public class TwitterSpeech {
public TwitterSpeech(String username, String password){
TweetVoice tv = new TweetVoice();
Twitter twitter = new Twitter(username, password);
List messages = twitter.getFriendsTimeline();
for(Status s : messages){
System.out.println(s.getUser());
System.out.println(s.getText());
tv.speakTweet(s.getUser() + " said " + s.getText());
}
tv.closeVoice();
}

public static void main(String[] args){
TwitterSpeech ts = new TwitterSpeech("myusername", "mypassword");
}
}

It's plain and it's simple but it works rather well and has scope for a few other applications. If you wrapped a Quartz Scheduler or a mechanism to retrigger a thread then you could leave it run and grab new tweets for you. This example will always grab the most recent 20 tweets for you, it would be easy to modify the code and get the most recent tweets by id or date.

Sunday 22 March 2009

The great Twitter user purge

I went on a Twitter purge today. It was all down to something I noticed last night, I'd reached a tipping point where it was becoming difficult to maintain a meaningful amount of data coming in.

I'm not on Twitter to data mine, I changed my mind about that a few weeks ago. But out of the 146 people I was following, how many was I having a contract of information with? About four all in all. To be fair I've made some new contacts in Northern Ireland, creatives that I didn't know existed etc. The rest was just turning into link bait, shameless advertising and pointless content. It's creating content for contents sake.

What got me thinking? Well I had about fifteen alerts from Twitter saying that folk had added me, why had then added me? No idea, more than likely to bump the numbers up and not based on anything I was actually saying. So why am I adding folk I don't really know, what value are they adding to my knowledge? Very little, so I went on a purge.

It's not just limited to Twitter, I found the same with Facebook, LinkedIn, MySpace and Bebo. How many of these contacts are actually meaningful? How many will add value for me in the long turn?

Since the Facebook redesign I hardly log in, only to keep in touch with a handfull of folk that I'd normally talk to (ie, I have already had a face to face conversation with them BEFORE adding them on Facebook).

Back to a simple life I think. Try and reduce the paper in my office, get all the CD's on to some form of media player. Try and live a bit simpler.

Tuesday 17 March 2009

Twitter ideas: bring back the bots.

Why can't Jetblue/Virgin America or any other airline have a crack at this? Here's the story, I want to fly from New York to San Francisco.

There's nothing to stop a direct message from Twitter to JetBlue's twitter account.

"JFK SFO 2009/3/20 2009/3/30 A2 C1"

Fly me from New York to SanFran on 20th March 2009 and return on 30th March 2009, two adult and one children are travelling. Especially handy if I can send the direct tweet from my mobile and get a dialog going.

Send me a TinyURL back with the price and where to book and I'll go for it. Even better as you have my Twitter username you can link it to my Frequent Flyer account and give me better discount for continued service to your brand.

Saturday 14 March 2009

The last two weeks have been a blur.

I can't believe that two weeks have passed already. I'm head down into a large app for Silktide Studios. All in Java - Hibernate is taking the brunt of the db duties nicely.

Highlight of last week was STP's pointing to the direction of this blog and my minor rantet on the lack of DOB info in Twitter sign ups.

This morning was getting back up to speed with Ruby On Rails. I tend to pick it up and then put it down. In my "I must learn at least one language this year" thoughts, I really should get Ruby under my belt.