Tuesday, April 22, 2014

Teaching of History

-- by Acharya Vinoba Bhave

Prejudices Due to False History

Though there are many flaws in the modern education, one big flaw is that in the name of history, many ideas are forced in the minds of the people. The biggest danger in education is created by this teaching of history. "Itihaas" means "iti ha aas", i.e., it happened this way. But these days, something that did not happen is also written as history. Even the imagined stories are not as false as history is, as the story-writer makes it explicit that all stories are imagined. At least this is the element of truth in them. But a historian claims, "I have written the complete truth, and others write falsehoods". Do you think that what is taught in the name of history is anything worthwhile? Two world wars have been fought, their history must have been written by the Germans in one way, and by the Russians and English in another. Who committed a crime, who did some injustice, what event happened and when, this is all falsely stated. Important documents are destroyed and fake documents are produced as evidence.

Read an interesting news in the papers recently that the Russian history will be corrected and rewritten. What do they mean by rewriting? Stalin has died, but will they write that he has not died? Stalin created a big name for himself in his lifetime. All that will be denied and rewritten. Mahatma Gandhi was against violence, this used to be written about him in history. Now it will be written that he was a saint. Thank God, they do not write that he never existed. They do not change the history so much, it is their kindness.

In short, history is written as per one's wishes. In order to influence people's minds in a particular manner, old events are doctored and presented to them. Such history will be taught to the children. Historians have died and the minds of the students are dying under the excruciating weight of their stories. What is the sense in memorising the names of kings? Which event happened when, there is no need to hear that. There have been countless kings. You see the leaves on these trees, there have been so many kings. What is to be gained by reading their history? In the name of history, people's minds are being moulded. As a result, the masses become prejudiced.

***

History highlights evolution. About two to two and a half thousand years ago, founders of religions were born. Buddha, Mahavira, Confucious, Lao-Tse, Zoroastra, and then Christ! All almost in the same era. Everywhere you find the ideas of founding religions. They did not even know of each other. Later, this feeling of founding religions abated, and saints emerged everywhere. There were saints in Maharashtra, and all over India. When I read the history of Europe, I found that similarly they also had saints like Francis. First there was the age of giving importance to religion, later bhakti (devotion) gained importance. Later there was a wave of nationalism. During the last one or two centuries, the feeling of independence for their countries is visible everywhere, and is still continuing. All over the world, you see a wave of independence.

What next after independence? What will be the next age? The next age will be a global age. For that, we will have to give up our narrow-mindedness. We shall have to give up the pride of Marathi, Gujarati, caste, religion, and even that of India. The new age requires "Jay Jagat". The universe as one country, India as its one state, Maharashtra its one district, this will have to be the new scale. Such broad-mindedness should come in the teaching of history.

***

In the teaching of history, we should discard the stories of battles between kings that were due to their jealousies, etc. It is a mistake to treat history as the chronology of the lives of the kings. Punjabis today do not know the kings who ruled Punjab, but everybody knows Guru Nanak. Nobody knows the Sen and Pal kings of Bengal, but everybody knows Chaitanya Mahaprabhu. Who can ignore the names of Dnyanadeva and Tukaram in Maharashtra? Therefore, give importance to these great people in history, and make only cursory mention of the kings. But it does not happen this way.

Shivaji maharaj's father's name was Shahu. He was blessed by a fakir, and was subsequently called as "Shahji". That fakir was a sufi saint of those days. In those days, the sufi saints taught Islam to people. Kings only indulged in violence. They had nothing to do with religion. They destroyed the temple of Somnath and looted. Koran repeatedly states that religion cannot be spread with force. But nobody teaches this. Samarth Ramdas Swami saw that the sufi saints were reading out the "Karima" of Sheikh Sadi, and the people were getting attracted to that. Then he wrote his "Manache Shlok" on the same pattern. For example: "Mana Sajjana Bhaktipanthen Chi Javen". Now how many of us know that the "Manache Shlok" of Marathi is based on "Karima"? Therefore, I say that either history should be written in a new way, or we should just give up.

I got a specimen of the kind of history that is taught today. The education minister of Maharashtra came to me and asked what kind of changes should be made in the teaching of history. I said, "First let me see what is being taught currently, then only I can give my comments". He gave me the history textbook, which had 622 pages. In these 622 pages, initially there is a brief introduction to Buddhism. After that Sultan-shahi, Khilji dynasty, Lodi dynasty, the pillars of Muslim rule: Babar, Humayun, Jehangir, Shahjahan, Aurangzeb, and then Chatrapati Shivaji, Rajaram, Tarabai, then the Portugese and French, and then Hastings, Minto, Bantics, Dalhouji, Harding, Dafrin, Canning, Curzon, etc. It is like, "Keshaway namah, Narayanay namah", etc., namaskar to all 24 names.

