‘Technology’ Category

My Dating Algorithm

November 2nd, 2010

One fine day during Summer, I was waiting for caltrain at South Sanfrancisco station. There was a girl near to the ticket machine who was waiting too. She was so cute that I couldn’t wait to tell this to my roommate who was standing beside me. He looked and found her as average looking girl. I became bit upset with his not so affirmative reply

I told, my computer, look how cute and pretty she is. My computer, when fetched her details from its master database, got confused about my reaction as most people in its database had rated her as average looking. It even tried to ask me reevaluate my rating stating the girl’s average ratings. Furious me, announced a penalty to my computer for doubting my judging abilities.

Later I realized that the reason for finding her cute was due to the resemblance of her face to that of my first year college crush.  This was one of few secrets which I didn’t tell to my computer and it couldn’t find anywhere else.

The other day I found another girl who looked cute to me and who was looking similar to my one more crush in the final year of college.  My computer, as usual, found this girl as average looking again. But previously punished and based on its learning’s from its previous mistakes, it didn’t suggest me to reconsider my rating this time.

In the span of next two months, I found few more girls who were looking similar to my two college crushes in one or other features. One had similar eyes while the other had similar hair. I had told everything about these girls to my computer and what I had liked most in them be it a eyes or hair or smile.

Initially confused computer now had a more clear idea on my taste which is drastically different from the rest of world’s taste. Though the computer didn’t have details about my crushes, it did have details of few girls who I found similar to those crushes. Based on those details, computer analyzed its database and recommended few unseen girls whose details were similar to those of girls that I had found cute.

In fact, the computer went a step further and recommended few more who had combination of multiple features that I had liked most and are individual feature in earlier cases.

My computer, though never aware of my crushes, gave  recommendations who look similar to my crushes and sometimes even better a hybrid of both.

PS1: This is how the recommendation of Amazon, Netflix, Linkedin and other sites works.

PS2: The process explained in the above post is called as Collaborative filtering and recommender engines used in the sites mentioned in PS1 is one of examples of collaborative filtering.

PS3: The process of learning itself based on its previous mistakes is called machine learning and plays very important role in A.I. and related research areas.

Code Monkeys

October 5th, 2008

In today’s IT Industry,  a Software Developer is a person who codes program rather developing it and to make it  irony we call ourselves as developers instead of coders.

A developer in a small company often has to do all phases of software development by himself. The advantage of this is he will know the in and out of whole project right from requirement phase to acceptance testing to deployment in prod. The downside of this is a person has to do the tasks that he is not skilled for. A developer cannot design. Eventually, he develops the solution that satisfies his convenience instead of requirements.

A developer in a big company has to do only coding without thinking about other phases. In a worse case, he will be provided stub code with methods , parameters and return type .. etc. He has to fill up that method with required code just like filling up blanks with suitable words.

We always define program as a set of instructions that do required task. But we never care about effectiveness and quality of code. IT Industry has always produced poor software with low quality code. Tight deadlines which don’t give space for developer’s best makes him to do so. Unfortunately, performance of developer is always measured in terms of number of lines of code.

One of such mistake that we do always is writing unit test cases after writing code. I bet those test cases are the cases that never fail as we write those unit test cases according to the code we have written and not according to the functionality. Have you heard of Test Driven Development? I don’t know how many of us follow this Test Driven Development but one thing is sure most of us wont

We code. We test. We do whatever is needed. We never care about what models we should use. Infact, most developers even might not have known many models except for waterfall or spiral model ( that too if that person is from CS background ). Have you come across scrum or Extreme Programming?

Extreme Programming is one of the most debatable practice in Software Industry. You either love it or hate it. It takes software industry to more unconventional paths. XP breaks all walls and makes its own self defined room.

