Thursday, June 22, 2006

Oral culture (still)

The current thought about education (at least in India) seems to be that reading and writing enable a person to make it in life. Indeed it is so.

But: looking at many people, it seems that for them, the oral instruction is more important in their learning process rather than book-reading. Writing has an even shakier role to play, one writes to communicate and many people don't seem to need to communicate through the written word and because of that lack of practice, they cannot do so effectively when called upon to do it.

People learn by hearing other people describe something to them, by other people tutoring them. And also, many people are incapable of learning through a written documentation such as a user manual of a device.

This seems to be because they do not know the art of learning through the manual. This also implies they do not know the art of learning. The routine education by rote simply drills in knowledge into them and that knowledge cannot really be put to any use because they do not understand the way that knowledge bootstraps with other knowledge. They do not "know" the building blocks because no one described it to them, and no one described it to them because those building blocks are implicit in the brain and not explicitly knowledge(intuition) and hence not describable. Only thing that makes those building blocks (for arguments sake we assume they already exist in the brain) robust and "present when needed" is exercising of those building block usage: this happens only when someone learns by thinking about something, understanding something step by step - not by having someone impart the final finished product.

So, should we not teach our children to learn from the written word, given that there is an increasing importance of the written word in our lives, especially given the Internet. People should stop tutoring kinds in class rooms about science, maths , what have you. Instead they should initially tutor the kids to learn from 'manuals' and subsequently monitor their progress while they actually do so subsequently. In a country like India, this could also become a great leveler as well: assuming that rural, underprivileged kids could be effectively taught to learn from the manuals as it wold allow each child to learn according their needs and abilities. And all the time they would be learning it in a manner that is effective. What is learnt is learnt indeed because they have really learned it only as a consequence of having understood the subtle steps involved.

Of course all this presupposes the manuals themselves are written with the end goal of implanting the building blocks the the learners mind: for example no point in having a physics textbook that tells you the laws, the equations and presents tons of "worked examples" etc. Instead, that book should throw light on the underpinnings of the law, the building blocks of problem solving the problems themselves should throw light on the various implications of the law, allow the students to be cogmired in apparently paradoxical situations. Such students as have the interest will emerge and will emerge wiser. The rest did not have it in them anyway, they are better off studying something else.

Friday, June 16, 2006

Falling standards

Do you want to be writing reviews on music concerts and get them published in Hindu? It seems simple : just know some thing about (say) carnatic classical music, and btw, no need to be sure what you know is right. Just know something, its enough. While on the topic of knowing you must know someone in the paper (I am sure).

See this review ... for example.

Clearly "Ranjani Govind" knows very little about carnatic music. Some gems
With an excess of Tyagaraja's kritis that dominated the concert, Sanjay was smart enough to bring in Purandaradasa's "Ninna Nambide Neerada Shyama" in Mukhari for the Karnataka crowd even as he delighted the Tamils gathered there with several Tamil compositions, and the GNB popular "Radha Sametha Krishna", the racy madhyama shruthi composition on request.


Why? Don't you know the raga its composed in? C'mon do some research - you might learn something. While at it why don't you learn some kannada too and some logic, maybe: Karnataka crowd and Kannadiga crowd are two different entities.

With the 22nd melakartha raga Kharaharapriya, one saw Sanjay in true form. This is a raga with symmetrical tetra chord that brings some pleasing straight swaras to add up to the beauty of the raga chaya. Traversing effortlessly on a scale that leads you on to a good number of janya ragas (the most famous being Natabhairavi and Shankharabharana), Sanjay's tread on certain phrases reminded one of rag Kafi of Kafi Thaat in the corresponding scale.


Hmm. "symmetrical tetra chord", eh? So Natabhairavi and Shankarabharana are janya raga's of Kharaharapriya now, are they? Since when? And even if you meant something like "they are ragas by doing grahabheda on kharaharapriya, "most famous"? How about harikambhoji, thodi and kalyani? Are they less famous than natabhairavi?

Tuesday, June 13, 2006

teamgeist balls and sports by design

I have recently noticed a number of articles about the aerodynamics of the teamgeist balls and how it can have random meanderings which confuse the goal keeper. Some people even point out how the orientation of the ball is very important for this to happen etc.

Some examples:
cfdreview says
Some of the world’s greatest goalkeepers have been beaten by unusual swerving balls which move to the left and the right before hitting the back of the net, even though they have little or no spin applied to them. The new research has found that the shape and surface of the ball, as well as its initial orientation, is critical in terms of its trajectory through the air.


And the above link also says
A team of researchers, led by Dr Matt Carré at the Department of Mechanical Engineering at the University of Sheffield, used the most advanced software, known as Computational Fluid Dynamics (CFD), for simulating the physics of airflows in and around objects.

Hmm. I thought CFD was a field of study.

BBC seems to have better journalists. Here is their take:
In the early 1950s a young Brazilian midfielder nicknamed Didi invented the swerving free kick. He realised that a ball kicked with spin would deflect significantly in flight.

It is no accident that the technique emerged first in the South American game. The leather ball of that era was very prone to water absorption and the weight increase made it much less responsive to the aerodynamic forces caused by the spin. This was seldom a problem in the warm, dry conditions of Brazil but a serious drawback in Europe's winter game.

