Thursday, November 19, 2009

God does not play dice

The title of this blog post is a famous quote by Einstein. This post is not on GOD or religion, but on the concept of probability. This post is also based on the concept of determinism and hidden variable theory.

First let's differentiate between an experiment and an event. An event simply occurs, whereas in experiment, we observe the event. Let's call this process of observing to note the outcome of the event as information retrieval process i.e we are trying to get information about the event when it occurs. Some of the information retrieval processes are seeing, hearing, or using any other sensory organs, taking a picture, video/audio recording, etc.

Note that information retrieval process may in someway disturb the event itself. See Heisenberg uncertainty principle. But for sake of this thought experiment, imagine we have some special information retrieval process that gets information about the event or experiment, without in any way disturbing the experiment. (Note, quantum mechanics says this is not possible. But I say this is not possible with currently available information retrieval mechanism. May be in future we may have sophisticated information retrieval mechanism where it might be possible).

Consider a experiment of rolling a dice. Do you think it is deterministic or probabilistic/stochastic ?

The deterministic point of view says that if we knew weight of dice, envirnomental factors (wind direction/strength, humidity), surface friction, density of dice, exact hand movements (angle of release, force during release), and many many other factors, then we can predict the exact outcome of the dice.

Since we don't know many of this factors (i.e hidden variables), we cannot predict the exact outcome of the dice. To model these variables, so that we can get very close to the outcome and in some way make the experiment useful, we use the concept of probability.

Tuesday, November 10, 2009

Presentation on Map Reduce Merge

I gave a presentation yesterday (here is the powerpoint slides) and I am writing this blog to just jot down things I have learnt.:
  1. I need to improve my grammar. The best thing to do is give a practice talk before your presentation.
  2. It is very important to add all the references in your presentation.
  3. If the paper is about a system, always add big picture describing the modules and their interactions.
  4. If possible try to prepare for a demo to get people excited about the topic.
  5. Always be sure of what you tell in the presentation. If you don't know something, say that "I don't know or I am not sure of it".
In the flow of talk, I said "As a database researcher" when I meant to say "As a database person". It seemed pompous at that time and somehow I preferred not to correct it at that time. But in retrospective as I think about it, I am a database researcher, may be not a good one and definitely not an established one. But still, I spent considerable time of my daily time doing research and I believe that qualifies me to be a "researcher".

Thursday, November 05, 2009

SACHIN TENDULKAR - The Greatest (Video Collection)

What is your motivation ?
Its the passion. I care about playing for India. Its being a dream and I am absolutely honored to do that for last 20 years. - Sachin Tendulkar.

First some of his great innings:










Second, his interviews:




Third, Documentaries:














Fourth, Best Quotes on Sachin:


And lastly, his bowling:

Friday, October 02, 2009

How to set up Trac + SVN on Ubuntu

sudo apt-get install trac
sudo apt-get install libapache2-mod-python libapache2-mod-python-doc libapache2-svn

# Create a directory where all your Trac projects will live
sudo mkdir /var/lib/trac
sudo mkdir /var/lib/svn

# Usernames
sudo htpasswd -cm /etc/svnauth urname
sudo htpasswd -cm /etc/svnauth nextuserrname

# Add following to /etc/svnaccess
sudo vim /etc/svnaccess
##################From here#########################

[groups]
developers = yourusername, nextusername
[ / ]
@developers = rw
* = r

##################Till here#########################

# Add following to /etc/apache2/sites-available/default
sudo vim /etc/apache2/sites-available/default
##################From here#########################



DAV svn
SVNParentPath /var/lib/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/svnauth
Require valid-user

AuthzSVNAccessFile /etc/svnaccess




SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/lib/svn
PythonOption TracUriRoot /trac

AuthType Basic
AuthName "Trac"
AuthUserFile /etc/svnauth
Require valid-user



##################Till here#########################


# Statically set the users in envvars
sudo vim /etc/apache2/envvars
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

# Reload the configuration
sudo /etc/init.d/apache2 reload


# Say ur project name is PhDProject
sudo svnadmin create /var/lib/svn/PhDProject

# Assign permissions
sudo chown www-data:www-data -R /var/lib/trac
sudo chown www-data:www-data -R /var/lib/svn

# Create Trac with SVN
sudo trac-admin /var/lib/trac/PhDProject/ initenv 'PhDProject' 'sqlite:db/trac.db' 'svn' '/var/lib/svn/PhDProject'

# Add urself to developers group
sudo trac-admin /var/lib/trac/PhDProject/ permission add urusername developers

# Optional: Some cool plugin
sudo easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk

# Re-assign permission
sudo chown www-data:www-data -R /var/lib/trac
sudo chown www-data:www-data -R /var/lib/svn

# Reload the configuration and restart
sudo /etc/init.d/apache2 reload
sudo /etc/init.d/apache2 restart

References:
http://trac.edgewall.org/wiki/TracUbuntuMultipleProjects
http://anantgarg.com/2009/03/25/subversion-trac-multiple-projects/

Wednesday, September 23, 2009

Meta-PhD

Why did I decide to do a PhD ?
When Chris asked me to do PhD, I was dead sure about one thing: I want to be in US for at least next 4-5 years of my life. So, I had two choices in front of me: either accept the SDE job offer from Microsoft SQL Server Data Mining team or accept Chris' PhD offer. Somewhere in back of my mind, I wanted to do a PhD after 3-4 years of my job. Also, Microsoft SQL Server Data Mining team was a dream job at that time. However, I decided to go for PhD for following reasons (ranked in the order of importance):
1. Why PhD?: For rest of my life, (except the daily chores and some personal issues), I want to THINK and DO certain work. I believe PhD sharpens (if not develops) the unbiased factual decision making process. It also helps you identify and enumerate some choices which you probably would not had thought of. (To be brutally honest, you don't need to do PhD for this, you just need to spent some time regularly acquiring this skills. PhD is one of the well-known an hopefully the simplest way to acquire them.)
2. Why Chris?:
a. I don't think I would find a better advisor than Chris (for "me"). There are two reasons for it. First, I am very comfortable communicating my ideas with him (both technical as well as non-technical). Second, Chris is an "awesome" researcher and I will learn a lot (and not just Database Research topics) from him.
3. Why PhD then and not afterwards?: If I jumped into job, I don't think I would ever return to PhD. (May be I think once I am settled down with good income, I would not have the motivation to start studying).

Though I have talked about skills that I would like to acquire in general, I would like to break it into my so-called mini-goals. The list below is a result of an hour long discussion with Ravi Jampani.

Mini-Goals for PhD (ranked in the order of importance):
1. Problem Identification Skills: Before I complete my PhD, this is the most important skill that I would like to acquire. For example, I should be able to identify potential problems in a given area after doing critical literature study.
2. Critical Literature Study or Building your base: This includes accumulation, simplification, contextual categorization (eg: Mindmap with Mnemonics) of the knowledge in my research field. This skill should also facilitate a way of frequently revisiting this knowledge base and also doing periodic "Lateral thinking" on it.
3. Multi-domain expertise: This means iterating skill 2 for multiple fields. It will also help for skill 1. The fields that I am interested in are Database, Data Mining & Machine Learning, Algorithms(with emphasis on Approximation and Randomization) and Mathematics (with emphasis on Statistics).
4. Indexing: Finding out who are good researchers in your field and always knowing what they are working on (kind of like fan-following).
5. Improve my communication skills and then writing skills. As of now, I ramble a lot and am almost never articulate in any discussion (though I believe that I am very persistent and continue the discussion atleast until I have communicated my ideas).
6. Collaboration of research with other people: This is least important skill as of now.

Useful advice from different researchers for new graduate students:
1. Chris:
- Indexing skill (i.e skill 4)
- Do not do exactly what the good researchers are doing.
2. Steven Weinberg:
- Start doing research (instead of writing this blog post ;) ), and pick up what you needed to know as you went along.
- Forgive yourself for wasting time. As you will never be sure which are the right problems to work on, most of the time that you spend at your desk will be wasted.
3. Richard Hamming:
- What are the most important problems in your field?, Are you working on one of them? and Why not?
- 'Knowledge and productivity are like compound interest.' Given two people of approximately the same ability and one person who works ten percent more than the other, the latter will more than twice outproduce the former. The more you know, the more you learn it is very much like compound interest.
- Luck favours the prepared mind (originally for Louis Pasteur). This essentially means that acquire skill 2 and 3 and you will soon find an opportunity to identify a 'good' potential problem and may be even solve it.
3. Others:
- There is not substitute for hard work. (Most important of all the advices)
- Be Persistent: "I have not failed. I've just found 10,000 ways that won't work" - Thomas A. Edison
- Explore as many areas as you can find. Read papers from different areas, not just your area.
4. Self:
- Be modest. The ego destroys the process of learning. Never disregard anyone who does not agree with you. Hear what he/she has to say and then try to think it through.
- Be committed to your problem. even if you think its not important. Finish it first and then start working on what you think is important.
- Think clearly, write clearly and talk clearly. Always talk with right amount of abstraction.

