Indian Astronomy - A Primer

Indian Astronomy - A PrimerIndian Astronomy - A Primer by Dr. S. Balachandra Rao
My rating: 5 of 5 stars

I read this book after I had completed reading the book The Greatest Inventions of the Past 2,000 Years. In that, I noted down the contributions of The Indo-Arabic Number System as one of the significant inventions in the past 2000 years.

The important thing to note was, the positional value number system along with 0 was invented a 1000 years before the birth of Christ and it was systematized by Aryabhatta in the year 499 CE.

This greatly increased my curiosity for Indian mathematics. The book was a boon in that regard. It dwells with the Indian Astronomy, mathematics with a verifiable accuracy. We are given a survey of Astronomy in , Vedanga Jyotisa , Siddhantha (established truth), and giving the information about Aryabhatta I, Bhaskaracharya. It goes into details about Zodiacs and constellations (as calculated by the astronomers), Yuga System and Eras.

I came to know that Kali Yuga commenced on 17/18 February 3102 BCE, at the demise of Krishna.
So, as of this writing of the review, we have been living in **5119 years** since the start of Kali Yuga (an epoch).

The book also introduced me to the concept of Luni-solar months, were lunar months are pegged upon to solar months. The metric value is called Ahargana,. In Sanskrit 'ahoratra' means one full day and 'gana' means count. Hence, the Ahargana on any given day stands for the number of lunar days that have elapsed starting from an epoch.

This is the counting system used in Indian calendars. After giving details about this, book then talks about Co-ordinate systems, Rasi and Naksatra systems, Panchanga (Panchaga means 5 parts which are Tithi, Naksatra, Vara, Yoga and Karana) and gives the reference for the calculation mean positions of Sun, Moon and Planets.

Given the words like "Panchanga", "Tithi" etc, one would expect this book to be written by some astrologer or might have some preachiness to it. This is where, I think, the book shines. No, it has none of the preachiness, it has none of the emotional or venerable expressions towards those concepts. Instead, those are presented as Indian mathematics, by done mathematicians in India when as they pursued their understanding of the universe and recorded them.

The book is written by Dr. S. Balachandra Rao is was a professor of Mathematics, who has published around 20 books in subjects ranging from Numerical methods, differential equations, calculus, Indian Astronomy, and mathematics.

The Indo-Arabic Number System

Here are two articles about inventions that were listed Book Review: The Greatest Inventions of the Past 2000 Years book that I wanted to note down in my blog for future reference.

The reason I wanted to note down is, I personally find that numeric system that we use today has stood the test of time and is limitless. And my second reason could be due to a emotional attachment and association that is imbibed in me.

V. S. Ramachandran

My favorite invention is the place-value notation system combined with the the user of a symbol 0 for zero to denote a nonexistant number; this marks the birth of modern mathematics. This system was invented in India, probably during the first millennium before Christ, but was first systematized by the Hindu mathematician and astronomer Aryabhata I at the tail end of the fifth century and then transmitted to the West via the Arabs (hence the phrase "Arabic Numerals"). Before this time, even simple arithmetic was tedious and time-consuming (as when the Romans and Greeks used the cumbersome "Roman numerals" - sometime still used in the west). And math, of course, is essential for all science. Without the early invention of zero and place value as well as the use of the a symbol to denote an unknown quantity in an equation (algebra), also from India, subsequent developments could not have occurred. There would be no calculus, no newtonian or Galilean science, no computers, and essentially no modern world.

Keith Devlin

"What is the most important invention in the past two thousand years?" is one of those questions that no correct answer - like "What is the best novel / symphony / movie?" - But if I had to make a choice, it would be the Hindu-Arabic number system, which reached essentially it's present form in the sixth century. Without it, Galileo would have been unable to begin the quantificational study of nature which we now call science, and we would not have had calculus, another major invention of the period in question.

Before of it's linguistic structure, the Hindu-Arabic number system allows humans who have an innate linguistic fluency but only a very primitive number sense to use their ability with language to handle numbers of virtually any useful magnitude, with as much precision as required. Today there is scarcely any aspect of life that does not depend on our ability to handle numbers efficiently and accurately. True, we now use computers to do much of our number crunching, but without the Hindu-Arabic number system we would not have any computers.

In addition to it's use in arithmetic and science, the Hindu-Arabic number system is the only genuinely universal language on earth - apart, perhaps, from the Windows Operating System, which has achieved the near universal adoption of a conceptually and technologically poor product by the sheer force of market dominance. By contrast, the Hindu-Arabic number system gained worldwide acceptance because it is far better designed and much more efficient for human usage than any other number system.

The Greatest Inventions of the Past 2000 Years

The Greatest Inventions of the Past 2,000 YearsThe Greatest Inventions of the Past 2,000 Years by John Brockman
My rating: 5 of 5 stars

I found this book fascinating. It provided me a window to glimpse at the history of humankind's inventions, inventors, and discoverers. The aspect that I liked the most was to do with things that I didn't know about or with the aspects that I had overlooked in the inventions.
For e.g. Invention of Rudder played a major role in navigation, the invention of multiple other devices, funding from the king that helped made Columbus's journey possible. Modern printing press's invention was for printing Bible. English first came to the US to occupy the lands in the Longitude 77, that had significance in John Dee's calendar. The Hindu Arabic numeral system that contributed greatly to the numerous advances in the western world and thinking. Drawing the connections between the inventions and context of these inventions were equally captivating as the invention itself.

Solving Hard Problems

I have personally been annoyed when I cannot find solution to hard problem. I used to think that "looking up" for an answer is not being honest. That stance may not help. After trying, I think, a student (like me), could benefit by looking up the answers for hard problems, and try to emulate it.

Found this in the words a professor giving advise to his students.

Students join forces on the problem sets, and some students benefit more than others from these weekly collective efforts. The most brilliant students will invariably work out all the problems and let other students copy, and I pretend to be annoyed when I learn that this has happened. But I know that by making the effort to understand the solution of a truly difficult problem discovered by one of their peers, students learn more than they would by working out some less demanding exercise.

From 10 Lessons of an MIT Education

Nuclear Gandhi in Civilization V

It seems like the developers of Civilization V once decided to store aggresiveness index of leaders in a unsigned int. And Gandhi, as the most pacifist leader that he was, was assigned lowest number 1. Also, in the game play if a society adopted democracy, the aggresiveness score was reduced by 2.

So, when Gandhi adopted democracy, his aggresiveness score became 1 - 2 = -1, and as it was unsigned int, and it gained a very high value.

#include<stdio.h>

int main(void) {
    unsigned int i;
    i = -1;
    printf("%x\n", i);
}
$ clang unsigned.c
$ ./a.out
4294967295

And thus Gandhi was ready to nuke whenever there is a conflict.

https://i.kinja-img.com/gawker-media/image/upload/s--4uHRnRfT--/c_fit,fl_progressive,q_80,w_636/dnqxrzdmsdkud7fmsqyp.jpg

S. Chandrasekhar's 107th Birthday

Looks like Google celebrated Subramanya Chandrasekhar's 107'th birthday with a doodle. I had missed it, so I got excited to go check it out again.