Most surprisingly, in such a big book of 622 pages, the lives of Dnyanadev, Tukaram and Namdev have been covered in just seven lines. It says: "From Dnyanadev to Tukaram-Ramdas, the saints in Maharashtra created religious, social and political awareness. It strengthened the belief among the masses that there is something like "swadharma" (my religion) in the religious discourses of the saints and that they should follow it. It should be defended. Though the result of this increasing awareness was not immediately visible, when Shivaji took upon himself the task of establishing an independent state, and thereby protecting their religion, he immediately got the support of the masses". That is all there is about the saints of Maharashtra in those 622 pages. The Maharashtrian mindset has been greatly influenced by the great men like Dnyanadev, Eknath, Tukaram, Ramdas, Moropant, Mukteshwar, Shreedhar, Mahipat, etc. Even today, lakhs of people dance, chanting Dnyanadev-Tukaram, Dnyanoba-Tukaram. And still, only so much description about them!

This is followed by the chronology of which important event happened when. It does not state when Dnyanadev was born. When Dnyaneshwari was written, there is no mention of that. It accurately describes when Edinborough came, when he was born, when famines hit various states, when the meeting with Prince of Wales took place, etc. Such history is taught to the Marathi-speaking children. Indeed, it is a mentality of slavery. When will the teachers revolt against this?

(Translated by Pradyumn Sharma)

Wednesday, April 2, 2014

Neo4j: A NoSQL (Graph) Database


A graph database uses a significantly different model from relational databases ("graph", in this context, is NOT synonymous with "chart", it refers to "things that are interconnected"). As a simple example, consider a social networking site where you can record information like:
  • Amar follows Akbar
  • Akbar follows Anthony
  • Anthony follows Akbar
  • Akbar blocks Seeta
  • Amar likes travelling


Using Neo4j (a graph database) traversing such relationships to query things like the following is a snap, both in terms of simplicity of the queries and their performance:
  • Persons that Amar follows
  • Followers of Akbar
  • Followers of followers of Anthony
  • Persons who have blocked Seeta
  • Akbar's followers who like travelling


Use cases of Neo4j include:
  • Social networking sites. For example, think of LinkedIn, and consider results like: "Sam is your third connection", "Ways in which you are connected to Sam".
  • Recommendation engines. For example, "people who bought so-and-so book also bought …", "pages recommended for you…" (based on likes by some of your friends who share common interests with you, or those you have frequent conversations with).
  • Fraud detection systems, based on connected intelligence, going beyond basic statistical analysis and pattern recognition, providing an enhanced degree of insight about sources and perpetrators of frauds.
  • Network and data center management. Techniques for operating and analyzing electronic networks, including network failure and degradation analysis, quality of service mapping, network inventory mapping, network asset management, etc.
  • Many more, such as biometrics, authorization and access control, content management, knowledge management, parcel routing, etc.


Industries using Neo4j include: telecommunications, finance, life sciences, media and publishing, education, gaming, and many more.


Prominent customers of Neo4j include: Adobe, Cisco, Deutsche Telekom, Glassdoor, HP, Huawei, IDMission, India Times, JustDial, Lockheed Martin, Telenor, ThoughtWorks, University of South Australia, and many more.


For more information:


Coming up soon:
An Introduction to Apache Cassandra (coming up soon)
Architecture of Apache Cassandra: How It Delivers Blazing Performance
An Introduction to MongoDB (coming up soon)
An Introduction to Neo4j (more detailed than the one linked above)
An Introduction to Riak


About the Author

portrait2.png

Pradyumn Sharma is the CEO of Pragati Software Pvt Ltd, a leading IT training company based in Mumbai, India. Pradyumn has 30 years of experience in the IT industry. He regularly conducts training programs on NoSQL, Agile Methodologies, Application Architecture, Solution Architecture, Enterprise Architecture.

NoSQL Databases: A Brief Introduction


NoSQL databases have emerged as a serious alternative to the traditional relational database management systems (RDBMSs). This article, the first in a series on NoSQL, provides you a high-level overview of NoSQL databases, and a comparison of some of the leading offerings under this umbrella term. Subsequent articles will explore specific NoSQL products and their use cases in more detail.


The Challenge of Data Volumes with Relational Databases



First, the "why" of NoSQL. Consider the huge volumes of data that need to be stored in today's internet era. As a few examples:
  • Twitter reported, in March 2013, that they had about 200 million active users, and about 400 million tweets per day.
  • Facebook reported, in August 2012, that they had about 100 PB (PB is petabytes; a petabyte is a million GB, or a thousand KB) of data, with daily addition of about 500 TB (or half a petabyte) of data. This was a long time ago, and surely their data would be growing at a much faster rate today. Even if we assume only a slight increase in their rate of data growth, it is a safe bet to say that they would be storing, at the very least, 400 PB of data.
  • Walmart has about a million customer transactions per hour.
  • And not to forget the grand-daddy of data volumes: Google.


Can you imagine storing such volumes of data in a relational database? Even with a storage area network (SAN), it is difficult to imagine a storage system so vast. And how will you get the processing power to respond to hundreds of thousands of online users at any point of time with Facebook and Twitter, with almost no down time ever. There is a limit to scaling up. NoSQL databases opt for scaling out. In simple terms, what this means is: rather than adding more power to a server, add more servers to a cluster.


