Checking the text in side bar

Wednesday, November 30, 2005

Age of Empires - MY EMPIRE

-------------------------------- CHAPTER TWO -----------------------------



please read CHAPTER ONE - RISE before reading this.

A new TITAN was on RISE. I will name myself as Ayesha Takiya for the purpose of this record.

For next few weeks several games were played, in which Ayesha's job was to collect resources for his "Royal Allies". Ayesha became a preferred player as no one in the real game wanted to do a dirty job of collecting resources. Everyone wanted to fight, which was easy to do if you have a designated resource collector on your side. Ayesha was happy to be considered as a key TITAN now. With time Ayesha's strategies grew. Ayesha was always the first one with 200 population. Ayesha always had the highest population at any given time. Enemies were afraid of Ayesha's armies of men. Men that will be all over the map doing exactly what they were supposed to do, stealing resources. Enemies changed their strategies to aim Ayesha as the first enemy. Enemies used to look for Ayesha's men and kill them. Many TITANS, increased their kills by doing so, a shame. Ayesha was the first TITAN who stopped caring for his men. He stopped trying to save his men. He will produce many more men on the other side of the map. TITANS were afraid of Ayesha.

Ayesha got bored. He was bored with the same game again and again. Everybody was killing Ayesha and Ayesha killed nobody. Everybody after the game talked who they killed and how. Ayesha was quite, He hadn't kill anybody, except few towers and catapult. Ayesha wanted to fight. He chose Egyptian as a civilization. Egyptian, a civilization which can give 100% as tribute, civilization whose men were strong and faster and a civilization in which army could be build based on food and wood, was Ayesha’s favorite. Ayesha also chose a color, blue, many who played with me will remember. For many ... many games, Ayesha tried to build his army but could he couldn't do it. Then times changed. Ayesha, an expert on resource collection, was the first one to reach Iron age in 20 minutes. He brought syth on the map when all the other seven were in bronze. Blue color Egyptian syth, over 40 of them, when first seen by an enemy while he was in bronze, he resigned immediately. Game was finished much before than it was supposed to. Ayesha was the new TITAN with thousand of resources and great armies. Now if someone asked for resources from Ayesha, Ayesha would say 'NO'.

Stratigies changed. Team-mates started giving Ayesha resources to make him reach iron in 18 minutes. Once in iron, Ayesha produces sysths, only syths. Only building Ayesha would build were research buildings and stable. Ayesha will produce 200 syth. Ayesha was first one to attack. Enemies would resign if Ayesha's syth reached their town-center. Enemy, whose town-center was infront of Ayesha's, would leave his town-center with research of bronze to hide behind his allies. Ayesha was the one who attacked two enemies at the same time. All map will glow with the blue color. Ayesha became the formidable. Enemies again wanted to kill Ayesha first, this time not for men. Enemies didn't wanted Ayesha to reach iron. Becauase once Ayesha is in iron game will end.

His studies screwed. Ayesha learned hacking. He learned how to hang windows machine using linux boxes, so that he will get the machine, while some studious student would have to leave. Ayesha would come to computer center at 9 PM. Ayesha then would play game till 8’o’clock in the morning. Actually it was class at 8 in the morning, which Ayesha didn’t want to miss. Why would Ayesha miss a class in air-conditioned room, where a man will make him sleep? No, Ayesha would not miss it. Actually Ayesha would be happy to miss it, if other titans were ready to stay at computer center and play. Anyways after attending all the classes and having lunch, Ayesha would go to his room and sleep some more. After all Ayesha had to go to war in the night, so rest was necessary. Ayesha will wake up at 6, o, clock and do the daily activities of brush, bath and toilet. Ayesha will have his dinner and then will leave for battle field.

Ayesha built great empires on the map. Half of the map will be separated by blue wall (like wall of china). Wall would be guarded by blue towers with priest by their sides. No enemy would try to bring his catapult near. Allies were happy to have blue color on friendly side. They would ask Ayesha to cover an area, so that they can build their base. Allies would ask for syths of Ayesha to protect them. Other half of the map would be blued by the syths, over 200 of them attacking all the enemies at the same time. Enemies were all yelling at the same time for help, all of them running from one side to other on the map. Enemies could not find any place to hide. And this was usual. Ayesha became the ruler. He was a preferred player, a great TITAN.

---------------------------- END OF CHAPTER TWO ------------------------

Tuesday, November 29, 2005

Age of Empires - RISE

---------------------------------CHAPTER ONE------------------------------



It was summer of 2000. I entered into windows-NT room of computer center, IIT Kanpur. There were about 5 people who were most sincere in doing what they were doing. They were shouting like there is no tomorrow, like there is no one else in the room, like they were in a different world. And I noticed something on their computer screens, and I saw “a world”. World of wars, armies, cavalry, archers.... World I had dreamed about, World I wanted to live into. Noise became less annoying, once I noticed that those five guys are actually in that world, fighting each other for land, gold and pride. The only annoying thing about the “noise” was that I was not part of that world. I felt like I am left out. Alone.

I asked one of those guys to install that thing on my machine. And since I was too afraid to loose even in a game, I preferred to play ALONE. It was my own world no one other than me and if someone else wins, It will be the computer (I map that to nature in the real world.). Just like for many men out there, I was happy to loose to a computer than to put a fight to other men. I kept telling myself, this the time for me to learn. And once I will know how to win over a computer, I will come to the world with other men. I had gratifications of winning over "easiest" computers. And I didn't mind loosing to harder ones. They were just computers and there was no else in my world to see me loosing, so how does that really matter.

They were my role models, the great warriors. I feared them when I saw their formidable armies, battalions with Cavalry, Syth, Catapult, and Ballista. I feared them when I saw their castles. Castles surrounded with walls of thrice the height of man. Castles guarded by towers which were even difficult to reach. When I saw their enemy's armies getting thrashed and wasted in moments, I feared them. They were the TITANS. I sometimes thought should I play with them? But I was happy in my own world.

One evening there were seven of them, SEVEN TITANS. The world had a space for eight. They were finding it difficult to balance the team. No team was willing to take a "nature" (computer) on their side. No one knows when nature turns its sides. They asked me to join them. They somehow believed that I would be able to balance the team. I got a choice to make.... continue to have gratifications of collecting 20,000 gold with just 30 men in my world or getting crushed in their war. I agreed to be in the middle of war of TITANS.

My team LOST. Some said nature would have been better than me. Others asked whether I came into “the world” for the first time. Even some asked me not to be around of TITANS as I was a shame on the name of the institute, department and my hall (Hall 2). I actually felt ashamed. It was difficult. Should I go back to hall and sleep, after all there is class at 8 in the morning and it is already 3 AM. I was tired. I thought my eyes are too strained. I had enough reasons to go back, All logical. I decided to stay. I decided now my own world exists only for training. No more gratifications. Again discussions started for team formation. There were people who didn't wanted to be in team, in which I would be. One TITAN, a.k.a. Naveen, not the best TITAN, who was in my team, took me aside for a crash course. He showed the world which was more than I could have imagined. I realized that I wasn't magic which gave these TITANS the great armies. It was not serendipity to have a catapult. We played second game with the same teams. And we lost again. I don't know why but this defeat was not so humiliating. May be I was expecting much more humiliation.

I wanted to play more but other TITANS decided that it would not be possible to play if I am in the game. Six of them decided to play among themselves and Naveen decided to teach me. He was my trainer, my coach and a great TITAN, Naveen. He taught me to build town center, research buildings, resource collection centers and houses, that's it. I was asked to practice the same thing again and again and again. The things that I was supposed to in the real game. After the third game (game of six warriors) of the evening was over, we decided to play fourth game. Naveen was on my team and that was my only concern. I played with shang and made only buildings that Naveen taught me. No Armies, just men. Many men, more than I ever thought were required. 200 of them, all over the map, only thing they were doing were collecting resources. I was supplier of all kinds of resources to all my team mates. We did NOT win, but game lasted for 3.5 hours. TITANS were having discussions of what went wrong and what went good. My work was on the good side. My role was decided and that's how I got a feminine name. Those who have played with me know the name. And I would like to keep it that way.

