Wednesday, January 13, 2010

The Private Language Argument

"What can be said at all can be said clearly, and what we cannot talk about we must pass over in silence"
- Ludwig Wittgenstein

These words beautifully explain the concept behind the so called "Private Language Argument", one of the most important topics of 20th century philosophy. The seeds of this thought were immanent in the ideas of John Locke(1632-1704) and Gottlob Frege(1848-1925), but was fully developed by Ludwig Wittgenstein(1889-1952), perhaps the greatest 20th century philosopher.

In the simplest words, the "argument" is that "the concept of a private language is improbable". By "private language" what is meant is "a language that is private to an individual and hence understandable by nobody else".

This simple looking argument has deep philosophical consequences. On the surface level, the immediate implication is that all language is socially constructed and can never be a subjective or private phenomenon. But the more important consequence is deeper, and has been explained in two different ways.

The first and more popular of the two, popularized initially by Rudolf Carnap(1891-1970) is that, the "argument" invalidates or at least looks with great suspicion, the validity of the "fully subjective nature of consciousness" (often called in philosophical terms as qualia). And this in turn has major implications for the "Mind-Body Problem" in philosophy, and hence religion and spirituality. As a result non-objective and non-empirical sources of language and thought as well as most of metaphysics is considered invalid.

With regard to "Mind-Body Problem", Carnap's interpretation of "Private Language Argument" shifts the advantage to the empirical/materialistic side. In other words the "argument" supports the primality of the "body" with respect to "mind", and more or less rejects metaphysics and mysticism as valid sources of knowledge.

The second interpretation, which seems to be the one favored by Wittgenstein himself, is that, "Private Language Argument", doesn't invalidate metaphysics and subjectivity, rather it enforces a limit on the "natural sciences" and particularly rationalism. Wittgenstein believed that philosophy should start where "natural sciences" end.

Linux Kernel Boot Process In Brief

A brief description of the internals of Linux kernel boot on a PC.

Prelims:-
BIOS finds the boot device and loads the Master Boot Record (MBR). The first 512 bytes in MBR contains the "primary boot loader". Out of the 512 bytes, 446 bytes contains the "primary boot loader" proper, the next 64 bytes contains a partition table, and last two bytes will contain the magic number OxAA55 which acts as a simple validation check.

Stage 1 Boot Loader (Primary Boot Loader):-
Find active partition from the partition table (the 64 bytes in MBR)
Execute the active partition's boot record to load the secondary boot loader (LILO, GRUB, etc.)

Stage 2 Boot Loader (Secondary Boot Loader):-
Read secondary boot loader configuration file (for GRUB this is /etc/grub.conf)
Load default kernel image and initrd image into memory
Invoke the kernel image

Kernel Loading and Initialization:-
start() ./arch/{arch}/boot/head.S
startup_32() ./arch/{arch}/boot/compressed/head.S
decompress_kernel() ./arch/{arch}/boot/compressed/misc.c
startup_32() ./arch/{arch}/kernel/head.S
start_kernel() init/main.c
kernel_thread() arch/{arch}/kernel/process.c
rest_init() init/main.c This creates the first process (PID zero)

An excellent article that explains the process in more detail could be found here.

Tuesday, January 12, 2010

Puranic Timescale of the Universe

The timescale of the Universe as given by Puranas. Though scientifically incorrect, the imagination of our ancient Indians is worth appreciating.

1 charana = 432, 000 human years

Satya Yuga = 4 charanas
Treta Yuga = 3 charanas
Dwapara Yuga = 2 charanas
Kali Yuga = 1 charana

Maha Yuga = one cycle of all four yugas = 4.32 million solar years

One day of Brahma = 1 kalpa = 1000 Maha Yugas

Brahma creates the Universe during his day (1 kalpa) and destroys it during his night (1 kalpa again).

The creation-destruction cycle continues the next day.

The maximum age of a Brahma is 100 brahma years. After which a new Brahma emerges and continues the cycle.

World History Time Line

PRE-HISTORY

