Blog Archives

[Webapp Idea] Twitter Link Browser

I use Twitter quite some. A lot of the people I follow share quite a lot of links. When I browse twitter on my mobile in the morning, I can’t check out all the links. I usually ‘Favorite’ the links that seem interesting and then browse them later. I’d actually prefer a better interface to this, which enables me to tag these links privately so that I can look for them later as well.

I found one such webapp whose name I now forget. The problem with it was it had a sucky interface and didn’t let me preview all the links properly. Then there’s also Tweetree which offers previews of shared links. I also like the Google Reader/Gmail sort of interface which keeps track of new links and already read links. And also, when multiple people share the same link, I’d like to see it all collapsed as one with “X, Y and Z shared this” next to it. Or something.

So this is one thing I’d like to build using Google App Engine.

The steps to do so would be as follows:

  1. Find a nice Twitter API interface for Python which can preferably be integrated with Google App Engine.
  2. Write code to get tweets from your Twitter timeline.
    2(a) Learn how to use Twitter OAuth.
  3. Detect tweets with links. When they do, extract the unshortened link.
  4. By now, you have a set of links, and can choose to display them as you wish.
  5. Use the App Engine datastore to store previously viewed links. Possible attributes to be stored along with link can include users who shared this link, timestamps of tweets which shared these links, viewed-or-not (when dropping into database after extraction, this attribute should have the value ‘No’), title of linked page. Also store time of last login.
  6. Workflow: On login, extract links from timeline and drop into database until the timestamp of the tweet you’re reading is lesser than the time of last login. Then display those links with ‘viewed-or-not’ value as ‘No’ as ‘Unread items’ and the rest as ‘read’ items. On clicking each link, mark them as read. Also provide checkboxes to mass-markAsRead.
  7.  Basic interface: Gmail HTML sorts. Previews and stuff can come later.
Components to build a basic version:
  • OAuth
  • Tweet-getter
  • Link-extract-and-drop-in-database. This in turn includes Link extractor, unshortener, title-getter, database interface.
  • Database queries to view links and mark them as read/unread.
  • User interface.
Anything missing so far? Loose ends? Anything can be done better? Are you working on this? Any advice on getting started or any of the individual components?

I_Am_Back post… and a webapp idea

I’ve had an extremely nice two weeks, and have come back fully rejuvenated. Not once during the two weeks did I think of what’s on during my quarter. Now I guess I can restart all that.

Now I have an idea for a webapp. Something quite easily implementable on Google Appengine, I guess….

Let’s call it Don’tLiftMyContent!

It’s primarily supposed to be a service that checks if your blog’s or website’s content is being plagiarized elsewhere. Like, you give in your blog’s URL, and it gives you a list of pages that use your images and your text. And for this, it can use existing stuff like Google/Yahoo/Bing for text and TinEye for images. While the web search engines are reasonably good for text, TinEye doesn’t yet have such a comprehensive database of images, and this would probably be the limiting factor of the webapp.

I guess timestamps can be compared in order to eliminate sources your blog has plagiarized/borrowed from 🙂

Since this idea occurred to me just a few minutes back, all the existing work I could find are websites which enable teachers to check if their students are plagiarizing. I haven’t yet found a website which does this for blogs, and will be very glad to know if there is.

What say about the idea? Interested? We can code this together, if you want.

Food for thought: how will I know if someone gets the idea from this post of mine and goes on to create this webapp and not give me any credit at all? 🙂

%d bloggers like this: