Tuesday, July 21, 2009

Racism and stereotyping in "Blazing saddles"

It is a popular movie by Mel Brooks famous for "Space Balls". The movie was a typical Mel Brooks movie filled with satire, one liners, spoofs, parodies and several funny moments. One typically finds him regularly including some jewish cultural elements to his movies. Also, he makes it a point to always reiterate the western perceptions of Hitler and the Nazis.

What really caught my attention was one of the scenes where Lamar, the villian is recruiting bad guys for his army to take over Rock Ridge. The list of people in the line include
  1. bikers
  2. mexican bandits
  3. crusaders
  4. nazis
  5. member of ku klux klan
  6. Arabs

Now, hold on a second... What is wrong with being an Arab. (I would ask, what's wrong with being a biker) It is clearly a western stereotype being enforced by a jewish entertainer.

When I asked about this to some of my american friends, they did not even find it to be racist or wrong.

It looks like Mel Brooks does want the west to equate arabs with klansmen, nazis, crusaders and bandits. It is really unfair that the jewish people who suffered racism for centuries are trying to promote the same against Arabs to achieve their political ends.

Monday, November 3, 2008

Benny Lava

I decided when I started to blog that I will not have any explicit content on my blog, but this shit’s hilarious. I was amazed to see Benny Lava a.k.a Prabhu Deva had become a global phenomenon, thanks to Buffalax, a youtuber who transliterated Kalluri Vanil song. Try searching for Benny Lava in YouTube and you will be amazed. Most of Prabhu Deva fans have always thought that he never went as international as his talent deserved, but it is nice to see him youtubed to world fame! Even though the lyrics is explicit and funny, the humor is definitely creative.  This video has over 9 million views and counting.

The video has also inspired more buffalaxing of several popular Prabhu Deva songs. Some people might find it racist. But, no one can deny the crazy creativity in this mad transliteration. 

Click the following link to listen to this David Choi remix.

I have laughed like mad today and missed my gym to write this blog. This also reflects how music can transcend boundaries. I apologize to people who think this song is racist. I am sure that buffalax did not intend it that way. Also watch the McCain/Palin Benny Lava video.

Write your comments about this YouTube phenomenon!

Friday, October 17, 2008

ILog JRules Business Rules Management System – Point of View

Who is this blog for?

This blog is for teams that are looking to use JRules or any BRMS for providing solutions to the business needs of their customers. It is not a tutorial. It has my experience with JRules in a set of brief but important points. It will give you a feel of what it takes to leverage a BRMS for your needs. This blog is written with ILog JRules 6.1.5 in mind. The latest version however is 6.7.  Most of points mentioned here would still apply to 6.7.

ILog JRules

ILOG JRules is a popular Business Rules Management System for ILog, a French software company established in 1987. It will be acquired by IBM soon as the negotiations have been finalized. ILog JRules is a platform for defining, testing, integrating, and managing the business logic of an application in the form of business rules. It allows both business and IT users to manage the business rules. ILog has a suite of BRMS products for various platforms.

  • ILOG JRules
  • ILOG Rules for .NET
  • ILOG Rules for COBOL
  • ILOG Rules for C++

ILog JRules is the BRMS for the Java platform and is the most widely used among the products.

What are business Rules

Business rules describe the definitions, constraints/business policies and operations that apply to an organization in achieving its goals. For example, a business rule may state that

If

    The driver of the vehicle is under 18 years of age

Then

    The driver is a young driver;

    The driver has an additional surcharge of 20 dollars

Given a change of business strategy, the organization might have to change this rule by either increasing the surcharge, or having a different surcharge for a particular state, or might increase the age for the young driver.

  • A business rule must be declarative. It describes the operations of an organization and must not prescribe how an organization must operate. That is why rules are discovered and not created.
  • A business rule must be atomic. It can either be completely true or completely false. It must describe one and only one well defined business rule. The business rules must distinct and independent.
  • It must be expressed in a natural language so that a wider audience can be reached.

In JRules business rules may also be specified as decision trees and decision tables.

What is BRMS?

As companies rely more and more on information technology (IT) to manage their business, IT departments need to develop more complex applications and simultaneously accommodate an increasing rate of change in the applications they support. Traditional software architectures have been short in addressing the volume, complexity, volatility and fast changing nature of the business rules. BRMS addresses this issue by providing a structure to define, author, deploy, execute, monitor and maintain the variety and complexity of business rules. It can be loosely equated to the role played by Database Management Systems to manage data. Similarly, BRMS manages business rules. Business Rule Management System provides tools that allow you to manage business rules independently from the application logic. The atomic reusable business rules can then be mixed and matched to create rule applications that are hosted on a rule engine. Also, both IT and business users can participate in rule development at the same time.

ILog JRules

JRules BRMS enables business users and IT development teams to manage these business rules simultaneously. The following is the basic architecture of JRules BRMS.

clip_image002

There are three perspectives of importance during development of business rules in JRules.

clip_image002[6]

Business Rule Application Development

Developers and architects first design a data model, often working with business analysts as a source for models and requirements. They develop a rule project, write business rules, and integrate rule execution into a production application. JRules Studio, which is integrated as a plug-in with eclipse enables the developers and architects to design the business rule application, author, review, and debug business rules. They can keep the rules in sync with the business users using the Rule Team Server.

clip_image002[8]

Business Rule Management for Business Users

Rule Team Server has a web based tool used by Business users and policy analysts to author, publish and maintain the business rules. Similarly, developers publish rules to Rule Team Server through the Eclipse based Rule Studio. Rule Team Server is a database to store and manage these independent rules.

clip_image002[10]

Integration into an Enterprise Application

Integrating a business rule application into your enterprise environment consists of writing the integration code that calls the execution of business rules from your application, and deploying the rules to the execution environment. Once the business rule application is deployed, an administrator can monitor execution using the Rule Execution Server console. The following components are necessary.

Rule Engine

The rule engine is a component in which you assemble, isolate and apply the business logic (the rules) of an application.

Rules Execution Server

Rule Execution Server is a managed, monitored execution environment for deployed business rules. Rule Execution Server handles the creation, pooling and management of ruleset instances in order to assist invocation of a decision from application code. Rule Execution Server provides a management console, from which you can deploy, manage, and monitor Rule Applications.

Rule Scenario Manager

Rule Scenario Manager is a framework that enables developers to provide business rule testing and simulation solutions to other developers or policy managers. Business users and developers can create and manage tests that invoke the rule engine and manage reference data used for testing and simulation in different formats including spreadsheets.

Point of View

I was involved in the development of a rule based system for a major Railroad client.

Setting the context

I worked on a rule based application for a major railway in the US. We created a prototype using ILog JRules version 6.1.5 and determined the feasibility of using this BRMS. During my involvement in the development of this business rules engine, I learned quite a bit about JRules and wish to share my observations with the IT community.

My experience

  • As part of the initial feasibility study or the pre-initiation stage of the project, one must make the end users understand the impact and the commitment required for using a BRMS. Since the users would be modifying the rules and testing them, responsibility of maintenance of the rules indirectly falls on the end users. Several times, the users understand the extent of their involvement only after the project is in final stages. It is the responsibility of the IT team to make sure that the business users realize that “With great power comes greater responsibility”
  • Based on my experience, I believe that it is essential to study the necessity and the technical feasibility of using the business rules management system.
    1. Sometimes, a traditional J2EE approach might be more suitable for the business problem than a full fledged BRMS. Imagine creating a system that just parses and stores messages from several sources. This system would be better off as a J2EE EJB application than a BRMS
    2. The following attributes may loosely indicate that your application rules can be better maintained using a BRMS i) Constantly changing rules , ii) Large number of rules, iii) Rules for a single service scattered across multiple applications, iv) Facilities in the application that configure the way the business rules in the application are executed. JRules provides that facility using Rules Team Server
    3. Some example services are 1) Service to validate if a person is eligible for an insurance product, 2) Service that looks at a set of readings of a train from a way side detector and decides whether the train has a defective component,
          • I recommend creating a simple prototype by picking a few use cases from the business domain. The demonstration of the prototype would help the users understand the features, advantages and drawbacks of a BRMS. The IT team will also understand where the BRMS fits in to the big picture.
          • The prototype can be used as a base for iterative development of the application.
  • It is essential that the business users are trained sufficiently to use the BRMS.
    1. JRules has its own English like language to build business rules. It is called Business action language. Even though the vocabulary is built by the IT team in association with business users, there are still basics that need to be learnt.
    2. The end users also need to learn to use tools like Rules Team Server Web application for authoring rules and sometimes Rules Execution Server Web console for deploying rules.
    3. The IT team must learn IRL (ILog Rule Language) on top of Business Action Language in order to write rules
  • Shift in programming methodologies.
    1. Most of us are used to procedural, modular or object oriented programming. Writing business rules using JRules requires a paradigm shift in our thought process. The rules engine does not evaluate the rules in sequence. Instead, it uses RETE algorithm to process rules. The Rete algorithm is used by the rule engine to minimize the number of rules and conditions that need to be evaluated, compute which rules should be executed, and identify in which order these rules should be fired. It is a pattern matching algorithm. For a discussion of RETE algorithm, please use the following link.

clip_image002[12]

  • The first step in creating the Business Rules engine is to have a clear understanding of the business domain.
    1. The domain models are first created using UML by understanding the business requirements.
    2. The domain models are converted to Java classes. This set of models is called Execution Object Models or XOM.
    3. The XOM is imported into the JRules Rule Project in JRules Rules Studio (Eclipse based). The XOM now becomes the business object model or BOM.
    4. The IT team works with the users to provide proper business names to these business object models. For example
              • String studentAge will become “Student Age”
              • addSurcharge(Car car) will become “Add surcharge on this car” etc.
  • Once we have a stable BOM, the IT team generates Rule Flows. Rule flows are similar to UML activity diagrams. It creates a business flow that will evaluate the rules with the passed data and return output. Every UML activity is composed of a set of rules written in Business Action Language, ILog Rule Language, Decision Tree or Decision Table. The rules in an activity can execute either sequentially or using RETE algorithm. An example of a rule flow is as follows

Ruleflow

  • The business user and/or the IT team can now start adding rules to these rule tasks (UML activities) using BAL or IRL.
    1. Example of a typical rule in BAL (Business Action Language)

if
    the age of the 'current driver' is less than 18

then
    make it true that the 'current driver' is under age ;

    1. The rules may also be written as decision tables

clip_image002[14]

    1. The rules may be written as decision trees

clip_image002[16]

  1. The IT team can also write rules and functions for calculations, flow control etc using ILog Rule Language. These rules are called technical rules.
  1. After sufficient testing of the rules written by IT and business users, the application can be deployed. Testing can be automated by using Rules Scenario Manager, a testing suite for ILog JRules. It follows a concept similar to JUnit. The test cases can be grouped as suites and suites as scenarios. The highlight here is the ability of the tool to accept data in spreadsheets. The business users can feed data using spreadsheets and test. Apart from the test results, several key performance indicators (KPI) like number of rules fired, the set of the rules that did not fire etc can be inspected to perfect the rules.
  1. The deployment of rules can be done using Rules Execution Console. The Rules Execution Unit can be made available as a resource on an application server. The calling program can use various methods to invoke the rule application.
  1. JRules provides a rules extraction, querying and rule reporting mechanism. Rule reporting internally uses Eclipse BIRT (Business Intelligence Reporting Tool) to generate static reports on the rules.
  1. It is possible to perform hot deployment on rules. However, this powerful feature must be controlled by having an efficient rule governance policy that aligns with the IT policy of an organization. A rule governance policy determines how rules are developed and deployed in an organization for business use.
  1. The power of JRules lies in quick creation and deployment of rules by both business and IT users. The ability to leverage these features requires a higher learning curve as compared to traditional J2EE applications for both IT and business users.
  1. Since rule applications are by nature designed to take an input and provide the result as output and also perform a well defined decision making activity, they are good candidates for Services. When architecting systems, BRMS rulesets can easily fit in as services in our Business Process Models.
  1. It essential that a NFR document and performance plan is prepared upfront. Continuous performance management is best way to achieve the most optimal performance in BRMS based development methodologies
  1. ILog’s Agile Business Rules Development methodology (ABRD) is the business rule management industry's vendor-neutral methodology, delivered as an Eclipse Process Framework plug-in that provides a step-by-step process for developing business rule applications. Starting from rule discovery to rule set deployment and maintenance, this method helps to develop rule set using an iterative approach.

clip_image002[18]

 http://www.ilog.com/brms/media/ABRD/

Copyright © 2001-2007 ILOG S.A. and its subsidiaries

Resources for ILog JRules

http://www.ilog.com/products/jrules/documentation/jrules67/

http://www.ilog.com/products/jrules/index.cfm

http://blogs.ilog.com/brms/

http://www.ilog.com/dev/brms/

http://www.ilog.com/brms/media/ABRD/

Conclusion

JRules is one of the best BRMS in the industry. If implemented right, it can improve the agility and responsiveness of a business organization. With this blog, I hope the teams looking to use JRules can make informed decisions on using JRules by understanding the processes, pitfalls and risks in implementing a JRules based development strategy.

Thursday, October 16, 2008

How do we stop all the wars!

 
Wars are the biggest cause of grief and a curse to the entire humanity. There is always a high chance of some hot head pulling the trigger that starts a chain reaction that eventually wipes out the world as we know it today. Diseases, epidemics and natural disasters kill more people than wars. But, the human kind heals and recovers from these catastrophes. It is not long before the 2004 Indian ocean tsunami wiped out entire villages and killed close to 250000 people in just a few days. Still, we have forgotten it. However, we find it hard to forget the wars and the destruction it causes to our psyche. Love, which is the central force that binds all humans together is replaced by hate every time there is war. Where all other catastrophes are caused by nature and things not in our control, wars are clear handiworks of humans. They show the dark side of humanity.

How do we stop wars

This is a trillion dollar question that every one in the world is asking. The smartest minds in the world are thinking hard for ways to prevent nations from getting into conflict. Even small problems like stealing cattle can escalate into full scale wars that kill thousands of people and leave several generations scarred. But, we have not be able to stop wars. Wars are reason for creation of United Nations. But, has it stopped wars? Not even close! Large scale wars still exist like Invasion of Iraq and Afghanistan, recent Lebanon-Israel conflict etc.  Many large wars have been replaced by low intensity conflicts that bleed nations for decades. Stronger powers don't really like to sit down and talk. They wish to use their might to enforce their writ. Smaller and weaker nations respond by initiating proxy war against these big nations by creating insurgents, terrorists, aligning with the competitors of these big nations etc. or supporting dissident groups inside these large nations to weaken them from inside.

Let us look at some of the attempts that have happened till now to prevent wars.

  1. Formation of United Nations.
  2. Greater communication mediums that use public opinion to prevent wars
  3. Education right from school level about the horrors of war
  4. Every time there is a conflict, world leaders try to interfere and resolve the issue by negotiated settlements.
I can go on with the list but the fact is that none of these measures have deterred countries from choosing war. It has always remained as a last option for most of the nations and as first for some.

I believe that the primary reason for failure of these measures is that none of these have really created a compelling reason for nations to not engage in wars. I am proposing a way here by which we can effectively stop all the major and possibly most of the minor wars. It is not easy and it might take a hundred years to achieve but this will deliver what we have not been able to achieve for thousands of years. A total cessation of wars and all major violent conflicts.