Thursday, July 23, 2009

Mistakes you can make in your first job

1. Not taking time to study the fundamentals.
Eg: If you are expected to write C++ program, first learn C++. Take time to understand classes, inheritance, composition, etc. By understand, I mean you not only need to know the syntax, but also imagine the scenarios in which they are useful (an which they are not). If you don't know STL or smart pointers, believe me you would be re-inventing some of its code inefficiently :) and your code might be prone to bugs.

2. Google search before you ask your team lead or team members. This protects you from asking stupid questions or worse committing stupid mistakes.

3. Under-estimating the importance of "requirement gathering" and "design" phase aka Start coding immediately. A good programmer always takes time to understand the problem and create a big picture of the project in his/her head.

4. Trying too hard to present what you are not. It is extremely difficult to live a lie. Remember honesty should be coupled with extreme desire to improve yourself and also hard-work.

5. Blaming others to improve your chances of staying in the job. Believe me nobody likes a snitch. If you commit a mistake, be brave and accept the responsibility. Be proactive and ask the mentor for what you can do to improve your chances instead.

6. Disregarding "Murphy's law" and not clearing your expectations with team members.
If you think there is slightest possiblity of any team member to commit certain mistake or make certain wrong assumption, clarify it.

7. Delving into details without getting the big picture (kind of re-statement of point 3). But this is so common that I need to mention it again.

8. While using new software library, not differentiating the interface part and core problem part of the project.

9. Ignoring the coding standards of company. If you company does not have one, try to follow the coding standards given in the book C++ Coding Standards: 101 Rules, Guidelines, and Best Practices.

10. Reinventing the wheel in your design aka not knowing what are design patterns. If you don't know what design pattern mean read Head First Design Pattern. If you have already taken course in design patterns, then revising Gang of Four book won't hurt.

11. Not using a version control. Chances are that you would break the working code when you are trying to add new functionality. If you are using a version control, then remember to add messages like "Working version 1.4", etc. and learn how to revert back to certain version. If you are not allowed to use version control, make copies whenever you implement and test new functionality.

12. Not discussing your design with others aka school-children syndrome. Think of it this way rather than sharing your trade-secrets; by explaining or helping others, you improve your knowledge base.

13. Not respecting chain of command. Always give credits to your mentors, even if you think they have not helped you in it. It is even worse, if you complain against your mentors to their managers. Remember habit 4 (Think Win-win) of 7 habits of highly effective people.

Two books you must read and re-read before joining the job,
1. 7 habits of highly successful people by Stephen Covey. (Summary)
2. Getting things done by David Allen. (Summary)

Sunday, July 05, 2009

Why are Indians targetted ?

I am writing this article in response to the article of same name in "Times Life" (a section in the news paper Times of India) dated July 5th 2009. Most of the ideas are borrowed from this article.

Let us first enumerate what could be the major reasons why Indians are targeted:
  1. Racism and jealousy
  2. Cultural and Behavioral habits (the "Herd" mentality)