-------------------------- END OF CHAPTER ONE -------------------------

Monday, November 28, 2005

Real Estate in India

Investment Opportunities in India:

There are two kinds of opportunities available as I view the market. One in infrastructure and other in real estate. Two investments are different not only in types of work and projects but also in the way of investing.

In infrastructure, projects could be like power plants, highways, cement plants, machinery and equipment factories etc. In these projects if you do not want to get in to selling the products, you can just be there till the time of Turn-Key and get your payments done and get out of it. Easiest is Highways. Highways require less technical knowledge. But if you are patient enough to do a long investments power-plants, cement plants, iron bars factories could be a choice. Goverment has special focus on enery and transportation in 10th and 11th 5year plan.

In real estate, projects could be like residential buildings/villas/societies, commercial buildings, malls, car parks, hotels, restaurants. Except residential buildings these investments have to be like really long term. something like you are going to setup a business center in a city which would be costly enough that no company will buy it and but would be willing to give you good rent for a long period of time. So far there was very small players active in this field with 10-12 buildings in a city, except say DLF in Gurgaon and some others in Bombay. In my views this trend is going to catch in next decade.

Non Metro Cities: Companies find it difficult to retain people in city like Bangalore and now pissed with their extra-ordinary demands and city's high cost of living. So they are looking towards cities like Bhopal, Lucknow, Jaipur, Mysore. One would be safe to assume the capitals of the states. These cities provides opportunities for commercial buildings in coming 5 years and once people having purchasing power market will make move towards residential complexes. Even market for contracts of singal units of housing is coming up and ACC has already made a move here.

Foriegn Investment: Currently the industry is highly unorganized and disfragmented. Though due to size of market it would not be possible for any one company to take up major share and hence disfragmentation can not be avoided, but I am highly inclined in setting up clean businesses in this industry which would allow foriegn investors to look at India as a potential market.
So approach I will say is to have tie-ups with companies like LnT, Gammon, Hindustan Constructions if you want to go towards infrastruture with low risk low returns and long term investments. Go with companies like Mantri Developers, Kalpataru Constructions for real estate investments with medium risk and medium returns and about 3-8 years investment. And I will say best would be to launch one's own clean business which highest risk and would give highest returns depending upon the duration of investment. Find out some clean guys who are fed with the way it works today. Guys who have years of knowledge and exprience and yet are excited about bringing the changes, people who have been in the business and understand beurocracies, who can think beyond one city one state and one segment. Once you have these guys setup your own firm.

Between as we are moving ahead and industry is growing, market is emerging for services, like design and consulting. One can even think of out-sourcing of these from US, Germany or other matured markets to India. Indians are good at learning and will deliver the design at very low cost. This kind of work can be done offshore. Few companies like SIEMENS, GE have already done for infrastructure projects but market is yet to come for commercial/residential projects.

I am sorry to say that I do not understand the exact procedures and legalities required for a foreign investor to come into india. Though I just heard that now 100% investement is allowed in infrastructure projects, have a check on that.

Saturday, November 26, 2005

Software Development Cycle - A web application view

Welcome back OR Welcome. - Pick a greeting which suits you.

Article is meant to give a comprehensive view of activities involved in Software Development. It is written with Web Application in view. I will give little background about myself which will help you to put this information in perspective. I am a software engineer, working on Java/J2ee technologies in a service company. I am mostly involved in designing web-applications using Html, javascript, jsps, AJAX, Dwr, servlets, struts, DAOs, Hibernate, EJBs, web-services etc.. I am working on windows platform with oracle as database and weblogic as application server. IDE if talked anywhere will refer to eclipse.

So far, your marketting team have found a client, who is ready to invest his time and money with you to get one web-application running, which will be servicing his customers, providing them with newer features, more information about products/services and allow customers to order products with ease. If you want to know more about what the web-application is intended to do, talk to your marketting team and then to your client to get a bigger picture.

