Posts Tagged ‘twitter’

TunkRank, Meet Tickery

Posted: 5 May 2010 in Uncategorized
Tags: , , ,


Tickery is a rather awesome application of FluidDB that lets you explore Twitter in a number of ways. I mentioned previously in post on recent TunkRank improvements that TunkRank scores would soon be integrated with Tickery, and thanks to Terry Jones and his crew, the time is now!

Full disclosure: I’m a fan of FluidDB. I think it’s an awesomely useful technology and concept and I’m happy that TunkRank scores can be a part of it. One cool thing is that FluidDB’s permission system is designed so that even though Tickery is using TunkRank’s data, TunkRank still owns it. It can be revoked at any time if there was a reason to do so (not that I can imagine such a thing will ever be the case). Also, the data in FluidDB for Tickery and TunkRank are completely independent. Anyone else can come along and add a new set of data for mash-ups that would then use all three, without TunkRank or Tickery having to do a thing.

Playing around with Tickery

Now when you use the advanced search on Tickery, you can filter your results by TunkRank score, letting you do some interesting combinations on the data. For example, if I want to see who I’m following TunkRank scores greater than 50:

has twitter.com/friends/ealdent and tunkrank.com/score > 50

There’s lots to play around with there, especially when you start comparing the friends of various users. For example, if you wanted to know who Daniel Tunkelang (@dtunkelang) and I both follow who have TunkRank scores less than 20:

has twitter.com/friends/ealdent and
has twitter.com/friends/dtunkelang and
tunkrank.com/score < 20

Those people have something clearly in common, and it tells you something about the interests that Daniel and I share. I hope you check it out and let me know what you think.

TunkRank Improvements

Posted: 17 February 2010 in Uncategorized
Tags: , , , , , , , , ,

Over the past few weeks, I’ve been working on a number of improvements to TunkRank that I will be rolling out tonight. First, I’ve secured a server to host it on, rather than my old Dell laptop, so reliability should improve and TunkRank is no longer a slave to dynamic DNS problems. Also, my cable company is less likely to hunt me down. TunkRank has gotten some increased attention over the past few weeks, including from Chris Dixon, CEO of the wonderful website hunch:

Twitter could fix the whole follower obsession by highlighting a more meaningful metric like TunkRank.

Awesome! So with this new version, there are a few changes that will immediately impact you, the end-user. I’ll go into the ones that affect you the most first, followed by some technical points of interest for those who care. Then I’ll conclude with a couple of hints at the future.

Changes to TunkRank

First and foremost, I have changed the main score that is reported. Previously I was using a percentile in the range (1-100). This got a lot of objections and created confusion. Partially because I consider the 100th percentile to be the “top-tier” of users, while standardized testing often reports the 99th percentile to mean you performed better than 99% of the population. Also, most people who actually care about their scores enough to use TunkRank are in the 95-100 percentile range, making more fine-grained comparisons difficult. Neal Richter even posted on his blog some suggestions for improving it (quite a while ago, now).

I took a page out of Neal’s book with the log scores, but I also put it in a range where the most influential twitter user (let’s call her MAX) will always have a score of 100. Your TunkRank Score™ is the ratio of the log of your raw score to the log of MAX’s score. So formulas aside, this means your TunkRank score is directly comparable to other users and is always in perspective of the maximum influence exerted by any user in the Twitterverse. Incidentally, comparing users with a difference of seven TunkRank score points means the user with the higher score is about twice as influential.

Accessing the API has also changed slightly, and I apologize to anyone actually using it at the moment. Basically, I am matching the API calls to more closely conform to the URLs used on the web side, and I’m returning more information with each call. TunkRank also supports XML responses in addition to JSON. You can find all of the documentation here.

Some Technical Notes

