A better feed reader

Most of the feed readers – web based, desktop based are more or less similar in their approach. You subscribe to a feed, and they will display all new (or non read) items. It is good. Now this is what a feed reader should do. Some feed readers (like Google reader) go beyond this and allow you to share your favorite feeds with your friends.What more does anyone needs?

Well, there are many more ways in which a feed reader can be enhanced. I wil be talking about the one that i find most useful.

Everything is not important

I am a feed junkie. I go to any website, and if i find anything interesting, i immediately subscribe to its feed. Months later, i realise that not all posts from that website is what i actually am interested in. Let’s take a scenario.Most people are subscribed to Slashdot or LifeHacker or Reddit. I am particularly interested in Programming and Technology. And specifically in Python, C++, WebApps. But what i am getting in my feeds is everything from FORTRAN to JAVA and from Microprocessors to launch of new space craft. This is useless information for me, and what i will be doing probably is – select all, mark as read. If i dont get a chance to read my feeds for a day or two, i will easilt have 1000+ posts and when bulk mark as read, i am probably going to miss out things that might be important for me.

Overcoming the situation

In my opinion, there is only one way to overcome the situation. Get the specific posts from the feeds, in which the reader is interested. So, if i am interested in Python and C++, i will be able to see and read only those feeds that have relevent information about Python and C++.
Again, there are two approaches to make this possible.

Approach 1) Let the reader speak for himself.

When a user is subscribing a new feed say “Programming”, suggest him – This is a very broad category. Would you like something in particular, say C++ or Python? If he says yes, go ahead and keep this thing in memory.

Aproach 2) Find out yourself.

In this approach, the user is initially presented with all the posts corresponding to a feed. A track record is kept for the feeds that the user has actually read and for those feeds for which he has just “marked as read”. Based on these data over a span of time, the system will be generating a set of keywords, which describe a range of interests for one particular user.

One or both of the above approaches can be used. What matters is that the set of keywords for the range of user’s interests in posts should be accurate. This is never guaranteed to be comprehensive, but should be somewhat near to it.

Now things are quite simple. We have the feed, we have the list of posts, and we have the user’s interest. For every post in the feed, scan it. See if it contains things that might interest user. Show him only those posts, that he is interested in. If the system is uncertain about a post, that can be under the “posts you might be interested in” section of the feed reader.

If implemented in this manner, i believe that feed readers can be more popular and good than the present ones.

If any engineer who is working on some feed reader is reading this post, and might consider it for their next release, i would be happy if they could contact me and say “Thanks” 🙂

Make this world a better place.

Codechef – India's biggest Online Programming Battle

CodeChef is India’s biggest and aggressive online programming battlefield. I came to know about CodeChef, a couple of days back only, and no doubt, i am impressed.
Designed in a very elegant manner, using jQuery to the max and with cool color blends, the site offers a nice look and feel. Definitely better than other sites in similar area.

My first Impression with CodeChef.

As i created my account, and logged into the site. There were a couple of things that attracted my attention. The thing that i really liked was live stats. The site gives you live stats of the coders trying to get into problem solving and their result. This creates an adrenaline rush, and you are tempted to do something.

Most of the top coders on this site are from premier Indian Institutes like IIT, IISc and others. You can see the real names of people instead of their hax0r names. This is somewhat non-traditional. Traditionally, programmers all over the world have been known by their IRC nicks only. So, if you see someone over coding arena with the nick ‘pranny’, you can very well assume that his IRC nick is ‘pranny’.

The site offers a wide range of programming languages, from LISP to Java. However, if you watch closely the maximum number of entries come from C++, then comes Java. As per my observation, i have not seen a single entry in Python (my favorite). So, if you are a python enthusiastic, there is lot scope for you.

The April challenge

The April challenge is about to come. For more details log onto CodeChef and see for yourself.


Practise for TopCoder and Google Code Jam

In my opinion, the best place to practise for TopCoder and Google Code Jam is to start off with CodeChef. The easy level practise problems, should be completed accurately and well within time. The medium difficulty ones are good and the difficult ones do require brain.

If you are needing any help with Codechef, you can contact their help section at http://www.codechef.com/help/

YaWa – AppEngine Library to automate models behaviour