16 BYA Big Bang
Formation of first galaxies and galactic clusters out of the massive primordial dust cloud
4.5 BYA Formation of Solar System & Earth
3.8 BYA First & primitive life forms on Earth
65 MYA Dinousaurs die out
Homo Erectus
Homo Australopethicus
200 KYA First Homo Sapiens
100 KYA Neanderthal man dies out
50 KYA Cro-Magnon man dies out
13 KYA end of last ice-age
10 KYA First forms of agriculture & cultivation in the Fertile Cresent (modern day North-West Egypt, Israel, Lebanon, ...)
8 KYA Spread of agriculture across Asia & Africa

BYA - Billion Years Ago MYA- Million Years Ago KYA - Thousand Years Ago
RECORDED HISTORY

6000 YEARS AGO Ancient Sumer: first forms of writing & mathematics
Hammurabi the firt Law Giver
Persian Empire
Cyrus the Great
Darius the Great
Greek learning
Socrates
Plato
Aristotle
Alexander the Great
Ashoka the Great
First Triumvarate (Julius Caesar, Pompey, Lucinus)
Julius Caesar defeats Pompey
Julius Caesar assinated
Second Triumvarate (Augustus Caesar, Mark Antony, ..)
Roman Empire
4 BC Birth of Christ

29 AD Crucifixion of Christ
Saint Paul The most important person for Christianity after Christ himself. His three missionary journeys. Martyred at Rome by beheading.
200 to 400 Christianization (first Arianism then official Christianity) of Germanic tribes
300 to 600 Decline of Roman Empire, Rise of primitive Germanic tribes as the central European power. Decline of classical learning, start of Dark Ages.
Saint Augustine Perhaps the most important person for official Christianity after Christ & Paul. Played a central role in defending the Church against heretic & pagan philosophers. Thereby laid down the basics of what was to become Christendom. His autobiography "Confessions" was a masterpiece.
600 to 1200 Dark Ages. Primitive Germanic Kings and a corrupt Catholic church as the power centers of European politics. A period of revisionism & backwardness in Europe.
570 AD Birth of Muhammad Prophet of Islam
632 AD Muhammad dies
632 AD Muslim forces lead by Khalid Al-Walid (nicknamed by Prophet Muhammad as ... or Sword of Allah) win Battle of Yarmouk against Christian Byzantine forces, captures large parts of Syria & Iraq; thereby giving Islamic forces an opening out of Arabian main land (decisive in later Islamic expansion)
630 to 1200 rise and expansion of Islam as a global religious, political and cultural force
Islamic forces vs Persian Empire
711 Islamic forces invades the Iberian penisula (southern Portugal & Spain)
Islamic forces invades the Indian subcontinent. Raja Dahir defeated by Muslim forces lead by
732 Battle of Poiters: Charles Martel defeats Muslim forces thereby preventing the Islamization of Europe
800 to 1000 Islamic Golden Age: Revival of classical Greek learning by Arabs, Many distinguished scholars & scientists in the Islamic world.
1100-1200 Crusades

Ibn Sina
Ibn Rashid
Ibn Khaldoun
Al Ghazali
Omar Khayam
Al-Khwarizmi

Classical Greek learning and knowledge from China and India enter Europe via the Byzantine Empire and Muslim traders.
The Great Enlightenment & Rennainssance in Europe
Martin Luther rises against the Catholic Church
Protestant Reformation & Catholic Counter-Reformation helps to open the eyes of a Western Christendom from its self imposed Darkness

Byzantian Empire ends at the hands of invading Ottoman Turks. Seige of Constatinople (then renamed as Istanbul). Migration of Greek scholars to Europe (one of the main factors for Europen enligtenment)
Mughal Empire
1490 Defeat and explusion of Moors (Muslim rulers & communities) from Cordoba (Southern Spain)
1492 Columbus discovers Americas
1498 Vasco Da Gama find sea route to India
Hernando Cortez
Fransico Pizzaro
1500 to 1950 European expansion and colonialization of the world
Battle of Lepanto Decisive European naval victory over Ottoman Turks (a significant event for European control of seas & colonialization)
Francis Bacon
Copernicus
Galileo Galilee
Johannes Kepler
Isaac Newtwon
Rene Descartes
Immanuel Kant
Karl Marx
Charles Darwin
Albert Einstein
John Von Nuemann
Alan Turing
Schrodinger, Heisenberg, Bohr, De Broglie, ... Quantum Mechanics
Invention of Transistor (Jack Kilby, Brattain, ...)
ARPANET the later Internet
1914-1918 First World War
1939-1945 Second World War
Korean War
Vietnam War
1989 Tim Berners-Lee creates what is to become the World Wide Web

