Friday, October 3, 2014

Khoj - The multi-platform search engine

Problem Statement: Most of the developer use more than one operating system. Be it different flavors of Linux or Windows or Mac. This generation is lazy, we want to finish things as soon as possible! So we use search. No need to remember location of files, just enter a string and let OS worry and fetch it for us. Here the problem arises. Suppose I have a 1 TB HDD. I insert into one OS, search for a file, let it index for 30-45 minutes then search. I lend my HDD to some friend of mine, then they do the same exercise or I plug the same to another OS of mine.

Now, searching is the most basic thing. I have a smartphone and want to know if a file is present in my PC or not, why wait to go home?

Solution: A generic framework with all device compatibility, Using a database, which can be easily ported, and provide a uniform searching experience with minimum latency across all devices. 


We already have very efficient searching tools, why another?

  1. Web based searching are quiet different from desktop searches, web based searches gives priority to "whole words" instead of sub-strings. For example, the string "example", "ample" would be treated differently in a simple web-search as there are many relevant results. As there are relatively fewer number of files in desktop, results with string "ample" will also return results with "example".
  2. Different platforms have different tools for searching, which index locally, not portable to other systems. A shared DB will not only help solve this problem but also provide homogeneous platform for all platforms.
What languages will be used to develop?
As this is being developed with "generic" in mind, currently we are restricting our back-end to python. We are yet to decide on front-end.

Github Link: Khoj

Monday, March 18, 2013

Arithmetic Practice tool

Placement season is always on and people just keep solving questions and all, but OOPS!! at some piece of time you run out of arithmetic questions or you are too lazy to do so (the latter case happens to me most of the times), I came up with a solution, why not develop a simple program to ease all worries.

As a result of which I developed a simple application: Arithmetic Practice tool. This application asks the user which one he wants to practice (Addition/ Subtraction/ Multiplication/ Division or a randomly chosen operation). The user also has the flexibility to choose the range of numbers he wanna work upon, in this version, I have just included integer operations.

NOTE: For all division problems, you need to give an answer upto three decimal places. (ie an accuracy of 0.001 is required)

The application can be downloaded from here.
Or you can simply copy paste this link http://goo.gl/Tn9e0 in your browser.

Advantages, once you are all set for a particular set of problems, particularly Data Interpretation in this case, you can really try this application. The source code is also provided with this, so that you can also try some changes. The app can particularly help students aspiring for examinations demanding speedy calculations.

The application is licensed under GNU GPL v3+