I would like to ignore the first reason and want to focus on the second reason only. Here are the points that support my assumption:
  1. Serenity Prayer
  2. My experience in Gainesville, Florida suggests that most people are comfortable with working in a multi-cultural society. Some people may not like some sect of people, but it is usually due to personal preference rather than racism (It is important to note there is a difference. Just because I am from different race or ethinicity doesnot mean the other person has to like me. It is only when the other person starts humiliating you, it is racism).
  3. Whenever there is a inter-relationship problem, it is better to start identifying the problem in yourself first and try to improve it rather than finding problems in others and blaming them for the situation.
Statistically speaking, I have seen most Indians hanging out with only Indians. There are several reasons for that:
  1. We do not want to put extra effort to understand the cultural diversity and to come up with a harmony of both Indian cultural system and the host cultural system. For example, most jokes we share with our "Indian" friends might not be funny when we share it with people from different race.
  2. Fear of rejection/intrusion: We do not take up the initiative to talk to a "non-Indian" colleague and bond with him/her. By bonding, I mean come up with a level of comfortableness, where both you and him/her can enjoy daily discussions (say sports, politics, family, etc ..). Usually, people take this initiative only when both parties have to spend a lot of time with each other as colleagues.
  3. And many more ...
The bottom line is this ... Assume non-racist environment and ignore few "racist" wise-a**. It is very important to understand and respect the host culture. Put effort to find out common trivia regarding politics, sports, etc which might be a topic of daily discussions among peers. Participate in some (host-cultural) social events, such as going to a bar, bbq, etc. Always respect the host law. And be a good guest (i.e. make the host comfortable around you) !!!

This article does not in any way suggest changing your value system. I am proud to be an Indian, and I will never change by values (eg. respecting elders, praying, helping others, etc ..). But it doesnot mean only the Indian value system is the best and all others are inferior. I think I could learn a lot from US and it is necessary to put effort to learn the host culture.

Sunday, June 21, 2009

Shuffle functions

Very frequency asked question is "Write a program to shuffle a set of cards". There are many approaches to solve this problem.

Almost all of them treat the set of cards as a list and write the program to shuffle the list.

One approach is to emulate the human shuffling:
Hindu Shuffle; Riffle shuffle

Other techniques are discussed in more details in wikipedia

Here is an interesting but not optimal way(O(n lgn)) to shuffle a list:
In Ocaml:
let shuffle l1 =
let sortComparator x y =
(
match (Random.int 3) with
0 -> 0
| 1 -> -1
| 2 -> 1
| _ -> failwith "Error in shuffle"
)
in
List.sort sortComparator l1
;;

C++ Code:

template < class T >
bool sortComparator(T x, T y){
if(rand % 2 == 0)
true;
else
false
}

template < class T >
vector < t > shuffle(vector < t > cards) {
sort(cards.begin(), cards.end(), sortComparator);
return cards;
}

Friday, June 19, 2009

Kindle DX review

1. PDF capability:

For pdf documents, treat Kindle DX as a READING device and nothing else.

Does not Support: Note-taking, highlighting, zooming(both the document and font ) capability and has bad searching capability. Also there is no dictionary for PDFs

But it serves the purpose of READING - Resolution is good, it does not strain your eyes, and landscape view is good enough for most of my documents. Also, I prefer to take active notes rather than just higlight, it's not a big deal for me.

Transferring PDF - very easy ... just connect to USB and copy your PDFs to Kindle.

Steve Bain has more critical review on it.


2. Weight:

Extremely light atleast for me.


3. Durability:

Though material looks good, please don't expect it to be extremely sturdy. Hence I recommend using cover(either leather or neophryne) while traveling.


4. Battery life:

Extremely good. I haven't tested it very much but just turn off whispernet and you should expect 4 weeks of battery life


5. Choices of Books:

Amazon is undoubtedly the best choice.


6. Awesome feature:

Wikipedia is free .... anywhere in US !!!


7. Cost:

If you think $359 is OK for Kindle 2, Kindle DX is definitely worth $489.


If you donot like to read research papers on computer, you will save on great deal of printing and "trees" :)