Not until a ball with a synthetic, impermeable surface was introduced in the 1960s could the technique catch on. European players then became as adept as their Brazilian masters and a long line of expert free-kickers stretches from Didi to the present day.


I would think that in a sports that is played by 22 people in a large play ground in varying and widely different weather conditions, good sportsmen would already have adapted to these things. Any random air pocket could easily cause a much different flight dynamics. It somehow seems that these kinds of researches are misguided. And sports by design is not very possible. Good players have to adapt to the game conditions and play well (and thats why they are good players, in the first place).

Monday, June 05, 2006

Jboss 4.0.4 has some feature which allows web service clients to be "deployed" into the container without too many hassles (See this).

That is apparently controlled by client-deployer-service.xml.

Now, here is something weird : I had an ear file that used to deploy fine under jboss-4.0.3. After upgrading to jboss 4.0.4 GA1, I get the following exception.


14:14:14,900 INFO [EjbModule] Deploying FooBarBean
14:14:15,209 INFO [EjbModule] Deploying BazHibernateSequenceBean
14:14:16,439 ERROR [XmlFileLoader] XmlFileLoader: File META-INF/application-client.xml process error. Line: 3. Error message: The content of element type "application-client" is incomplete, it must match "(icon?,display-name,description?,env-entry*,ejb-ref*,resource-ref*)".
14:14:16,440 ERROR [MainDeployer] Could not start deployment: file:/home/xxx/tools/java/jboss-4.0.4.GA/server/default/tmp/deploy/tmp19686xxx.ear-contents/my-module.jar
org.jboss.deployment.DeploymentException: Invalid XML: file=META-INF/application-client.xml; - nested throwable: (org.xml.sax.SAXParseException: The content of element type "application-client" is incomplete, it must match "(icon?,display-name,description?,env-entry*,ejb-ref*,resource-ref*)".)
at org.jboss.metadata.XmlFileLoader.getDocument(XmlFileLoader.java:331)
at org.jboss.metadata.XmlFileLoader.getDocument(XmlFileLoader.java:272)
at org.jboss.deployment.ClientDeployer.start(ClientDeployer.java:143)


Initially I thought it had something to do with web services being exported by my ear file etc. but apparently it was this client deployer service that was causing the problem.

I simply removed the client deployer service (client-deployer-service.xml) from server/default/deploy directory : and the problem went away.

CDPATH aware completion plugin for bash

Its very annoying how cd command of bash does not integrate nicely with the CDPATH variable it defines in the context of suggested completions whe the user enters TAB.

The following script addresses the issue to a large extent (naturally, with some bugs).

Just paste the following into your .bashrc and load the .bashrc as usual, either by doing ". .bashrc" in your current shell or by logging in afresh.



complete -o nospace -F expand_to_dir_list cd

expand_to_dir_list()
{
pattern=$2

if [ "`echo $pattern | grep '^\\$'`" != "" ]
then
COMPREPLY=()

#If there is a slash at the end ...
if [ "`echo $pattern | grep '/$'`" != "" ]
then
COMPREPLY[0]=`eval "echo $pattern"`
return
fi

#List env variables which begin with the specified prefix
pattern=`echo $pattern | tr -d '$'`
for setting in `env`
do
vn=`echo $setting | cut -d'=' -f1`
if [ "`echo $vn | grep "^$pattern"`" != "" ]
then
COMPREPLY[$index]=\$$vn/
index=`expr $index + 1`
fi
done

return
#pattern=`echo eval $pattern`
fi


slash_in_pattern=`echo $pattern | grep /`

if [ "$slash_in_pattern" != "" ]
then
path_prefix=`echo $pattern|sed -e 's/\\/[^\\/]*\$//'`
name_prefix=`echo $pattern|sed -e 's/^.*\\/\\([^\\/]*\\)\$/\\1/'`
else
path_prefix="."
name_prefix=$pattern
fi

p_dirs=()
n_p_dirs=0
if [ "`echo $path_prefix|grep "^/"`" != "" ]
then
p_dirs[0]=$path_prefix
n_p_dirs=1
else
#Add . to the head of list
cdpath=".:"$CDPATH
for p_dir in `echo $cdpath | tr ':' '\n' | sort -u`
do
if [ -d "$p_dir/$path_prefix" ]
then
p_dirs[$n_p_dirs]=$p_dir/$path_prefix
n_p_dirs=`expr $n_p_dirs + 1`
fi
done
fi

COMPREPLY=()

index=0
for p_dir in "${p_dirs[@]}"
do
for entry in `ls $p_dir`
do
prefixness=`echo $entry | grep "^$name_prefix.*"`
if [ -d "$p_dir"'/'"$entry" ] && [ "$prefixness" != "" ]
then
COMPREPLY[$index]=$entry/
if [ "$p_dir" != "." ]
then
COMPREPLY[$index]=$p_dir/${COMPREPLY[$index]}
fi
#Clean path
COMPREPLY[$index]=`echo ${COMPREPLY[$index]}|sed -e 's/\\/\\//\\//g' | sed -e 's/\\/\\.\\//\\//g'`

#remove a prefixing pwd , if any
pwd=`pwd|sed -e 's/\\//\\\\\\//g'`
pwd=$pwd\\/
COMPREPLY[$index]=`echo ${COMPREPLY[$index]}|sed -e "s/^$pwd//"`

index=`expr $index + 1`
fi
done
done
}