Relational databases don't do a very good job of scaling out. They have not been designed for distributing data across servers. Well, to some extent, you can do so but that introduces a lot of additional complexity.


Performance Challenges



Relational databases emphasize data "normalization", that is, avoiding duplication of data. This results in an increase in the number of tables, which often need to be "join"ed in order to present a report that collates data from various tables. This makes data easier to maintain, but there is always a  performance cost attached to the joins. For most OLTP systems, joins between a few tables is a routine thing, but when you have to deal with gigantic data volumes as described above, and a very large number of simultaneous users, these joins can result in unacceptably poor performance of the respective websites.


NoSQL as an Alternative to RDBMSs



NoSQL is an umbrella term that refers to a whole bunch of relatively newer database platforms that either don't use the relational model at all, or use very little of it. Some of the characteristics that are common to most of the NoSQL products, and which differentiate them from the RDBMS platforms, are discussed below.


  • Data distribution: NoSQL platforms are usually distributed systems; they run on clusters of commodity servers, which may consist of hundreds or thousands of machines. Data gets automatically distributed to various servers based on some hashing mechanism.
  • Data replication: In a cluster of commodity servers, at any point of time, one or more servers may be down. Data replication (automatically copying the same data to multiple servers) provides protection against data loss due to server failures.
  • Schema-less, or flexible schema: In most NoSQL databases (like MongoDB and Neo4j), you don't provide a "table structure" upfront. You just start adding data to a database without any pre-defined structure. In some NoSQL databases (like Cassandra), you do specify a table structure, but you can add or drop columns on the fly, or even change the datatype of columns, if required.
  • No joins and transactions: NoSQL databases compromise on various features of RDBMSs, including joins and ACID transaction, in order to deliver significantly higher performance, scalability, availability and flexibility of database structures.
  • Lower Cost of Ownership: Most of the NoSQL databases have community editions that are free and open source. Organizations would typically pay for support and services.


Categories of NoSQL



As indicated earlier, NoSQL is not the name of any specific product. It is a generic term for a number of database products sharing most of the common traits discussed above. There are four major categories of NoSQL databases, briefly described below with one prominent example from each of the categories as the basis:


Column Family Databases, such as Apache Cassandra. These databases are usually the closest to the relational database systems. Using Cassandra, for example, you issue commands that would be familiar to SQL buffs, such as create table, insert into, update, select … from … where …, etc.

Cassandra delivers extremely high write performance (not only compared to RDBMS products, but also compared to other NoSQL databases), and a very high read performance as well. You can store collections within a table. For example, you can store a set of email ids, an ordered list of favourite books, a list of dependent family members as key-value pairs of dependent name and the relation, all within a single record.


Document Databases, such as MongoDB, a prominent user of MongoDB in India being Aadhaar project of the UIDAI. MongoDB is a schema-less database, and it stores data in the form of JSON documents. (JSON stands for JavaScript Object Notation, and is a lightweight alternative to XML). A document may be as complex as you need, with collections and sub-fields (called sub-documents).


For example, you may store a person's data consisting of fields like name (further broken into first name, last name), gender, date of birth, a list of qualifications (each qualification stating the name of the qualification, institute, years of study), an ordered list of languages known with proficiency levels in each of these languages. Somewhat like Apache Cassandra, but with a completely different syntax, and higher flexibility of database contents.


Graph Databases, such as Neo4j. Think of social or professional networking sites like Facebook and LinkedIn. There are persons (you, me and other), there are organizations where we work / have worked, there are institutes where we have studied. And there are connections or links between them: you like someone, you follow someone, you have worked in an organization / studied in an institute, you have interests and hobbies.


And now we want to traverse these links to meet a variety of needs such as:
  • people you may know (perhaps because many of your friends know that person)
  • products you may want to buy (because you clicked on ads for other, similar products)
  • other people sharing common interests or hobbies with you


Graph databases are a good fit for things like: social networking sites, recommendation engines, fraud detection systems, network and data center management, etc.


Key-Value Databases, such as Riak. These are perhaps the simplest of all NoSQL databases. They essentially are just a key-value pair, where the "value" can be anything, such as an XML record, a JSON document, a picture, a movie, a text document, etc; the value being identified by a "key", which can also be pretty much anything.


For more information:


Coming up soon:
An Introduction to Apache Cassandra (coming up soon)
Architecture of Apache Cassandra: How It Delivers Blazing Performance
An Introduction to MongoDB (coming up soon)
An Introduction to Neo4j (more detailed than the one linked above)
An Introduction to Riak


About the Author



portrait2.pngPradyumn Sharma is the CEO of Pragati Software Pvt Ltd, a leading IT training company based in Mumbai, India. Pradyumn has 30 years of experience in the IT industry. He regularly conducts training programs on NoSQL, Agile Methodologies, Application Architecture, Solution Architecture, Enterprise Architecture.