As part of the move, I’ve decided to transition from using Merb to Rails. My original decision to use Merb was partially as a learning exercise, but also because Merb appealed to me with its being lightweight. However, I often ran into roadblocks because some useful plugin wasn’t supported (or I couldn’t figure out how to make it work in the limited time I had). Sometimes the documentation for Merb was very good and sometimes it was absent altogether. Rails, on the other hand, has a substantial amount of documentation and people are always blogging about the best way to do things — which makes life as a developer much easier. Rails is my day job, so I knew I could transition quickly and easily.

I also migrated from MySQL to PostgreSQL. The main reason is that I love PostgreSQL — plain and simple. They both have their advantages, but MySQL gives me a sense of uneasiness I don’t have with PostgreSQL. I’ve managed to achieve some nice speed improvements as part of the redesign, though that is not to say that the same speed improvements wouldn’t have been possible with MySQL.

I’ve also adopted Resque as my background job-processing library. It is backed by Redis, an advanced key-value store that you can think of as a “data structures server.” The important thing for me is that Resque is fast, has a kick-ass web interface, and integrating with Rails is brain-dead easy.

The Road Ahead

I wrote before about the road ahead for TunkRank, and I have mostly held to it. I have many more ideas I want to expand on, including topic-sensitive influence rankings. I like the ideas in the recent WSDM paper (pdf) by Weng et al, but I have a few new ideas I’m eager to try out. TunkRank scores may also be integrated into Tickery in the near future, thanks to some discussions with Terry Jones of FluidDB.  I’m excited!

Learning Scala

Posted: 11 July 2009 in Uncategorized
Tags: , , , , ,
Programming in Scala

Programming in Scala

Two weeks ago, I picked up my copy of Programming in Scala, which had been languishing on my shelf for months.  I pre-purchased it since I went to high school with one of the authors (Lex Spoon).  His mother, incidentally, was also my favorite math teacher.  When I started my new job back in September 2008, I was a total noob at Ruby, so learning that consumed my attention and other languages took a back burner.  Also, I’m always a little reluctant when it comes to learning new languages.  Not because I don’t like to learn them or because it’s difficult — but because it’s a serious investment of time that may be totally wasted.  Sure, Standard ML is an interesting language, but try finding a job doing it.  When I heard that Twitter was using Scala, I figured the time has come to pick up this book.  It also helped that a friend recently started an Atlanta Scala Meetup group.

Aside from being an update on my life, the point of this post is to say that this book is great.  Seldom have I encountered a programming book that achieves this level of depth while still being fun to read.  There are great examples with humor mixed in, the writing is clear and concise, and it’s thorough. What more could you want?

Has anyone else picked up Scala?  (I know there’s a few of you out there lurking!)  Are there any other good books you would recommend?

In the interest of full disclosure, though I know one of the authors, I haven’t actually talked to him in quite a long time (since high school, I think).  I also don’t make any extra money aside from the Amazon affiliate program commission if you happen to buy anything on their site after clicking the book link.

Reblog this post [with Zemanta]

Alternative Grad School

Posted: 9 June 2009 in Uncategorized
Tags: , , , , ,
Image representing Seth Godin as depicted in C...
Image via CrunchBase

Seth Godin suggests that all these unemployed college grads put themselves to good purpose this year and spend some time really enriching themselves (ht to @johndcook for the link).  The laundry list of to-do items includes:

  • Spend twenty hours a week running a project for a non-profit.
  • Teach yourself Java, HTML, Flash, PHP and SQL.
  • Volunteer to coach or assistant coach a kids sports team.
  • Start, run and grow an online community.

And some other stuff you should visit his site to read for yourselves.  I like his picture.  It makes me think of posthumans.  John’s tweet about Seth’s post inspired the following exchange (reverse chronological order):

Twitter exchange between <a href=

Twitter exchange between @johndcook and @gappy3000.

Regardless of whether Seth Godin can be taken seriously in this case, though I see nothing wrong with the spirit of his post, John made a very good point in reply and reminded me of what good music means to me.  When I find a song I really like, I listen to it again and again until I can no longer hear the words.  Instead the music makes me daydream and I find a lot of inspiration there.  Good times.