https://www.google.com/logos/doodles/2017/s-chandrasekhars-107th-birthday-5671696282419200-2xa.gif

The doodle is amazing! It illustrates the concept of a star when it gains 1.4 times the mass of sun will turn into white-dwarf and eventually into a black-hole!

Chandrasekhar discovered this, and it is known as Chandrasekhar's limit.

Over Estimating One's Ability.

This seems like a typical my-thing. I've fallen into this trap many times. It looks people in my profession fall prey to this too.

That’s one reason I don’t miss IT, because programmers are very unlikable people… In aviation, for example, people who greatly overestimate their level of skill are all dead. - Philip Greenspun, co-founder of ArsDigita, excerpted from Founders at Work.

Blockchain Demo

https://github.com/anders94/blockchain-demo is the simplest and most intuitive explanation of blockchain that I have come across so far. In the very short YouTube video, the author guides us through starting with a hashing function, a block, the concept of a signature in the block, then a blockchain, a distributed blockchain, the concept of immutability in the blockchain and the distributed blockchain, recording transactions in the blockchain, and verifying transactions in the blockchain.

The Collapsing Universe

The Collapsing Universe: The Story of Black HolesThe Collapsing Universe: The Story of Black Holes by Isaac Asimov
My rating: 5 of 5 stars

The Good Doctor once again explains Cosmology in lucid terms. He starts off with simple premises, known facts, composes and slowly leads up to higher concepts, ultimately leading to the concept of "Black Hole". The book had a "trill" factor to it, as we discover the nature of black holes and what constitutes a black hole and how the universe might have formed.

I was "wow"ed by this book.

Some exciting learning here with this book. I learnt about the following:

I'll be a hummingbird

This is an inspiring short video. This is very relevant to me because in many projects, especially the big ones, I feel like the things are not designed well. The situation is chaotic, it's burning all the time. Most of us are like those big resourceful animals in this story. Instead, if we be the hummingbird, the experience is well worth it.

Science of Abstractions

Fundamentally, computer science is a science of abstraction — creating the right model for thinking about a problem and devising the appropriate mechanizable techniques to solve it. - From a Ullman book.

Abstraction is not a complex concept. And abstraction in the sense we use it implies simplification, the replacement of a complex and detailed real-world situation by an understandable model within which we can solve a problem. That is, we “abstract away” the details whose effect on the solution to a problem is minimal or nonexistent, thereby creating a model that lets us deal with the essence of the problem.

Computer Bugs - Roundoff Error and the Patriot Missile

0.10

  • During the Gulf War in 1991, a U.S. Patriot missile failed to intercept an

  • Iraqi Scud missile, and 28 Americans were killed.

  • A later study determined that the problem was caused by the inaccuracy of the binary representation of 0.10.

  • The Patriot incremented a counter once every 0.10 seconds.

  • It multiplied the counter value by 0.10 to compute the actual time. However, the (24-bit) binary representation of 0.10 actually corresponds to 0.099999904632568359375, which is off by 0.000000095367431640625.

  • This doesn’t seem like much, but after 100 hours the time ends up being off by 0.34 seconds—enough time for a Scud to travel 500 meters!

  • Professor Skeel wrote a short article about this.

Scale of 256-bit Security

This video, titled How Security is 256-bit Security, provides an intuitive understanding of the immense scale of 256-bit security. The discussion is framed in the context of Bitcoin Bitcoin (abbreviation: BTC; sign: ₿) is the first decentralized cryptocurrency. Based on a free-market ideology, bitcoin was invented in 2008 by an unknown entity under the pseudonym of Satoshi Nakamoto. Use of bitcoin as a currency began in 2009, with the release of its open-source implementation.: ch. 1  In 2021, El Salvador adopted it as legal tender. It is mostly seen as an investment and has been described by some scholars as an economic bubble. As bitcoin is pseudonymous, its use by criminals has attracted the attention of regulators, leading to its ban by several countries as of 2021. , which uses the SHA-256 SHA-2 (Secure Hash Algorithm 2) is a set of cryptographic hash functions designed by the United States National Security Agency (NSA) and first published in 2001. They are built using the Merkle–Damgård construction, from a one-way compression function itself built using the Davies–Meyer structure from a specialized block cipher. cryptographic algorithm. Other cryptocurrencies, or alt-coins, may use different cryptographic algorithms, but the principles of scale and security remain relevant.

The video helps to conceptualize the robustness of 256-bit encryption, emphasizing its importance in securing digital assets and communications in the modern world.

The Chip by T.R.Reid

The Chip: How Two Americans Invented the Microchip and Launched a Revolution

This is the story Semi-conductor revolution pioneered by Robert Noyce and Jack Kilby Author has done an excellent job of explaining the contribution of these engineers and success of American Industry as a result of these individuals.

Compiler Design Concepts in Tamil and Hindi

I came across this Youtube channel, wherein a person by name Santhosh is explaining very hard to understand Compiler Design Concepts in Tamil

His playlist is here

I also came across compiler design lecture explanation in Hindi by a different people.

These are hard concepts. Even after reading the book, if I am struggling to understand; viewing these videos seems give a comfort and confidence. Something to say about the languages that we grew up with.

alt-coins

I like this anarchist movement of digital crypto-currency. People are betting on algorithms!

I spent time looking around and found that I liked z.cash, the concept of mining with hashpowers and effort that has gone into setting up cloud mining companies like genesis-mining.com and exchanges like kraken.com.

Trying with coindesk.com seems only like an entry point to this messy world.

IntelliJ now warns on co-routines types.

When using Python3's async-await, not awaiting on coroutines was one of the common mistakes, I was making. I discovered that newer version of IntelliJ added a warning for it, so that it can spotted when you are writing the code itself.

https://dl.dropbox.com/s/iumdzyhqmkz5qxf/Screenshot%202017-06-15%2008.06.18.png?dl=0

Language Instinct

It looks like children can learn multiple languages, and they can understand the structure of words used in language. Today we visited an ice-cream shop, and after enjoying ice-cream, Siddhartha said:

Siddhartha: I like the ice-cream.

Shalini: Say it in Sourashtra.

Siddhartha: Ice-cream love-ares.

The way his mind seems to have worked is. He placed the Subject of the sentence first, as it is usually in Sourashtra.

He did not know the equivalent of "like" in Saurashtra. So, he used the English word "love" and added the suffix "ares", which means, "being".

Correct translation should be: Ice-cream opa-ares.

It's interesting how close he was in constructing a sentence by intuitively forming the grammar and creating words using smaller parts.

I think, adults do this too.

Essentialism: The Disciplined Pursuit of Less

Essentialism: The Disciplined Pursuit of Less Essentialism: The Disciplined Pursuit of Less by Greg McKeown
My rating: 3 of 5 stars

The essence of this book is "Prioritize the activities that you are planning to do, do the most important ones properly.". By spreading thin, we waste our time, energy and don't complete activities to our satisfaction too. This message is drilled down the reader using multiple examples and anecdotes from successful businesses and business leaders. Excellent message, I admire it. The book was long for this simple message. I would have loved it more if the book was cut-down to 1/10 of its size.

100 square in primes