As an engineering student, you will save a huge amount of money and space on printed books if you chose to buy Kindle DX.


Bottom line:

If you cannot live without highlighting and note-taking, DON'T BUY KINDLE DX ... go for Sony PRS-700(if you like text notes) or iRex Iliad(if you absolutely cannot live without handwritten notes)


If you think iRex is too costly (apart from the fact it has no support in US, you have to ship iRex to Germany) and it you want to READ pdfs without straining you eyes, definetely go for Kindle DX.

Thursday, June 18, 2009

Swine Flu

CDC has announced H1N1 flu as pandemic disease and my parents (back in India) were worried. Here are the few facts(as of June 12, 2009) that might ease their concern:
1. Respiratory mask are advised only to people with high risk of influenza (See table 1 at http://www.cdc.gov/h1n1flu/masks.htm)
Most of young college graduates do not fall into this category (unless you are studying health care or related fields). See http://www.cdc.gov/h1n1flu/masks.htm#footnote3

2. Number of confirmed or probable cases: 17,855
Number of Deaths: 44

Well, if you are an Indian, I guess you are pretty much immune to it (See Statistics of Malaria for India)
number of deaths | 9352 deaths per year
cause of death probability | 1 in 1110 ~~ 0.090%
rate of death | 1 death per 100000 persons per year
DAILY | 843 738 life years lost per year
DAILY rate | 80 life years per 100000 persons per year
For US, Statistics for Malaria are:
number of deaths | 3 deaths per year
cause of death probability | 1 in 768898 ~~ 0.00013%
rate of death | 0.0011 deaths per 100000 persons per year
DALY | 57 life years lost per year
Well, you can see statistically if you were not paranoid about fever or malaria or cold/cough in India (or US), you need not be worried about Swine flu either.

However, here are prescribed precautions by CDC for Swine flu:
  • Cover your nose and mouth with a tissue when you cough or sneeze. Throw the tissue in the trash after you use it.
  • Wash your hands often with soap and water, especially after you cough or sneeze. Alcohol-based hand cleaners are also effective.
  • Avoid touching your eyes, nose or mouth. Germs spread this way.
  • Try to avoid close contact with sick people.
  • If you are sick with a flu-like illness, stay home for 7 days after your symptoms begin or until you have been symptom-free for 24 hours, whichever is longer. This is to keep from infecting others and spreading the virus further.
  • Follow public health advice regarding school closures, avoiding crowds and other social distancing measures.
Reference: Statistics are gathered from Wolfram Alpha and CDC

Saturday, May 30, 2009

Research Notebook

After experimenting a bit with Evernote, I decided to move to OneNote for following reasons:
1. Evernote has no drawing tools. I like to draw and scribble a lot.
2. I get free subscription of OneNote as a student, whereas I need to pay for Evernote for some additional features like image recognition etc ... Though I don't need them right now, it would be handy to have them.
3. Onenote allows you to integrate audio and video notes, whereas Evernote is simply text based.
4. Onenote allows your notes to be arranged in hierachical folders, whereas Evernote is huge collections of notes with tags. Though I like the tagging feature (which Onenote also has), I don't think it is enough to organize my notes.

Though I think Synchronize feature in Evernote is awesome, I use Webexport + Publish as PDF feature in OneNote may be once a week. However, webediting feature in Evernote has no counterpart for OneNote, I will have to live with it until Office 2010. (I donot think LiveMesh solves this problem as I use Ubuntu on my lab machines)

I have used OneNote Web Exporter plugin to export my Research Notes for webview.

For now (until UF doesnot close my CISE account), I will maintain my notes at:
http://www.cise.ufl.edu/~npansare/webview.html and PDF at http://www.cise.ufl.edu/~npansare/ResearchNotebook.pdf

If you are using Firefox, you need to have Mozilla Archive Format add-on (since it is in MHT format). However, it still doesnot display properly. I recommend IE for webview or if you are a linux user, view the PDF.

Sunday, April 26, 2009

My bookmarks, research papers, books

I use xmarks to synchronize my bookmarks since I have both Windows and Ubuntu machines: http://share.xmarks.com/folder/bookmarks/W6kXue0nMH

I am experimenting with Zotero: https://www.zotero.org/niketanpansare/21978/items

If you have missed by previous post:
I am using citeseer for managing the papers I read: http://www.citeulike.org/user/niketan

Here is a list of books I would like to read: http://spreadsheets.google.com/pub?key=pRiihxKnNDBmNK4-OrOY0ZA

Monday, April 13, 2009

Time Management tips by Randy Pausch

1. Create a list of 100 things you want to do in life.

2. Ask yourself each time you are doing a thing --> why am I doing this ? Use the list for reference.

3. Also make sure you focus on critical few, rather than trivial many.

4. If you can dream it, you can do it.

5. Plan each day, each week, each semester. You can change your plan but you need to have one to change it.

6. TODO List - Break things down into little steps. Do the ugliest thing first.

7. Covey's four quadrant TODO:

 

Due Soon

Not Due Soon

Imp

1

2

Not Imp

3

4

 

8. Clean up the desk. Focus on one thing at a time.

9. Touch one piece of paper at a time. Your inbox is not your TODO list.

10. Recommended - Atleast 2 screens, Speaker phone, Desk space to work, Desk near window

11. Write - Thank you notes. Because it is rare. Gratitude is extremely helpful. (One Minute manager: Killer Whale Eg.)

12. Post-IT Notes

13. Say NO graciously. I will do it if you don't find anyone else.

14. Find your creative time and defend it ruthlessly. Spend it alone.

15. Find your dead time and schedule meetings, phone call during that time.

16. Buy a earphone piece for Iphone.

17. Keep a box for the person, then when the box is full, interrupt the person and tell him/her the things you have for them.

18. Voicemail: "... I encourage you to send me a mail @ ..".

19. Time journal. Update it every 1/2 hours. Monitor yourself after 3 days and 2 weeks.

20. Make a fake class - Take a book and go to library.

21. Doing things at last moment or Thinking Work expands to fill time, hence do it at end ---> Stress + Expensive (Work Hard). Better Approach: Make a fake deadline.

22. Treat the people well. (Do dirty work yourself).

23. If you want someone to get things done: Give them a specific thing to do, a specific date/time and specific reward or penalty.

24. Send a mail after a conversation so that there is no confusion.

25. Ask people to find out their agenda before meeting. One person is assigned who writes down decision made in the meeting and mail it to everyone.

26. Do not delete the email. Save them for later reference.

27. If a person has not responded in 48 hours, its OK to nag them.

28. When you are on vacation, keep a vacation responder. Note: Its not a vacation, if you read email.

29. Kill the television. Average person watches the TV for 28 hours a week.

30. Exchange money for time. Get other people to do trivial work for you. Eg: mowing the lawn, ...

31. You always have time for eating, sleeping and exercise. Never take time out of those.

32. Never break a promise; Call and renegotiate the deadline if you think you cannot finish it by deadline.

33. Feedbacks Loops: Ask in confidence.

34. Get a PDA if you don't have it and use it wisely.

 

I donot have brain to spare for things computers can do for me - todo list, calendars

 

Recommended Books:

1. One minute manager

2. 7 habits of highly successful people.

Tuesday, March 17, 2009

Creating flash cards using Latex

Installation (in Ubuntu):
1. Install Kile
2. apt-get latex texlive and texlive-latex-extra packages
3. Modify the /usr/share/texmf-texlive/tex/latex/flashcards/flashcards.cls to new flashcards.cls
4. Print them in pdf format for reading

My future Pet project:
1. Create a java viewer (since I use both linux and windows) for latex or use some open source java library that renders latex (I didnot find a good C# library that does it either).
2. Use the flashcard package.
3. Use supermemo algorithm or Leitner system to enhance learning experience.

References:
Guide to using flashcard document class: Alexander Budge's document
Installation:
Collections of good flash cards: http://www.physics.utah.edu/~jasonu/flash-cards/

Friday, March 06, 2009

How to access the machine in CISE labs @ UF

Here is CISE's official webpage for accessing CISE public machines: http://www.cise.ufl.edu/help/access/index.shtml

Here is quick summary:
To access linux or solaris cise machines, you can 
SSH using "Putty" on thunder.cise.ufl.edu (or sand, rain, bay, shine, storm, ...)
or SCP using "WinSCP"

To access Windows machine, you can remote desktop (or rdesktop) to new-mercury.cise.ufl.edu

If you have an office in CISE labs, you can access you machine using following steps:
Note: You will need a CISE account and password to the local machine. :)

You can replace 10.227.170.147 using your IP address.
 
To be done once: install vnc server and openssh in you session and vnc client on you home machine

Start vnc server on the machine (in CISE Lab)
1. Locally using command: vnc4server :n (where n is some number say eg. :2)
or on remote machine - these are steps 
1. open putty
2. ssh to rain
3. ssh to 10.227.170.147 from rain
4. vnc4server :n (where n is some number say eg. :2)

1. open putty
2. Go to Connections > SSH > Tunnels
Source port: 5901
Destination: 10.227.170.147:5901
3. Connect to rain.cise.ufl.edu n leave the session as it is
4. Open VNC client and connect to 127.0.0.1:1
5. Enter password in the small dialog box
6. gnome-session (if you get a terminal, you can skip this step by configuring the vnc server settings)

Sunday, February 15, 2009

Books I intend to read

I will keep updating this excel sheet. Here is the initial version:

They are categorized according to topics(field the book belongs to), authors and priorities (Priority doesnot imply the "goodness" of the book. I use that column for scheduling purposes).

I use citeulike for keeping track of research papers I read. Here is the link:

Friday, January 30, 2009

Memorizing pi to 70 decimal places

First 8 digits can be memorized using 2 different ways:

First, Counting number of letters of words:

How I wish I could recollect pi easily today

3.      1   4    1    5          9           2    6         5

 

Second, Major System (see below):

3. Turtle       bench       lao

3. 1 4 1 5       9 2  6       5 

 

Mnemonic for the remaining decimal places is using major system only:

 

(Disclaimer: This is not to hurt any person and do not in anyways express my opinion. It is only meant to be humorous, so that I could remember the mnemonic easily)

Homo love pic of Obama’s enemy for change = army mafia man

   3       5 8  9 7       9    3        2 3     84   6 2 6        4 3     3 8       3 2

 

Iqbal Singh favorite pocket shop maybe in Obama gully

 7 9 5  0 2      8 8 4 1   9 7 1    6 9    3    9         9   3     7 5

 

Note: there is no zero until now

 

Diesel fans, beggar, borrower help enemy seek hafta jar

1   0 5  8 2    9 7  4    9  4       4     59    2  3    0  7      81  6 4

 

Done !!!  So therefore pi is

3.1415926535897932384626433832795028841971693993751058209749445923078164…

 

Major System (Refine this list):

0

s, z, soft c

"z" is the first letter of zero. The others have a similar sound

1

d, t

d, t have one downstroke and sound similar(some variants include th)

2

N

n has two downstrokes

3

M

three downstrokes , also "m" looks like a "3" on its side

4

R

last letter of four, also 4 and R are almost mirror images of each other

5

L

L is the Roman Numeral for 50

6

j, sh, soft ch, dg, zh, soft g

a script j has a lower loop / g is almost a 6 flipped over

7

k, hard c, hard g, q, qu

capital K contains two sevens

8

f, v

script f resembles a figure-8. V sounds similar. (some variants include th)

9

b, p

p is a mirror-image 9. b sounds similar and resembles a 9 rolled around

Unassigned

Vowel sounds, w,h,y

These can be used anywhere without changing a word's number value

 

Note: When there are two same adjacent letters, consider only 1. Eg: mapped mean 391, not 3991. Also sound is important, not the letters, eg: Michael stands for 375. Also, g (hard) is 7, not 8. Also, nympho is 238 not 239.

You can also download pdf version of above blog entry: MemorizingValueOfPi.pdf