Having just come out of grad school, I encourage recent grads to consider Seth’s suggestion, assuming you have someone who can float you for a year.  Those student loans start nagging you around the six month marker, too.

Reblog this post [with Zemanta]
Image representing TweetDeck as depicted in Cr...
Image via CrunchBase

My previous twitter policy stated that I would follow anyone who follows me.  That has worked well for me over the past few months, since I use Twalala to filter my tweets down to a workable level.  People like Guy Kawasaki (@guykawasaki) approve of this follow-back practice, while others like Daniel Tunkelang (@dtunkelang) do not.  Since I was able to filter my tweets with this online service, it wasn’t an issue and really the only people getting my attention were the people I would really be following anyway.  It seemed more polite to follow back.

Unfortunately, this has become unmanageable.  If I want to be able to use Twitter to pay attention to the people I want, I am forced to use Twalala‘s web service and a similar feature set is not offered by any sort of iPhone app I’ve been able to find.  There are a couple of desktop apps that allow this type of thing, like TweetDeck and Nambu, but I don’t like Adobe Air apps and Nambu’s iPhone app isn’t as good as Tweetie.  Plus the iPhone app doesn’t allow filtering as far as I can tell.

So all that to say, I’m sick of it!

I’m finally caving to Daniel’s advice and I’m pruning my Twitter friends.  If you find that I have unfollowed you and we have conversed before, please drop me a note as it might have been an accident.  The people I keep in touch with the most, though, will still have me as a follower.

Reblog this post [with Zemanta]

More @cyc_ai #fail

Posted: 17 April 2009 in Uncategorized
Tags: , ,

@mrcrawly: Legway: A Pedal-Powered Steampunk Segway: http://bit.ly/fcQ0D (via @roundtrip)

Me: @mrcrawly I wish i could say i’d like to see that kid try to ride it, but he really needs a helmet first.. :)

@cyc_ai: @ealdent Riding is a type of sexual intercourse. http://bit.ly/VCTgg

Me: RT @cyc_ai Riding is a type of sexual intercourse. http://bit.ly/VCTgg [thanks for that FYI. plus i was talking about a kid, psycho]

The Cyc project has been going on for some 15 years. I first heard of it when I took a class on Artificial Intelligence (surprise!). People in the knowledge engineering community that I have had the chance to talk to seem to have the opinion that the Cyc project is good intentioned, and going about it all wrong. After talking to them a bit longer, I discovered that’s what they think about everyone else in the knowledge engineering community.  (And yes, that is a troll for any KE folks reading this.)

No one agrees on anything, and why should they? Their job is basically assigning concrete forms to meanings floating on the emergent sea of flashing neurons that is human consciousness. Easy, right?

The @cyc_ai bot on Twitter spouts random facts from the Cyc knowledge base. It’s kind of cool. It’s also bat-shit crazy. Here are some gems that I have seen.

DataJunkie: Finished my first OS programming assignment. Not bad. Will have to set up SVN or something so my partner and I are not writing separate code

cyc_ai: @DataJunkie Every barricading a car and taking the occupants hostage. has some barrier as a proper subsituation.

DataJunkie: @cyc_ai What???

Indeed.  So I replied.

ealdent@DataJunkie @cyc_ai has only spouted random insanity at me. if it ever becomes self-aware, it will be bat-shit crazy

@cyc_ai was compelled to reply.

cyc_ai:  @ealdent Spouting is a type of movement process.

cyc_ai:  @ealdent Every stream has conducting as a sub-event.

Saturday, I tweeted the following:

ealdent: drinking coffee that smells like wet dog but tastes pretty good. might have to wring my dogs out later and save some money.

cyc_ai: @ealdent A vogue is a type of taste.

Thanks, @cyc_ai!