Monday, January 11, 2010

Javascript on Java

This post illustrates two versions of a simple Java helper class that enables scripting on Java. Its assumed that the reader is aware of the basics of running JavaScript on Java.

The first version uses "Mozilla's Rhino Engine" directly, the second uses the more standard "Java 6" scripting interface (JSR-223).

Using "Mozilla's Rhino Engine" directly:-
import java.util.HashMap;
import java.util.Map;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;

/**
* High level wrapper to Mozilla Rhino Engine.
*/
public class ScriptSession {
private Map scopeObjects = new HashMap();

public void put(String key, Object value) {
scopeObjects.put(key, value);
}

public Object execute(String script) {
Object result = null;
try {
Context ctx = Context.enter();
Scriptable scope = ctx.initStandardObjects();
for(String key : scopeObjects.keySet()) {
scope.put(key, scope, scopeObjects.get(key));
}
result = ctx.evaluateString(scope, script, "embedded_script", 1, null);
} catch(Exception e) {
e.printStackTrace();
} finally {
Context.exit();
}
return result;
}

public static ScriptSession createInstance() {
return new ScriptSession();
}
}


Using Java 6 standard interface:-
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

/**
* High level wrapper to JDK 6 scripting API.
*/
public class ScriptSession {
private ScriptEngine engine;

private ScriptSession() {
ScriptEngineManager factory = new ScriptEngineManager();
engine = factory.getEngineByName("JavaScript");
}

public void put(String key, Object value) {
engine.put(key, value);
}

public Object execute(String script) {
Object result = null;
try {
result = engine.eval(script);
} catch(Exception e) {
e.printStackTrace();
}
return result;
}

public static ScriptSession createInstance() {
return new ScriptSession();
}
}


Usage:-
ScriptSession ss = ScriptSession.createInstance();
// put all the context objects you want using
// session.put("", );
Object result = ss.execute("javascript as text");

Inside JavaScript you can access all your context objects the same way you would access Java objects.

Buddhism, David Hume & Impermanence of Soul

The Buddhist theory of "Pratityasamutpada" and the Scottish philosopher David Hume's (1711-1776) "Bundle theory" & "Causation theory" have an interesting parallel, both lead to the impermanence of the Soul or individual self.

This is a radical shift from what appears to commonsense and that held by most religions of the world. Be it the dualistic traditions of everyday religion or the monist spirituality of mysticism (sufism, advaita, Christian mysticism); almost every one of them assumes the continuity and identity of the Self/Soul.

Both "Pratityasamutpada" and Hume's "Bundle theory", implies that the individual Self/Soul is nothing more than a series of connected sensations, and its the combination of "memory" & "imagination" creates the illusion of a permanent Self/Soul.

The credit should go to great Buddhist thinkers like Nagarjuna (2nd or 3rd century AD) who developed the original Buddhist theory of "impermanence" to an formidable philosophical argument. Though Hume' got the same ideas centuries later, he still deserves a great deal of respect for coming up with these ideas independently and for being the first in the Western world to popularize these ideas.

This perspective looks more probable than that of a permanent self/soul. In fact the possibility of an impermanent Soul/Self is the more scientific viewpoint, as it does away with the "Ghost in the machine" hypothesis of Soul. Soul/Self is no more a non-material "ghost" residing in the material "machine" of the body; but rather its an after effect or by product of the material body in its material environment.

Ego has a central place to play in all human action, and ego is rooted in the concept of I/Self/Soul. But if the very concept of Self is nothing more than the totality of one's experiences and sensations projected through the prism of imagination, what we call as "I" or "Self" loses its subjective nature and becomes objectified.

One major implication of this thought process is that there is no Soul in the usual sense in which we use the term. "No Soul" implies that no part of us survives our physical bodily death. This further implies the improbability of life-after-death, heaven/hell, Moksha, etc.

The Buddhist view point however still holds on to reincarnation in the sense that a set of actions/sensations/thoughts in a particular birth can act as causes to a set of effects in some other birth, thereby maintaining the continuity of Karma. This however is not scientifically possible.