1. Know your Client
My company is a hundred percent subsidary of a US company. So to say that we already know who is our client and his core business, makes life much easier. If you don't have this information spend some time in getting to know your client first. Roam around his web-site to find out what kind of work he likes. Even we do it in order to get ideas on what prototypes should be proposed to our client.

2. Prototyping
Though not always software engineers have luxury to design prototypes, but if prototyping is done, then this is the right time for software engineers to know what exactly are the client's fantacies. This step gives an opportunity to development team to understand the business of the client, integration points with already established systems, to fix the scope of the project in large dimensions. On the other side it allows client to know what application would be delivered to him in the end. Thus this step is beneficial to both the sides, it avoids any disappointments for the client and any fantacy requirements for the development team. After this step both the sides know, what is it that development team is working on.

Though I have seen prototypes in excel, images, flow-diagrams also but I have found that using Html and Javascript for prototyping is the best approach. It not only provides a close simulation of the end-product but also saves a lot of time while coding Jsps. Most of the Html and Javascript can be reused for designing web-pages. I am adamant in using this approach, but well it doesn't always happen for eg: if prototypes are given to you from the client side. What do you do then? I will say put some people to start converting them to Html and Javascript.

Since we follow XP in our company, prototypes are not a fixed agreement between client and us but it allows us to save lots of effort in wrong directions. Some changes can always be incorporated while the actual development.

3. Estimation
This is the most critical step as far as your client and your own manager is concerned. Getting it right is like walking on an double edged sword. If you bloat your estimations too much, client will say that he can do away with this application this means loss of business for you, and if you are very aggressive here, that will mean late nights for you and your team in the office which will lead to loosing precious resources of the company (not many people realize but this loss is a good as loosing business).
But if you have done the prototyping or if you have well understood the prototypes, you should be able to come up with good estimates. Only experience can teach you this. This step itself can form a big topic for an article, I will take it some time. In one statement I would say that you should devide the work in small modules, define their inter-dependencies, integration points in these modules, keep some time for writting Junits, and some for bug fixing and ofcourse some time just to allow spare time (No body ever misses this).

Let us hope that your client is happy with your estimates and says a GO to the project.

In steps 1,2,3 you have already spent about 30% of total project time. Good news is you would know what exactly you are working on.

4. Know the production environment
Before moving ahead and deciding technologies that you will use for coding the web-application, you should spend some time to know the production environment where your application will be deployed. This will also allow you to de-select some technologies in the next step. Minimum things that you would be interested to know are database, web browser (with version), application server, clustered/non-clustered etc. Wiered restrictions would be faced if your client wants to deploy this new application on eon old system. You should talk to production team of the client to get some idea. If you are going to decide the production environment...... hmm I don't know I have never done that.

5. Deciding the technologies
Its now time to decide what technologies you would use to develop the application. Though every one takes the requirement in view to decide technlogies, one should also take into account about the abilities and knowledge of development team while deciding technologies.

Generally speaking you can devide the application in three parts.

First - Front End.
There are many technologies available, with Jsps being the most popular these days. But before making a decision one might take a look on spring framework, JSF and even servlets (if your pages are logic intensive.). You can even use combination of servlets and Jsps, this works great. I have been mostly using struts which is quite good and quite easy to work with. Though since I have not used many other technologies available, I am not in a position to compare struts with others. So untill unless I get sufficient time to study and learn any other frame work, or I do have some expert in team on other framework, I would like to use struts for frontend even if there are other technologies available which are a better fit to project requirements.

Second - Middle Layer.
Some would say there is hardly anything to decide over here, as every body uses Core Java in this layer. Yes it's true that evey one uses java only, but here you should architect your application as in give your modules a more concrete technical schema. You could think about design patterns to be used. You should think about level of security required. You must think about trasaction handling between two different systems. You would think about interacting with with older and already established systems of client. So though you are not deciding on what to use over here, but still there is considerable work on how to use Java to get a better performance and comprehensive code.

Third - Database Interation.
Hmmm, I always had difficult times on what to use for database interaction. There are so many technologies available with their pros and cons, that it just becomes a matter of comfirt as a prime factor when deciding technology here. Technologies available are DAOs, JDOs, EJBs, Hibernate, Top-Link etc. We will talk about these in detail some other time. Though I have worked upon DAOs, EJBs and Hibernate , I do not have a suffiecient technical knowledge to make a fair comparision between them.