When it comes to my qualification, i am a software engineer. When it comes to my work, i deal with only webapps. And when it comes to web app, it comes to data exchange – between the system and the user. Hell lot of data exchange. Most of it is in the form of “forms”. There is a form wherein user inputs some value to the system. The system the processes the request and gives the response. A major share of these requests and response are based on some tables, or the DataStore entity as AppEngine calls it.
I had been working on a way to abstract these interactions. So that the forms could be generated magically. These forms are not just plain DjanoForms, rather highly interactive forms, which has the ability to perform all the basic actions – create new record, edit an existing record, delete an existing record and search a record. And now i have with me – YaWa.
YaWa stands for Yet Another Widget fro Appengine. It is a library that can be imported in your appengine applications and helps you abstract the process of human-system interaction.

What does YaWa consists of.

In plain terms, yawa consists of a couple of python modules and a couple of templates. That’s it. There won’t be much need to modify the core files, until you want some feature that is not provided. The templates are the eye-candy. They are responsible for the look and feel of the forms. You may modify these templates in order to suit your needs.

How to use YaWa

In order to use YaWa, all you have to do is to prepare a list of Models that you want to work with, a list of those properties you want to exclude. Now the core module of YaWa, called bond, will feed on these lists and based on the templates, will generate UI elements.

Project code and live demo

The project is hosted at http://yaw-appengine.googlecode.com. A live demo can be taken at http://pran.appspot.com.

Suggestions and issue reporting

Report any suggestions, feature requests or issues here.

OnlineCompiler.org

OnlineCompiler.org is a completed online development environment for C/C++ in Linuc/Unix Style and built over the opensource WebDevStudio project.

You can access onlineCompiler.org here. This is a joint project by CodeControl and Ajay Jain. OnlineCompiler.org has a lot of features that will make online development quite comfortable and fun. You can save your prohects over there, take a backup and retrieve it later, or may be download it. It is specially useful in cases when you need to do something and they don’t have a compiler. 
Currently onlinecompiler.org supports only Unix/Linux GCC based C/C++. We are planning to introduce Python support very soon. But no official dates. 🙂
Hope you will like it. For any queries, comments, appreciation or crtisim, just comment out here. We will be glad to hear from you.

MIT Project Oxygen

MIT Project Oxygen – Human Centered, Pervasive Computing

For over forty years, computation has centered about machines, not people. We have catered to expensive computers, pampering them in air-conditioned rooms or carrying them around with us. Purporting to serve us, they have actually forced us to serve them. They have been difficult to use. They have required us to interact with them on their terms, speaking their languages and manipulating their keyboards or mice. They have not been aware of our needs or even of whether we were in the room with them. Virtual reality only makes matters worse: with it, we do not simply serve computers, but also live in a reality they create.

In the future, computation will be human-centered. It will be freely available everywhere, like batteries and power sockets, or oxygen in the air we breathe. It will enter the human world, handling our goals and needs and helping us to do more while doing less. We will not need to carry our own devices around with us. Instead, configurable generic devices, either hand held or embedded in the environment, will bring computation to us, whenever we need it and wherever we might be. As we interact with these “anonymous” devices, they will adopt our information personalities. They will respect our desires for privacy and security. We won’t have to type, click, or learn new computer jargon. Instead, we’ll communicate naturally, using speech and gestures that describe our intent , and leave it to the computer to carry out our will.

New systems will boost our productivity. They will help us automate repetitive human tasks, control a wealth of physical devices in the environment, find the information we need (when we need it, without forcing our eyes to examine thousands of search-engine hits), and enable us to work together with other people through space and time.

As partial fulfillment to the Computer Engineering structure, we were supposed to given a seminar . I choose this topic. You can download the full seminar report from here. The PDF of the presentation is also available at this location.

permalink

Online C/ C++ Compiler

There are many times, when you have thought of compiling some code while surfing a website. Now to compile the code, start off with your favorite C/C++ Compiler is a bit difficult task. So an alternative is to use an Online C/C++ Compiler, designed by Siddharth Upmanyu. It is a full feature rich C/C++ compiler. You can even have command line parameters and upload an input file.

The Compiler is now available as Facebook Application – http://apps.facebook.com/onlinecompiler

Here is the link to FB app – http://apps.facebook.com/onlinecompiler

If you find the app not working, there could be minor glitches. Please reload the app. If it persists, kindly drop me a mail.