In order to explain my point, let me ask a few questions.

  1. Has United States and Russia ever fought a direct war on each others soil.
  2. Has China and the European union ever fought a direct war

The answers is no.  The reason for the lack of direct armed conflict between these nations is their huge sizes.  Even if one of these nations win, the other would be so devastated that it would only be a pyrrhic victory. The concept of mutual deterrence or Mutual Assured Destruction has been in effect since a long time and had between pretty effective since the beginning of Cold War. Instead of deterrence through Nuclear Weapons, if a conventional deterrence mechanism existed, that would be an ideal way to discourage wars.

The following are the essential steps that can reduce conflicts to a major extent all around the world

Creation of Large Nations

Nations need to unite by looking for similarities with their neighbors to create much larger nations based on a federal systems like the Russian Federation, Indian Union or the European Union. I am in favor of a EU like system as a loosely organized group of nations where nations don’t feel threatened about their loss of sovereignty and cultural identity.  A couple of organizations that I can think of are

  1. European Union (Already exists and expanding)
  2. North American Union of US and Canada)
  3. Latin American Union
  4. South Asian Union (SAARC)
  5. South East Asian Union (ASEAN)
  6. Arab Union
  7. Chinese Union
  8. Central Asian Union
  9. Russian or Slavic Union
  10. African Union

Every nation must work with its neighbors to identify the right union that will work for them. Every nation must take its own path consistent with its values and history. Every nation state will have its own parliament and a good degree of autonomy.

Such nations will be able to make progress by taking advantage of a diversely skilled population and vast natural resources that is inherent to large nations. Instead of relationship being of a stronger and a weaker nation, it will be that of equals.  This sense of justice itself can be a good deterrent against violent conflicts.  Also, regions fighting for independence can be given autonomy.  Since they cease to be part of an occupying country, insurgencies will reduce. Slowly, these nations can work on integrating the nation states into the much larger nation by education of the younger generation.  After a few generations, the larger nations will become real nations with loyal populations.

This will require a lot of sacrifices from member nation states. However, it will go a long way in uniting the humanity. People will learn to live to together as bigger nations by nature will have diverse populations.  

Reorganization of UN

United Nations will eventually become a grouping of these large nations. No resolution or law can be passed without the consent of all the nations.  That way, a powerful country imposing its view of a smaller country through UN cannot happen. Since, there are less number of nations in the world, it will be easier for UN to act as consensus is much easier to achieve. Every one will get an equal say in all the world affairs. UN can also host a world parliament that can pass rules that apply to entire humanity. These rules would be mandatory on every member nation.  These include rules on Human Rights, resolution of territorial disputes, personal freedoms etc. UN resolutions can become binding laws due to mutual consent.

Population Exchanges

Nations must promote inter nation state and international population exchanges based on a formula of free will and protection of identity and sovereignty of emigrant and immigrant nations.  The will benefit all the countries not only from economy and skill standpoint, but also as deterrent for war.  As every country will have a population from every country in the world, support for violent conflicts from local populations will reduce.  People will learn to appreciate and live with diversity. Also, insurgencies will reduce as population exchanges within nations will make it harder for nation states to demand separate country as wide spread support will not be possible.

Conclusion

Thus large nations will eventually deter and stop wars and conflicts. People will learn to live with others with tolerance.

I have to give a lot of thought before I can come up with my next blog on the same topic.  However, before I do that, I wanted my views to be open for discussion so that I can correct myself.  Please leave your comments and suggestions.

I hope that one day, all of us can live together without suspicion, prejudice and enmity. I hope that there will be a day without any war. People will understand and appreciate each other for what they are. Relationship will be based on equality, mutual respect and love. That will be the true golden age of humanity.

Monday, October 13, 2008

What can muslims do...