You should also make a decision on application server, web browser, database etc. in this step.

6. Setup the development environment
Now it is time to setup the environment, that is install the application server, a database, a code repository, a build tool, installation of IDE, JDK etc. If you don't know on what to chose, take a look on list below.
Application Server - JBoss, Resin, Orion, WebLogic etc. (Weblogic- My fav.)
Code Repository - VSS, CVS, Dimension etc. (WinCvs/Tortoise CVS - My Fav.)
Build Tool - ANT (I have never worked on any other.)
IDE - Intellij idea, Eclipse etc. (Eclipse is free, and IntelliJ idea is probably the best available.)
Database - Oracle, SQL, Access, File System etc. ( again I haven't worked on anything other than oracle.)
JDK version-, 1.5 etc.

Take some time to install all these properly on each of the machines that will be used for development. Datbase may be required to install on each machine.

In steps 4,5,6 you would have spent about 15% of project time. Good news is now you are going to start the coding.

7. Coding application
Things that you would like to remember here are that
- your team's interest is always intact.
- you have some redundancy between team members that is there is more than one person who knows a particular module.
- Everyone knows how his code is going to fit in the project.
- Do remember to write Junits to assist in code refactoring

This step will take about 35% of the project time.

8. Testing and Bug fixing
It will be good idea to keep experts in this area. But if you do not have that luxury, you should rotate team for the testing, that is to test the functionality of a module, you should ask people who have not coded that module. You should also keep a track on the number of bugs raised with the priority level and number of bugs resolved. One can use tools like BugZilla and Testdirector for this. Do remember to do performance testing of the application, with simulation of actual production environment.

Just one peice of advice, do keep suffiecient time for this step say about 15% of the project time.

9. Post production
Keep about 5% of time for this. One certainity - one would always face some issue(s) here. One uncertainity - Each issue would be new and quite unexpected. All I will say do not panic. Any issue(s) will be resolved with some night-outs.

With this I will conclude my article. I hope this would be of some help when you would lead your first project.

Friday, November 25, 2005

hunh... so you have decided to take GMAT

If you have come here and are interested to read this. I believe that you are apping to some B-schools.

Article is meant for people who don't know anything about apping process and do not have an idea about where to start. This will give a picture of the complete process till submission of application. Since the problem you are facing is encountered by everyone of us, I am trying to prepare a generic calender which can be used in the process.

Few Important points to note before going ahead.

The calender dates and time are to be followed for apping process but the profile building takes a lot more time. some times people invest 3-4 years in building their profile for good B-schools. However once you have your profile ready with you, formalities of apping can be planned as follows:

1. However many schools provide two opportunities in one year to commence the MBA program it is highly reccomended that international students should apply to program starting in fall semesters. That is if you are selected your classes will start from August/ September of the year. I will assume that one is interested in apping to fall 2007 program.

2. For most schools and almost all top 20 schools, admission process takes place in three cycles which are reffered as round 1, round 2 and round 3 applications. Approximately 55%, 35% and 10% admissions are granted in round 1, round 2 and round 3 respectively. Figures turn out to be roughly same for international applicants' admissions also. Volumes of international applications are roughly the same in round 1 and round 2 and quite less in round 3. So based on statics it can be figured out that it is more useful to apply in round 1. However as all schools say "please submit your application when you feel it is the strongest."

3. Deadlines for submitting round 1 applications are somewhere between Oct 1st week to Dec 2nd week. For round 2 they are between Nov 3rd week to Jan 3rd week. I didn't bother to collect any information for round 3.

4. Best strategy would be to apply to 3-4 schools in round 1 such that you get some feedbacks before applying to round 2 in another 3-4 schools. As i said earlier it would be difficult to write applications for more than 8 schools in a year. Also you can chose schools such that you get to know results of round 1 applications even before applying to round 1 of another school. For eg: Wharton 1st round rejections are already out and NYU stern 1st round deadline is due on Dec 1st.

5. So let us say you have chosen to apply in first round in four schools. Though for all practical reasons you can have your GMAT on the deadline date of application of a school, I would suggest that you should plan it in such a way that you have your GMAT scores atleast 2-3 months before the deadline. There are two reasons behind it.
I. If you think that your scores does not represent your abilities, you have a chance to retake the exam with another month's preparation.
II. You would be able to make better judgement in chosing your schools based on your scores in GMAT.

So I would say that you should take GMAT in July 2006, that's right more than a year before you will actually be studying MBA. Though GMAC claims that any preparation is hardly useful in altering the scores, I will say that a sincere 2 months preparation will make quite an impact. So you need to start your preparation for GMAT latest by May 2006.Also register yourself for the test in MAY.

Here a dilemma comes that what schools are you going to fill in for reporting your GMAT scores. The schools to be reported are asked before even the exam starts. So .... well use your best judgement. A document that I published earlier in this group will help you to narrow down your choices.

Also it will probably be a good idea to check-out whether schools you are interested in asks for an official GMAT scores at the time of application. As some of the school allow application process on basis of applicant submitted scores and granted the admission on the condition of verification of the scores. You might save some money over here.

6. TOEFL scores, note that not all schools require you to take the TOEFL and for many others it be waived off on the basis your college degree where the primary language of instruction was english. If in doubt submit TOEFL scores, again an official submission may not be required at the time of apping for some schools. TOEFL can be given in the month of September but just make sure that you register the date well in advance. Month of september and october are packed and gets filled by two months earlier.

7. Good news that you get to see your GMAT scores as soon as you finish the exam. Well may be not good for everyone but anyways.... So when you have your scores with you and you can take a rough estimate on TOEFL scores, its time to chose universities. If you have taken two months to prepare most likely you would not require a retake. So next step - Take no more than 15 days to chose universities. The other document published here would be of some help. In addition you should do complete research on the core competency of schools, essay topics, location and whether you stand a chance. You would have to leave some schools because you can not think of responses to their essay questions. DO IT, its alright. It is better to be able to defend your interest in a school's program even if you are not so interested rather than having an interest and not able to defend it.

9. Also this would be a good time to tell your supervisors for reccomendations, (chosing a recommeder is another discussion, we will take it some time) and friends that you are apping this year and would require help on reviews on your essays. From this point till the completion your of your apping, you have to be in regular contact with your recommenders; also keep an idea about their busy and free time. From this point till the end your recommenders are very much part of your application process. Let them know about your decisions on schools, your ideas on essay responses and other stuff. They would be of great help.

8. By July last week you have made a choice on schools. Now its to start writting your essays. As said by many "No matter how good or bad you are at writting, your second draft will be better than your first." Take sufficient time to write your responses say about a month. This is really important. Once you are exhausted start sending your copies of essays to your friends for reviews. Its good to confirm that you have included suggetions by reviewer but Do NOT send the corrected copy to the same person again as he might get bored with all your stories. Keeping your reviewers interests intact is quite important. It would be a good idea to take some professional help here if you can't find all those friends and recommenders' interests.

9. Also once you have chosen schools, you need to find out what are the things that schools require as a hard copy for eg: transcript, recommendations, GMAT and TOEFL score sheets, essays etc. Make a list somewhere with respect to college and sorted on deadline. Do remember to post your transcipts 2 weeks before if you want to do it in 350/- ; 1 week before if for 1600/- ; and lesser if you want to check out whether you are lucky. And do I need to mention that you would have to request your college to get the transcripts. You can do it today, it is not going make any difference or atleast should do it latest by July, say the day when you took your GMAT.

10. What else, open your accounts on school website as soon as you have decided the school and just go through all the pages, just to avoid any surprises. You can open a account with a false identities if site does not allow you to go to next pages without filling some of the information. I would say that atleast 15 days before submission you should know each and every question that is posed in the application. eg: your recommender's mailing address, phone numbers, their title, position, company names, your parents age, B'dates, education background, income status etc.

Well for now this is all i could think of. If something else came to my mind i will write an appendix. You have any specific questions, feel free to post it here.