Every number can be expressed as product of prime numbers.

Here is Daniel Finkel’s 100-square in primes. Just stare at it for few minutes to realize it's beauty.

https://cdn-images-1.medium.com/max/1600/1*Cm26rZNDjDMh9IonCO1vJQ.png

The Financial Expert

The Financial Expert The Financial Expert by R.K. Narayan
My rating: 5 of 5 stars

The story of Margayya will remain etched in mind forever. For that story reminded me of a paternal grandfather's elder brother, who was an accountant and a businessman and my maternal grandfather who was a very successful businessman, and who overcame odds multiple times.

One particular incident narrated in this story made me recollect my childhood in Madurai. Narayan narrates that during summer, the school children would sometimes come and ask for water at Margayya's house. That used to happen at my grandma's house at Madurai too. We had a "Copper Sombu", a form of crockery, to fetch water from inside for the thirsty and sometimes when the passerby asked for more water, we used go inside, fetch another full sombu and share with them. Those passerby's had not relation to us, and they would simply drop by when thirsty.

When Narayan shares these small incidents in the storybook, a reader who is grown up in India is sure to become nostalgic and appreciate many nuances of Indian life.

I loved reading this book.

Performance Orientation vs Mastery Orientation

On the topic of learning, it is widely recognized that "mastery orientation" is more effective than "performance orientation." Mastery orientation involves doing something because you genuinely want to learn or improve, rather than to prove your abilities to others. The focus is on personal growth and self-improvement. This is the essence of mastery-based learning.

A memorable example of this concept can be found in the final dialogue from the movie The Karate Kid:

Mr. Han: Just tell me, Xiao Dre, why? Why do you need to go back out there so badly?

Dre Parker: Because I'm still scared. And no matter what happens tonight, when I leave, I don't want to be scared anymore.

This dialogue highlights the importance of overcoming personal fears and challenges for self-growth, rather than seeking external validation.

I also came across an insightful article titled ["Awesome By Proxy: Addicted to Fake Achievement"](http://www.pixelpoppers.com/2009/11/awesome-by-proxy-addicted-to-fake.html). The author reflects on how they were choosing games that provided a false sense of achievement and how they decided to change their approach after introspection.

> We humans are remarkably adept at finding ways to lie to ourselves, and ways to be self-destructive.

This quote serves as a reminder to critically evaluate our actions and motivations, ensuring they align with genuine growth and learning.

Mastery orientation encourages us to focus on the journey of learning and self-improvement, rather than being fixated on external rewards or recognition.

Google Auto Draw

https://aiexperiments.withgoogle.com/autodraw - I really liked this experiment. You can doodle something and it will pick your doodle and give you a proper picture. For e.g. below I drew a flower and than could get a neat version.

If you are web-developer, no more struggling with creation for favicons. :) outsource it to AI.

My drawing:

https://dl.dropbox.com/s/5q3g581fjj6j3h8/Screenshot%202017-04-16%2019.05.52.png?dl=0

Computer Output:

https://dl.dropbox.com/s/89npmolgfarbytb/Screenshot%202017-04-16%2019.05.59.png?dl=0

Steve Jobs: How to start a business

This is a short documentary on Steve Jobs, trying to start again with the NeXT computers. It captures him as a individual working with his team, using his experience, build and sell a computer for education market.

Given the team he had, the approach he took, it seems that the result was a successful one.

BYTE in 1989 listed the NeXT Computer as among the "Excellence" winners of the BYTE Awards, stating that
it "shows what can be done when a personal computer is designed as a system, and not a collection of
hardware elements". Citing as "truly innovative" the optical drive, DSP, and object-oriented programming
environment, the magazine concluded that "the NeXT Computer is worth every penny of its $6500 market price".

CS50 Lecture by Mark Zuckerberg

Listened to this guest lecture by Mark Zuckerberg in 2005. He was not world famous then yet, so the audience size is small and they ask pointed questions about facebook. This was supposed to be a computer science class, and Mark chides multiple times at the crowd that they are not asking CS questions yet.

Mark Zuckerberg's personality comes out well in this lecture. The interesting things that a computer science engineer can pick up is, Mark suggests, knowing "C" you could jump to "PHP". The idea about scalable architecture, performance optimization early in the game etc.

His thoughts on running a business in a competitive environment were interesting too.

The Meaning Of It All - Richard Feynman

https://dl.dropbox.com/s/w6ilwgd9niepm8c/meaning_of_it_all.png

This is a short non-technical book consisting of compiled speeches of Richard Feynman. It does not into physics, but covers a lot of topics like religion, politics, society, ethical questions in science, atom bombs and scientist motivations. Richard feynman has lot of context to explore all these areas. Plus, his communication style is very pleasant.