In the last few months, I have been reading news from my safe house in Fort Worth, TX. Is India really safe for people of the minority community? Specifically, is India safe for Muslims? History shows that it is not. Will it ever become safe? Was Europe safe for the Jewish people till the fall of the Third Reich. They had to struggle for over thousand years, before there was any perceivable safety. Do Muslims of India, which is nothing less that the Europe of renaissance, have the same time and energy to sustain a thousand more years. The truth is to be left to individuals. However, my belief is that Muslims really don't. It is already a community at odds with every one in the world. When I think about it, it is really hard to digest. I have always known Muslims as peace loving and compassionate. So, let me step back a few miles. This struggle has always existed across history and will always exist. The majority suppressing minorities. Strong oppressing weak. This is human nature. Survival of the fittest. So, how does one survive this. Like I said, only the fit survive.

How do we turn fit? Are we really weak today? Interestingly, every statistic in India indicates that except bollywood, Muslims currently suck at everything. I am not proud to say that, but we have to know the truth. Are we just genetically dispossessed to be like this? Muslims have one of the largest diversity among any religious group in India. We have every gene pool possible. We have people in every field imaginable. This means, we cannot really be weak in anything. Then, why are we really in such a bad spot? We have always felt a sense of community. But on the ground, we don't really function as a community.

Step 1: Unite as a community - Register with your local mosque

This is not going to happen over night. Will some highly charismatic leader appear from the sky and unite us all. The probability is not really in our favor. So, I would pass on miracles for now. Unity has to happen at grass roots level. Do we even have a sense of community first of all. Christians in India, whether observant or not, are registered to a church. The church takes interest in their well being. The full time work of the pastor/priest is to tend to his flock. This is exactly what the mosques must do. Most of our mosques actually have full time Imams. But, why are we not united with our local mosque. Our Imams probably are not trained in leadership. We must have stronger curriculum in Madrasas that train Imams on community organization and building. Secondly, our poor Imams have to work extra to take care of their families. A Roman catholic priest does not really have his own family. So, he can spend all his time in community building. As for our Imams, they must be well provided by the community. This means higher salaries and benefits. Where do we get all the money from? Taxing the members of the mosque as a percentage of their economic status. This will only work if we do take one tiny step which is the bottomline of this entire paragraph. Get your lazy butts out of the couches and register with your local mosque. It will be great if you pray every day at the mosque, but as the first step, first let your glorious existence be known to your local mosque. Take interest in mosque activities. Make sure we are not only organizing Dikr nights, Iftar parties etc but also a session on public speaking for the local youth, a basket ball tournament with neighboring mosque, Age of Empires tournament for all those computer geeks in the community (that was for myself) etc. We have to make the youth frequent our mosque. Otherwise, we will never become a community.

Step 2: Unite as a community - The mosques must unite.

This is a subject that I have little experience on. However, let me just pour a few of my thoughts. The Imams and community leaders of a mosque must unite with neighboring mosques. There must be a district and state wide union of mosques, that must do much more than organizing isthimas. There must be inter mosque dialogues and events that build solidarity between communities. This is how we can identify and nurture leaders who could grow to a national scene and represent us.

Step 3: Strong work ethics, family values and continuous self improvement

Muslims must realize that we are already living on borrowed time. Due to the good work of our ancestors, we still have what little is left. So, we must work hard as individuals to continuously improve our virtues, intellect and wealth so that we can contribute to our families, community, nation and the world as a whole. I have seen so many talented Muslims deciding to only work on the akhirat (Hereafter). If Allah gave you the skills, he means that you must take care of the ones that he did not give it to. We only look at it at a micro level. The big picture is that these individuals must grow into community leaders.

There is so much to write, which I believe I will, as the time progresses and I grow wiser. For now, even I don't follow all that I just preached. So, I will work on filling the gaps there. Let us unite and be useful members of our society and gain the respect that we really deserve. When that happens, we will be seen as a strong society and no one will/can hurt us.

Sunday, November 11, 2007

First time

This is my first post. Orkut gave me an option to create one. Will post more with time...