One last question: Do you write Java as java or as C? Inspite of repeated effort, I am still not able to come out of that. I still write Java as C  :-(

Identi.ca – New Microblogging Service

July 3rd, 2008

Today, that’s on 2nd July, Control Yourself, Inc. has launched a new microblogging service Identi.ca . It is similar to other existing microblogging services like twitter, pownce..etc. However there are differences. Loot at the features below.

Features of Identica

  • Identi.ca’s underlying software is available under an Open Source license. It uses Laconica.
  • It supports OpenMicroBlogging. This helps users to subscibe to updates / notices of other services which support OpenMicroBlogging.
  • Content ( except for private user data such as password, email, phone number..etc ) posted on Identica will be open content licensed under Creative commons. So, it is true open service.
  • By default, it provides ur1.ca url redirection service,  which is OSD-complaint, to shorten urls.
  • It supports Openid. WOW!
  • If you don’t like identica or got bored with it sometime later, you can take your data back, move on to another server or service of your choice or even on your own server. WOW! WOW!!.

I have already registered an account. I am 225th user. Subscribe to me at http://identi.ca/harsha

I have also added it to my gtalk. Considering the features mentioned above, I think it will get a huge success. Lets hope.

Linux as an alternative to Windows

May 1st, 2008

Why 95% of us use Windows as a primary OS when we have so many other options to switch? Why not Linux? Why not Mac?

Let me start with Mac. Why people don’t use Mac? There are many reasons for this. First one is “they are too expensive and unaffordable”.  They are more closed than Windows. They are not easily upgradeable and if something goes wrong, there is no way that you can do it by yourself. You must call Apple Tech Support guys.

Before I come to the point of why not Linux… first I would like to put a light on why people use Windows? It is because; Windows is the only OS that common man is most familiar with. He will learn how to use Windows with a least learning curve. He has become so comfortable with Windows that he don’t want to switch to any other OS even if that OS provides more than what Windows provides.

So, why people don’t use Linux?  We used to consider Linux is for programmers and not for common man. Earlier, Linux is used to be tough to install, operate and most of applications are meant to be for geeks.

Now also, we still believe that Linux is not for us. This is wrong.  Linux has changed considerably. It is no more a geek’s OS. It has become easier to install and use than Windows.

Why we should use Linux instead of Windows?

First point: Linux is free where Windows’ not. Windows comes in a single flavor whereas in Linux you can try numerous distros with lots of variations. Linux comes with lots of free software that you use according to your needs. Linux provides more than what Windows gives.

Linux gives you an opportunity to use / experience it before you actually install it on your machine. Now most of Linux distros come with Live CD. You can run Linux OS right from CD. If you like it, install it else simply try other distro… as simple as that.

One more advantage of Linux is, it allows you to have dual booting; that means you can have both Linux and Windows on the same machine and use whichever you want. In addition, Linux allows you to access Windows partitions from Linux and vice versa is not allowed.

For those who are switching from Windows to Linux for the first time, I would suggest to use one of the following three distros.

Ubuntu: Ubuntu is one most recently popular Linux distro; that is designed especially for common man. It comes in a single CD that can easily installed just like windows. It is packed with most free software that you need for your day to day processes. Perhaps, there are more reasons why Ubuntu is so popular.

Fedora Core: Fedora is another popular Linux distro which is sponsored by RedHat. Fedora is a community project and it ensures you that you will always get leading edge technologies shipped with latest distro.

Open SUSE: Open SUSE is another community project and is sponsored by Novell. Off late, Open SUSE is becoming more popular. Latest stable release of Open SUSE is 10.3. Currently, I have installed Open SUSE 10.3 in my pc.

You must have a question in your mind that if I switch from Windows to Linux, what about the applications I am using like MS Office, Winamp, Windows Media Player… etc.

Don’t worry, you will find alternatives for Windows softwares.. here, here and here.

Try Linux ! It’s easier than you thought.

Firefox 3 Beta 1: My Take

December 10th, 2007

Firefox 3 Beta 1 was released on 19th November, 2007 for developers and testers. As it is a beta version, it has been strictly mentioned that, Firefox 3 Beta 1 should be used only by developers and testers only.

I am using Firefox 3 Beta 1 for last two weeks. I have been using Firefox for many years. The main eye-candy of Firefox is its tabbed browsing. Tabbed browsing attracted me so much that, it made me to switch to Firefox from IE permanently. Now I rarely use IE even though IE7 featured tabbed browsing. MS communities have now started talking about IE8 in much more enthused way. Let me wait for that.

Back to Firefox 3… when I installed it, the first thing I encountered is incompatibility of many extensions, like google photos screensaver, which I use in Firefox 2. This definitely made me very disappointed. Since its beta, this can be accepted.

Having a first look, it didn’t seem there is a much change but UI looked somewhat brighter and clearer compared to Firefox 2. However for Vista users, it displays menus with vista native theme.

Although I didn’t see much change initially, as I went on using it, I saw drastic improvements over Firefox 2 .

Firefox 3 beta 1 has taken care of memory issue very well. Firefox 3 doesn’t consume huge memory. Although release notes says that over 300 memory leaks ha been fixed but I am still not sure whether memory leakage issue has been completely taken care of.

Second thing, I noticed is the speed of firefox loading, page loading and tab opening. Speed has been increased considerably. Now tabs open faster. Firefox doesn’t hangs if I open many tabs simultaneously.

As a security point of view, more stress has been given to it. Now, firefox blocks known malware, web forgery, phishing sites to make you to browse more securely. Now , only secure add-ons are allowed. Anti-virus integration is embedded to check for downloaded executables automatically. Also, by clicking on favicon of site you are browsing you can view the details of that site.

One more major change you will notice is inclusion of ‘Firefox Places’. Now all bookmarks, history and preferences are stored on SQLite database instead of flat files. This prevents accidental data loss due to crashes.

Bookmarking has been made simpler and better. The star button beside address bar lets you bookmark the site with a single click without any interruption. You can add text tags to bookmarks. Searching for bookmarks and history is also made simpler. By just typing keywords or tags in address bar, you can get corresponding matching site urls.

Regarding password management, now popup doesn’t appears for asking to save password instead an info bar appears on the top from which you can save password. The advantage here is it lets you save passwords after successful login. This avoids you saving incorrect password for that site.

Save Tabs feature has been added. Now if you try to close firefox while multiple tabs are open, it will ask you whether you want to save tabs before quitting.

One more new feature added is Page Zoom. Now, Firefox, like Opera, can zoom page wise instead of zooming only text. It also enables you to save zoom settings per site.

A search feature has been added to download manager so that we can track downloads easily. Now downloads can be paused and resumed across sessions.

Initially I thought to use this new beta version only for a while. But now I have addicted to it although I find some minor bugs during usage

You can download beta from here.