I usually avoid reading general books like this. But I happen to pick this up, and on a day, when I was about to give some leeway into an astrology (it's not a science) shared by my close ones, having just reading a topic in this book gave me excellent points to bring my thinking back into track. Contrary to my assumption when starting to read this book, I found it extremely useful!

Intelligence is Malleable

Received this motivational quote from Khan Academy today.

Recent research shows that students learn more when they are taught that intelligence is malleable and can be grown through hard work. Students do worse if they believe that intelligence is fixed, and so are afraid to make mistakes or ask questions because they will look like they aren't smart. Let your students know that they're getting smarter every minute they spend practicing and tackling tough problems!

Git Clean Shortcuts

I added these git clean short-cut aliases to my config.

[alias]
   cls = clean -x -n -e *.iml -e .idea
   cl = clean -x -f -e *.iml -e .idea

Often, I would mistakenly delete my IntelliJ idea files and I will loose the various customizations I had done. This setup will prevent the mishap from happening again.

How to become a better programmer by James Long

The original post is here.

I might have stumbled upon this via hackernews and this topic is of perennial interest to me. The general advice given were helpful. I liked the specific, measurable suggestions too. These were:

  • Learn C - I know C. I have written C. I will need to get back to writing in C.

  • Write a compiler - Not yet.

  • Learn macros - Not yet.

  • SICP - Not yet.

  • Understand continuations - Not yet.

  • If anything, just try a new language - I try this every now and then. The emphasis on his post were learning functional languages which, I think, I will be starting this year.

Introduction to Siddhartha Gautama Buddha and Buddhism

I listened to "Introduction to Siddhartha Gautama Buddha and Buddhism" at Khan Academy. It was consistent with what I had known about "Siddhartha". This 9 minute lesson dwells into core-idea and philosophy shared by Siddhartha pretty quickly and explains it succinctly.

Andrew Carnegie, an immigrant and child laborer.

We know of the Andrew Carnegie as the famous philanthropist who donated huge portions of his wealth for setting up public libraries across united states. What I was not aware was, he as an immigrant and a child laborer who got benefited from his reading, when one of his boss opened up his library on Saturdays for his workers.

Got to know this from a very tangential post titled Keep the Internet Open

From Alan Kay:

Yes -- in fact, the original notion about all this was to be in the same spirit as the 1936 Electrical and Telephone Federal Act which was specifically aimed at rural areas that the utilities didn't want to spend money to reach, so the fed mandated "power and phone" as a kind of universal right. This has also been a theme of the EFF. The basic impulse was also one of the drivers behind Carnegie's huge support of the free library system in the US (the whole story there is interesting, including some of the high minded stipulations in the Carnegie bequests, which I've on occasion tried to get the Internet communities to buy off on).

Every Carnegie library had to have two special rooms -- one just for children, and the other where people could be taught to read. Part of the Carnegie money for the libraries supported the reading teachers and sessions. Carnegie was an immigrant and child laborer who could read a little. One of his earliest bosses would open his home library to his workers on Saturdays. Carnegie used this to raise himself up, and never forgot how it happened. (He was also one of the few truly rich people ever who said he was going to give it all away to benefit the civilization around him, and actually did it.)

Analyzing the Smoky US Travel Ban imposed on refugees on March 6, 2017

I tried to determine the motivation behind a Travel Ban issued in US on March 6, 2017 against certain nations. I tried to read the document directly instead of being influenced by numerous news articles.

My reading of the document, whose entire text is available here, leads me to believe that this move is a vindictive, politically motivated, irrational and causes harm to everyone living in US (not just the citizens).

Let's try to analyze this rationally and ask questions.

Defend the poor and fatherless: do justice to the afflicted and needy

No matter what your identity is, as a human, you are taught to protect the weak, stand-up against cruelty. If you protect the weak when you are strong, rationally someone else will keep you safe when you come become in your old age.

Who are refugees and what is their process to come to the US?

Refugee a person who has been forced to leave their country to escape war, persecution, or natural disaster.

If you are a Tamil speaking person, you can identify the refugees as Sri Lankan Tamil's who fled to TamilNadu due to oppression based on race and language.

Safe and Sound nations welcome refugees as part of their commitment towards peace of the world.

  • India, after vetting, keeping in line with it's broad mindedness, welcomes refugees.

  • US follows a 2-year of vetting, and so far with it's broadmindedness has welcomed refugees too.

  • Britain, vets and welcomes them.

  • Australia, vets and welcomes them.

  • Germany, vets and welcomes them.

What happens when you block refugees from certain countries for a short period of time?

Nothing changes in practice. In theory, you create an opinion and give a signal to other countries and your territory is not a safe place. If that is not the situation, you are just oppressing the weak. This is happening with the United States banning people from certain nations.

  • It is politically motivated by a coward at the top of the government who signed this.

  • It is vindictive and reactionary to the defeat received from the judicial system trying to hold up humanities for the country.

  • It is creating divisive identity-politics, harboring people who side with racism and are phobic towards Islam religion in America.

  • It is giving way to hate crimes by racist-terrorists in America. Indians in first week of March 2017, were subjected to this with 2 deaths and 1 person wound with injuries due to racially induced gun-violence.

Now, to the text of this travel-ban:

https://www.whitehouse.gov/the-press-office/2017/03/06/executive-order-protecting-nation-foreign-terrorist-entry-united-states

The title says "Foreign Terrorists". In fact, US has 2 years to vet any applicant and determine if the person is a terrorist or not. This ban for 90 days is undermining the 2-years of vetting period.

The claim is:

It is therefore the policy of the United States to improve the screening and vetting
protocols and procedures associated with the visa-issuance process and the USRAP
  • What can a 90-day ban achieve, which could not be done for more than 730 days? The document fails to answer that.

Iran, Iraq, Libya, Somalia, Sudan, Syria, and Yemen.  These are countries that had already been
identified as presenting heightened concerns about terrorism and travel to the United States.
  • Where is the proof?

Additionally, Members of Congress have expressed concerns about screening and
vetting procedures following recent terrorist attacks in this country and in Europe.
  • What concern have they expressed and where is the proof? The terrorist attacks from the people of the above nation in US is 0. Why have not the members of congress raised concerns for racially induced gun-violence?

Nationals from the countries previously identified under section 217(a)(12) of the INA warrant additional scrutiny
in connection with our immigration policies because the conditions in these countries present heightened threats.
  • Where is the proof?

The following are brief descriptions, taken in part from the Department of State's Country Reports on Terrorism 2015 (June 2016), of some of the conditions in six of the previously designated countries that demonstrate why their nationals continue to present heightened risks to the security of the United States:

It then, provides snippets on the crimes committed by the Individuals from the countries.

We can look at the entire list, which is claimed as an authoritative reference: https://www.state.gov/j/ct/rls/crt/2015/

  • Why is it citing the reports from 2015 for a 90 day action in 2017?

  • There are other nations in the list, why pick up only 7?

  • What has changed in 1 months that a travel-ban on Iraq is no longer included and suddenly that is considered safe?

This is answered here.

In addition, since Executive Order 13769 was issued, the Iraqi government has expressly undertaken
steps to enhance travel documentation, information sharing, and the return of Iraqi nationals subject
to final orders of removal.  Decisions about issuance of visas or granting admission to Iraqi nationals
should be subjected to additional scrutiny to determine if applicants have connections with ISIS or
other terrorist organizations, or otherwise pose a risk to either national security or public safety.
  • If this is the case, just call the requirement that provide "travel documentation".

  • This still does not justify the prejudice displayed with countries as a whole.

The ban, tries to support itself by giving some examples like this.

Recent history shows that some of those who have entered the United States
through our immigration system have proved to be threats to our national security.

The incident is this one: https://en.wikipedia.org/wiki/2010_Portland_car_bomb_plot

  • The person involved did not have a ground from Somalia. What makes the claim that the entire country is at fault?

  • Why is the 2010 incident being referenced for this Ban? Where are the incidents for other countries?

These are the glaring holes in the document.This was signed by someone who did not take effort to read the document. It was prepared by the salespeople for money.

As new challenges crop up, this bad-act will be forgotten soon. Keeping quiet does not seem to be right thing to do. Let us be aware, spread correct information and help to bring bad-actors down.

Spirituality without Religion

Read a brian pickings article titled Neuroscientist Sam Harris on Happiness, Spirituality Without Religion, and How to Cultivate the Art of Presence

The essence of this was discovering that feeling in that a person feels extremely comfortable and happy with the self. That feeling is described using a loaded word called "spirituality" and associated with religion. For folks who have experienced it, it is not related to religion at all.

It is outside of it. It is an innate existential feeling that one can get, when a person is honest with his thoughts, feelings and happy for the present moment.

CPython moved to Github

CPython project moved it's source code hosting from self-hosted mercurial repository, at hg.python.org to Git version control system hosted at Github. The new location of python project is http://www.github.com/python/cpython

This is second big version control migration that is happening since I got involved. The first one was when we moved from svn to mercurial. Branches were sub-optimal in svn and we used svn-merge.py to merge across branches. Mercurial helped there and everyone got used to a distributed version control written in python, mercurial. It was interesting for me personally to compare mercurial with the other popular DVCS, git.

Over the years, Github has become popular place for developers to host their projects. They have constantly improved their service offering. Many python developers, got used to git version control system and found it's utility value too.

Two years ago, it was decided that Python will move to Git and Github. The effort was led by Bret Cannon assisted by number of other developers and the migration happened on Feb 10, 2017.

I helped with the migration too and helped with providing tool around converting the hg to git, using the facilities available from hg-git mercurial plugin.

We made use hg-git, and wrote some conversions scripts that could get us to the converted repo as we wanted.

  1. https://github.com/orsenthil/cpython-hg-to-git

  2. https://bitbucket.org/orsenthil/hg-git

Now that the migration is done, we are getting ourselves familiar to the new workflow.

Yashwant Kanetkar - Let Us C

I came across an article on Yashwant Kanetkar, and it rekindled many of my fond memories.

Let Us C is not merely a book, but a bible for millions of programmers in India.

That is true for me. I had read it during years 2000-2002, and I kept a count of it. I read, solved all the problems in that book for more than 100 times.

It has helped me a lot and I am indebted to that book.

The article on Yashwant Kanetkar was published in a Indian magazine, I made a copy of it, because, as you can imagine, I will cherish it.

I also watched a short talk by Yaashwant Kanetkar in which he explores his journey, and has some words of advice for programmers from India.

Who slides Wins

Few years ago, I wrote this n-puzzle using pygame for fun. It was inspired from the sliding block puzzle game that I had played as a kid, which had numerals in the front and a picture of taj mahal in the back. The idea was to slide and fit the photo together.

https://github.com/orsenthil/who-slides-wins

How to play

  1. Human plays first. Use Arrow Keys to Move and Fit the Picture.

  2. Press Enter when Done.

  3. Computer Plays and tries to beat you with less moves that you took.

It uses A* with Manhattan Distances to Solve the puzzle.

If you want to try it on your computer.

  1. Install python2.7

  2. Create a virtualenv.

  3. pip install pygame

  4. clone the git repo.

  5. python run_game.py

Deep Learner Playing Breakout

Let's first watch this video

In this video, I just gave the program a game and it learned to play by itself. No, I did not code the player, that would have been so traditional. Here the player, the computer, the program, actually learns to play by itself by just playing the game! It does not need me.

I recorded this video for experiencing how a Deep learning algorithm actually works. And as you can notice, it works amazingly! Deep learning is subset Artificial Intelligence that tries to show "intelligent behavior" by using something similar to (neural networks) human brains wiring. It uses mathematics, that we think, human brains internally use to exhibit rational thinking.

The results of these have been amazing. From beating go games (Thanks For Ruining Another Game Forever, Computers) , to making self-driving cars a possibility. The above video should give some idea that self-driving cars can learn about hurdles and try to navigate by itself.

How to setup your system for Deep Learning Experiment ?

I wish, you will be excited to replicate this experiment. If you are interested, here is how I setup.

1. Rent a GPU Instance from AWS or Azure. Right now, we need GPUS. They are very costly, but the deep learning frameworks are not optimized for CPUs. I spent multiple weeks of uptime on CPU without any results. Go for GPU. AWS Has it.

  1. Setup Ubuntu 14.04 with proper NVIDIA drivers.

  2. Install X11 and Window Manager. It wont be fun otherwise.

sudo apt-get install xubuntu-desktop xfce

4. Setup viewing your powerful "Cloud Desktop" using nomachine. Apparently, that's the best way I could setup remote graphic viewing.

  1. Clone the DeepMind-Atari-Deep-Q-Learner code.

  2. Install the dependencies.

./install_dependencies.sh
  1. And, as my son will say. Here you go!

./run_gpu breakout

You can exit nomachine with the program running, and constantly come back to monitor your computer trying to learn to play a game by itself.

Glyph's post on threads

Glyph Lefkowitz is a great author. In this post titled unyielding he makes an excellent case against threads, with so many valid references for his arguments. He makes a point event driven programs that should be the first thing we should think if we are think about concurrency.

As a developer or project lead, if I have to emulate certain practices for a writing high quality software, I think, looking up to glyph and his twisted project is never a mistake.

Dominant Resource Fairness

I was reading the paper on Dominant Resource Fairness and found it approachable, interesting and fairly easy to understand.

Dominant Resource Fairness is a resource allocation strategy used by a system like Mesos.

In general terms, resources are basically things that a group will need and the idea is the allocate the resources amongst the members of the group in an efficient way. Examples could be the amount of money (resource) to be distributed across a group of people in the community or the processor cores in a multi-core processor that needs to be distributed and allocated to the process running on that processor.

The Dominant Resource Fairness uses Linear Programming technique to solve the problem of resource sharing.

In a datacenter with multiple computers, having multiple CPUs, multiple memories, network cards and many other resources, those needs to be shared across the processes that are running in the datacenter. DRF uses the concept of a dominant resource. The Dominant share is the maximum share that an entity (process) has been allocated for any resource. For e.g, if if a process A has heavy CPU usage and process B has heavy memory usage, the dominant resource for process A is CPU and the dominant resource for process B is Memory.

Dominant Resource Fairness seeks to maximize the minimum dominant share across all entities. That's the formulation for the linear programming problem for you. Doing it across in a distributed way for different tasks with different requirements is the challenge that is being solved.

For example, if user A runs CPU-heavy tasks and user B runs memory-heavy tasks, the DRF attempts to equalize CPU share of user A with the memory share of user B. In this case, the DRF would allocate more CPU and less memory to the tasks run by user A, and allocate less CPU and more memory to the tasks run by user B. In the single resource case -- where all jobs are requesting the same resources -- the DRF reduces to max-min fairness for that resource.

Some interesting anecdotes I found in the paper include, enforcing "fairness" in resource sharing is a difficult problem by itself.

A big search company provided dedicated machines for jobs only if the users could guarantee high utilization. The company soon found that users would sprinkle their code with infinite loops to artificially inflate utilization levels.

The paper also quoted economic research on difficultly in ensuring fairness.

Competitive equilibrium from equal incomes (CEEI), a popular fair allocation policy preferred in the micro-economic domain is not strategy proof.

Stephen Brennan Tutorial on writing a shell

After learning to program in C language, the next best thing to attempt will be writing some small utility in C. I landed upon a great tutorial (https://brennan.io/2015/01/16/write-a-shell-in-c/) that taught how to write a shell with some builtin utilities in C. I tried that tutorial today and saw how to build a shell.

That's the best way to learn about the init, fork, parent process, child process and the shell loop itself. As a side-effect, I also setup and used CLion on my computer.

Web of Stories - Donald Knuth

I am a Donald Knuth fan, and sometimes I strive to understand his lectures. Stumbled upon this website called webofstories.com that feature many scientists and carries extensive interviews with them, who reflect upon their life, their personal moments, their personal views on their achievements.

I watched the entire 3 hour interview with Donald Knuth and immensely enjoyed it.

One of the excellent moment was, when he shares his 2nd computer program, which was a learning tic-tac-toe. This was written for the IBM 650 Machine having just 10K bytes of memory.

http://www.columbia.edu/cu/computinghistory/650-2.jpg

Those days, the programs were written in punched-cards and a typical program would look something like this (location, instruction).

0001 0000010000
0002 0000000000-
0003 1000018003
0004 6100080007
0005 2400008003
0006 0100008000
0007 6900060005
0008 2019990003

Imagine writing an AI program in that. The difficulty of writing does not matter, just the possibility that it could be written and could be very was exciting, probably led Knuth to write it. This video shows his excitement when he shares that moment.

Other interview bits are interesting too. Knuth covers academia, maths, computer science, computer history, programming as art, typography, religion, his dates, his wife, his children and awards he has won. Many interesting things can be picked up.


"If it doesn't go well, so what, I tried, and I did it." - Donald Knuth on his thoughts, when delivering the lecture of "Science and Religion" at MIT.


Coconut Lang

With the trend in functional programming up, I noticed a new programming language called "coconut" that implements functional programing "style". This is written on top of "python", the coconut language scripts are compiled and translated to python.

For e.g, this factorial coconut program, will be translated to a valid python program.

def factorial(n):
    """Compute n! where n is an integer >= 0."""
    case n:
        match 0:
            return 1
        match _ is int if n > 0:
            return n * factorial(n-1)
    else:
        raise TypeError("the argument to factorial must be an integer >= 0")

You can notice the pattern matching style in the above program, which is not a syntax in Python. This program will then be converted into a valid python program.

Great many details can be found in the coconut-lang website.

Core Functional Programming Concepts

Found this introductory post on core functional programming concepts dealing with the subject succinctly. It is easy to approach functional programming, if we can recognize the following concepts held true by all the functional programs, and languages facilitating them.

  1. Functions are Pure

    • No side-effects, like printing something from the function.

    • When called with the same input, will always return the same output. We take that for granted, isn't it?

  2. Functions are first-class and are of higher order.

    • Treat function names as variables.

    • Toss function (names) as an argument to a function, and as a return value from a function.

  3. Variables are immutable.

    • Forget mutating variables in a program. If you want an updated value, create a new variable. When you are getting started with programming, you feel this is questionable. With experience under your belt, you start to prefer immutability of variables.

  4. Functions have referential transparency.

    • It follows from functions are pure requirement. The referential transparency requirement is about substituting the function call with return value, wherever the function is called, should not change the state of the program.

  5. Lambda Calculus

    • The mathematics behind functional programming. Take arguments and have a return valued. When evaluating multiple arguments, the function is evaluated one argument at a time, with result send to next one-arg-less function, kind of a tail-recursion. This concept is called currying.

Rationale behind punishments

I stumbled upon a Explain Like I am Five Story which dealt with the rationale behind punishments. The topic of punishments is a complex one and needs balanced thinking. The author elucidated many reasons for which punishments are administered in society. We see the trends of those in both online and offline societies.

Punishments are administered for one of the following reasons.

  • Incapacitation

Is stopping somebody from doing an unacceptable behavior in the society again.

  • Restitution

Is getting something back for the victim of somebody who misbehaves, to compensate them for that which they've been deprived by the offender. Like charging fine and using it for taxes.

  • Retribution

Is like feeling of justice that deprived might get. Many of us think, this is the primary purpose for punishment. This is non measurable, but often paves way to other measurable impacts like incapacitation, restitution etc.

  • Rehabilitation

The purpose is to give the offender, time to reflect on the wrong doing, possibly empathize with the one affected.

  • Deterrence

Is about reducing the likelihood that misbehaviour will occur in the first place. The punishment is more for a warning to prevent a socially unacceptable behavior.

Many a social regulatory policies can be mapped to above concepts of negative reinforcements to prevent any undesirable outcomes.

Leslie Lamport on Teaching Concurrency

This post is a short discussion on the Leslie Lamport 's paper "Teaching Concurrency".

Lamport's basic premise is that understanding the system the most important part, and engineers often muddy their understanding with implementation details as soon as they start talking about programming languages suitable for concurrency.

He even challenges engineers to come up with the solution for concurrency problems without using "semaphores", "monitors", or any other construct that were invented and provided as a tool. Using those, he says, is like using the 'sort' to routine the language to implement a sorting algorithm.

The modern field of concurrency started with Dijkstra’s 1965 paper on the mutual exclusion problem. For most of the 1970s, one “solved” the mutual exclusion problem by using semaphores or monitors or conditional critical regions or some other language construct. This is like solving the sorting problem by using a programming language with a sort command. Most of your colleagues can explain how to implement mutual exclusion using a semaphore. How many of them can answer the following question: Can one implement mutual exclusion without using lower-level constructs that, like semaphores, assume mutually exclusive access to a resource?

Lamport's approach to problem solving suggests, we need to think of computing problem as series of states instead of series of steps. I think, series of steps tend to give some linearity the approach, while series of states tend to indicate that sub-parts of the system can have multiple states and the next state each sub-part can take only depends upon the current state and action that leads the state transition to the next state.

It is more useful to think about states than sequences of steps because what a computing device does next depends on its current state, not on what steps it took in the past.

To describe a computation we need to describe a sequence of states. More often, we need to describe the set of computations that can be produced by some particular computing device, such as an algorithm. There is one method that works in practice: describing a set of computations by

  1. the set of all initial initial states and

  2. A next-state relation that describes, for every state, the possible next states that is, the set of states reachable from that state by a single step.

On computational thinking.

How should we describe computations?

Most computer scientists would probably interpret this question to mean, what language should we use? Imagine an art historian answering “how would you describe impressionist painting?” by saying “in French”.

Programming and hardware-design languages don’t help an engineer understand what problem a system should solve. Thinking of computations as sequences of states, rather than as something described by a language, is the first step towards such understanding.

Lamport also describes in great details about importance of problem specification. Sometimes, when the problem is specified clearly and understood problem, the solution becomes easy. Most of our struggles seems to be with coming to grasp the problem specification.

The great contribution of Dijkstra’s paper on mutual exclusion was not his solution; it was stating the problem. (It is remarkable that, in this first paper on the subject, Dijkstra stated all the requirements that distinguish mutual exclusion from fundamentally simpler and less interesting problems.)

On concurrency, itself

He gives an example of concurrency problem that according to him is "trivial". It took me some reading to understand the problem. StackOverflow.com certainly helped.

Once an engineer understands what a computation is and how it is described, she can understand the most important concept in concurrency: invariance. A computing device does the correct thing only because it maintains a correct state. Correctness of the state is expressed by an invariant—a predicate that is true in every state of every computation.

Invariance is the key to understanding concurrent systems, but few engineers or computer scientists have learned to think in terms of invariants. Here is a simple example.

Now, the problem

Consider N processes numbered from 0 through N − 1 in which each process i executes

\begin{equation*} x[i] :=1; \end{equation*}
\begin{equation*} y[i] := x[(i-1)modN] \end{equation*}

and stops, where each \(x[i]\) initially equals 0. (The reads and writes of each \(x[i]\) are assumed to be atomic.)

This algorithm satisfies the following property: after every process has stopped, \(y[i]\) equals 1 for at least one process \(i\) .

It is easy to see that the algorithm satisfies this property; the last process \(i\) to write \(y[i]\) must set it to 1. But that process doesnt set \(y[i]\) to 1 because it was the last process to write y.

What a process does depends only on the current state, not on what processes wrote before it. The algorithm satisfies this property because it maintains an inductive invariant.

Explanation

The explanation on how \(y[i]\) equals for 1 at least one process \(i\) goes like this.

  1. The \(x_s\) model the following behavior: \(x[i]\) is 1 if and only if the process \(i\) has already run.

  2. After all processes have completed, all \(x_s\) are thus set to 1.

  3. The \(y_s\) are a bit trickier: \(y[i]\) is set if \(x[i-1]\) was set, that is, \(y[i]\) is 1 if and only if the predecessor of \(i\) had already run when \(i\) was doing its write to \(y\).

I essentially to had resort to StackOverflow.com post author's explanation to completely understand this.

The program invariant is:

If a process has set \(y[i]\), it must already have set \(x[i]\) to 1. This is true regardless whether \(y[i]\) is set to 0 or 1.

Proving this invariant is quite easy: In the beginning, none of the \(y_s\) is set, so it holds trivially. During program execution, each write to \(y[i]\) is sequenced after a write to \(x[i]\). Therefore the invariant also holds for every step of the program afterwards.

The further reasoning goes like this.

The last process to finish sets \(y[i]\) to 1 because, by definition of being the last process, its predecessor must have already finished execution at that point (ie. its y value is already set).

Which means, because of the invariant, its \(x\) value (which determines the last process' \(y\) value) has to be 1.

The alternate way to look at this problem can give some intuitive understanding too.

You cannot find an execution order in which all \(y_s\) are set to 0. Doing so would require all processes to execute before their predecessor. However, since our processes are arranged in a ring (that is, if I follow the predecessor chain I will eventually end up at my starting point again), this leads to the contradiction that at least one process must have finished executing before it wrote to \(y\).

To understand this concurrency problem, it requires some notion of syntax, a prior understanding of proving hypothesis, and possibly discussing the problem and solution.

Trying to understand itself, I guess, is a progress.

Edison's TODO list

Looks like Edison used TODO list too.

This article on openculture has a snapshot of his todo list from year 1888.

These were his 108 things he wanted todo.

1 - Cotton Picker

2 - New Standard Phonograph

3 - Hand turning phonograph

4 - New Slow speed cheap Dynamo

5 - New Expansion Pyromagnetic Dynamo

6 - Deaf Apparatus

7 - Electrical Piano

8 - Long distance standard Telephone Transmitter which employs devices of recording phonogh

9 - Telephone Coil of Fe [iron] by tt in Parafine or other insulator

10 - Platina Point Trans using new phono Recorder devices

11 - Gred Battery for Telephones

12 - * Long Distance

13 - * Phonoplex

14 - * Jump Telegraph

15 - * Voltmeter

16 - Improved Magnetic Bridge for practical work

17 - Motograph Mirror

18 - * Relay

19 - * Telephone practical

20 - Artificial Cable

21 - Phone motor to work on 100 volt ckts

22 - Duplicating Phono Cylinders

23 - Deposit in vacuo on lace, gold silver also on cotton molten chemical compound of lustrous surfaces to imitate silk also reg plating system

24 - Vacuous Ore milling Large Machine

25 - Magnetic Separator Large

26 - Locking material for Iron sand

27 - Artificial Silk

28 - Artificial filiments [sic]

29 - New [illeg.]

30 - Uninflammable Insulating Material

31 - Good wax for phonograph

32 - Phonographic Clock

33 - Large Phonograph for Novels, etc.

34 - Pig Iron Expmts with Electricity + Magnetism

35 - Malleablizing Cast now in Vacuo

36 - Drawing fine wire

37 - Joy phonograph for Dolls

38 - Cable Motograph

39 - Very Loud Motograph telephone with 1/3 siz phonogh motor.

40 - Magneto telephone with actual contact end magnet compression of an adjustable rubber press as in new phones

41 - Snow Compressor

42 - Glass plate water ore repeator

43 - Tinned faced [illeg.] for Stove Castings

44 - Refining Copper Electrically

45 - Quad neutral relay

46 - Cheap low induct Cop Insulating material for Lead Cable people

47 - Constant moved for nonfoundry

48 - 200 volt 20 cp lamp

49 - Cheap [illeg.] Indicator

50 - Recording Valt Indicator

51 - Box balancing System

52 - Alternating Machine + Transformer

53 - Sifua Surface Switches

54 - Vulcanizing [illeg.] African Rubber adullement

55 - Platinum wire [illeg.] cutting Machine

56 - Silver wire wood cutting system

57 - Silvering or Coppering bathing cloth in Vac for durability

58 - S Mater attend own with new devices for c speed

59 - Expansion mirror platwire in vacuo

60 - Photoghy

61 - Photoghy by camping heat after central points

62 - Boron fil.

63 - Hg [mercury] out of Lamp

64 - Phonaplex Repeater

65 - Squirting glass sheet tube etc. Nickel [illeg.]

66 - Artificial Mother Pearl

67 - Red Lead pencils equal to graphite

68 - India Ink

69 - Tracing Cloth

70 - Ink for blind

71 - Fluffy Incandescent Burner for gas

72 - Regenerative Kerosene Burner

73 - Centralized arc in arc Lamp

74 - Cai-[illeg] Tesla arc lamp test

75 - Strengthening alternating cli by sternt Dynamo

76 - ERR Cont [illeg.] reducers

77 - Electroplating Machines for Schenectady

78 - Condenser Transformer

79 - Sqr ft difraction gratings in silver by 5000 [illeg.] tool special [illeg.] lathe for ornamental purposes

80 - Photo Scant [illeg.]

81 - Cheap plan produce Mimeograph surfaces

82 - Miners battery + lamp

83 - Sorting Coal from Slate Machine

84 - Butter direct from Milk

85 - Burning asphalt Candles by high chimney

86 - Magnets RR signals

87 - Soften [illeg.] of books transfer to Cop plate + plate to [illeg.] matrix

88 - Telephone Repeater

89 - Substitute for Hard rubber

90 - Artificial Ivory

91 - Soften Vegetable Ivory to press in sheets

92 - Various batteries on [illeg.] Type

93 - Revolving Thermo

94 - Caller Indicator for Jump Telegh

95 - Marine Telegraphy

96 - Long distance speaking tube filled H20 2 dia pressure

97 - Lend plate battery for modifying attending Current

98 - Two revolving bands in battery Lead faced press in liquid close together + out into separate chambers to [illeg.]reduce by gas the other

99 - Siren phonogh

100 - Perm mag like an electromag of [illeg.] hand steel high polish separately magnetized + forced together powerfully[illeg.]

101 - Telephone working more [illeg.]

102 - Eartubes formed crescent [illeg.] wire

103 - Long strip 50 cp carbon under stress [illeg.] for

104 - Cheap Voltmeter

105 - Chalk Battery

106 - Dynamo or motor long tube in long magnetic field top bottom contacts forcing water through generator current by passage.

107 - Thermo battery slick Copper oxidized then plated over surface oxide nailed to make good contact [illeg.]

108 - Disk Phonogh

TeamCity Server on Mac

Setting up a TeamCity Server on Mac as a personal agent was very easy.

  1. Run TeamCity server

#!/bin/bash

PATH_TO_DATA_DIR=/Users/senthil/teamcity/data
PATH_TO_LOGS_DIR=/Users/senthil/teamcity/logs
PORT_HOST=8111

docker run -it --name teamcity-server-instance  \
    -v $PATH_TO_DATA_DIR:/data/teamcity_server/datadir \
    -v $PATH_TO_LOGS_DIR:/opt/teamcity/logs  \
    -p $PORT_HOST:8111 \
    jetbrains/teamcity-server

The teamcity server is accessible now at http://127.0.0.1:8111

  1. Setup a reverse proxy to access that locally.

$ cat /etc/apache2/vhosts/teamcity.local.conf
<VirtualHost *:80>
    ProxyPreserveHost On
    ServerName teamcity.local
    ProxyPass / http://127.0.0.1:8111/
    ProxyPassReverse / http://127.0.0.1:8111/
    LogLevel debug
</VirtualHost>
  1. Setup your /etc/host to point http://teamcity.local to 127.0.0.1:8111

$ cat /etc/hosts |grep teamcity
127.0.0.1   teamcity.local

The Myth of a Strong Leader

"Myth of a Strong Leader" by Archie Brown is from Bill Gates book recommendation. Pause a moment and think about the title. Every now and then you will hear something saying "Strong Leader", you never hear people saying "we need a weak leader".

The book's title is that, the concept of "Strong Leader" is a myth. According to the book, an effective person works by collaboration, flexibility and never becomes a center point of decision making.

Mastery Based Learning

In this short TED talk video, Salman Khan pitches for mastery based learning. It means that if there is a bar (say 100%) for mastery, then the variable in the learning should be how many hours one spends to attain that bar. Until the bar of 100% mastery is attained, the student should not be considered the master of the subject, and should not just move on the next class/course.

We adopted the current system because it was impractical for mastery based learning previously, but given our computational resources, mastery based learning is very much practical today.

Parkinson might start in gut

Parkinson's is not curable (yet). Folks with Parkinsons will have a progressively degenerating muscular order. But I have seen folks with Parkinsons live for very long time with only slight impairment.

It's well knowm it is a brain disorder and caused due to stress. There is a recent news (http://www.bbc.com/news/health-38173287) that it might due to bacteria in the gut. If it were due to bacteria in the gut, then the cure is near.

On Feeling Needed

This article in new york times by Dalai Lama was a good one to read. I collected these important points from the article.

  • A small hint comes from interesting research about how people thrive. In one shocking experiment, researchers found that senior citizens who didn’t feel useful to others were nearly three times as likely to die prematurely as those who did feel useful. This speaks to a broader human truth: We all need to be needed.

  • Being “needed” does not entail selfish pride or unhealthy attachment to the worldly esteem of others. Rather, it consists of a natural human hunger to serve our fellow men and women. As the 13th-century Buddhist sages taught, “If one lights a fire for others, it will also brighten one’s own way.”

  • Feeling superfluous is a blow to the human spirit. It leads to social isolation and emotional pain, and creates the conditions for negative emotions to take root.

  • Indeed, what unites the two of us in friendship and collaboration is not shared politics or the same religion. It is something simpler: a shared belief in compassion, in human dignity, in the intrinsic usefulness of every person to contribute positively for a better and more meaningful world.

Gandhi Jayanthi

Happy Gandhi Jayanthi to all.

https://dl.dropbox.com/s/umtdg94gx2x1qwh/gandhi_jayanthi_2016.jpg

Gandhi's thought that I like to remember the most today is Knowledge without character is a social sin.

We are going to Mars!

A very exciting thing happened this week.

Elon Musk laid out a plan for human beings like us to travel to mars and start a civilization there.

This is a multi-year plan, and there will be multiple rockets carrying humans and cargo. It seems it will take 3 months to reach to the destination and it has be done with Earth and Mars are in sync, which happens every 28 months.

Elon Musk's SpaceX team is trying to reduce the cost to a affordable level of 200K USD per ticket. If the ticket happens to be more than 5x this, it will still be worth it.

The design of the rocket, the system architecture and the entire plan was really impressive. Here is the link to the presentation that Elon Musk gave.

If you are truly interested, this whole video for 1 hour gives a good overview.

There are short teaser video as well, like this one.

Things just got real!

Movie Review: Saving Private Ryan

We got the Netflix subscription recently and one of the movies I watched after getting Netflix was "Saving Private Ryan". Surprisingly, I had not watched this movie earlier. Every time I watched the opening scene, I had simply given up and that was enough of the movie for me.

Now, that I completely watched it, this movie just my regard for "Steven Speilberg" as the director. I can think of no other movie that is as brilliant, portraying human emotions, as this one. The war is shown in its brutality. Soldiers holding on religion as the moment of truth is shown dearly.

The characters in the movie include Captain Miller (Tom Hanks) who shows extraordinary leadership and Private Jackson (Barry Pepper), a highly reliable, accurate marksman, who quotes bible, gives himself unto god, as he fights his enemies.

Everything about this movie was great.

Review of The Emerald Route by R.K. Narayan

The Emerald Route is a travelogue written by R.K. Narayan. In this book, he details the cultural and mythological history of various cities in Karnataka. Narayan presents the mythological history alongside factual accounts of the places, offering readers a glimpse into his unique perspective. He narrates these stories as if they are true events that occurred in those locations.

For example, Narayan recounts the story of Sankara, who was born with a predetermined lifespan of 16 years. Determined to make the most of his time, Sankara studied all the scholarly works by the age of 10, became a monk, and began preaching. When he turned 16, a debate took place between Vyasa and Sankara. Vyasa, the original author of the work Sankara was discussing, engaged in a prolonged debate with him. Unaware of Vyasa's identity, Sankara held firmly to his stance. When the debate showed no signs of resolution, one of Sankara's students called for a truce. Impressed by Sankara's profound knowledge of his own work, Vyasa granted him a boon to live for another 16 years.

Another fascinating story is set in Srirangapatinam, where, during one of the battles that Tipu Sultan lost, he was forced to surrender two of his sons, aged 9 and 11, as hostages to the British as part of the conditions of surrender. It is said that Tipu Sultan later managed to secure their release by paying a substantial ransom to the British.

Filled with stories like these, which provide an account of the history and culture of various towns in Karnataka, this book was a pleasure to read.

Not praising intelligence

There are many supporting studies on this, and I came another one which explicitly stated that

Praise for Intelligence Can Undermine Children's Motivation and Performance

The study suggests that parents should praise their children for the efforts they put in their tasks instead of praising the accomplishments or their intelligence for accomplishing the task.

Excerpt from the paper.

Praise for ability is commonly considered to have beneficial effects on motivation. Contrary to this popular belief, six studies demonstrated that praise for intelligence had more negative consequences for students' achievement motivation than praise for effort. Fifth graders praised for intelligence were found to care more about performance goals relative to learning goals than children praised for effort. After failure, they also displayed less task persistence, less task enjoyment, more lowability attributions, and worse task performance than children praised for effort. Finally, children praised for intelligence described it as a fixed trait more than children praised for hard work, who believed it to be subject to improvement. These findings have important implications for how achievement is best encouraged, as well as for more theoretical issues, such as the potential cost of performance goals and the socialization of contingent self-worth.