Monday, September 6, 2010

Roadtrip To A Job Interview (A Successful One)

Well, it was quite an unexpected thing to occur after I was finally home. I was a bit tired as the day was very hectic and involved the placement process of Day Zero. Futures First were the firm which came to recruit on the first day. It all started at 9 in the morning with the pre-placement talks and introduction to the company. And then followed a series of tests which eliminated and filtered out those who were not qualified. Having cleared both the tests, I was still a bit precarious to appear in the final elimination round which was at 5PM in the evening. But that was more than just fun. All 15 survivors of the last stage were asked to play a game of a poker-like structure of betting and winning more than your partners. The questions were asked and the stakes were put. At the end, this very engrossing game meant that 5 of us were to be further eliminated. Then remained 10 of us. From Electronics and Communication, I was there along-with my classmates Samarth and Akash. Needless to say, we were through to the final round of Personal Interviews with the company personnel. As after the game we were instructed to go home and come for the interviews on Monday, I and Akash came back home to get a good day’s meal. Nothing to eat for the whole day and we were starving like anything. We decided to go to Freezeland to have some sandwiches as a reward for what we achieved so far that day. So off we went to Freezeland. I was on my way to the restaurant when my phone rang. I pulled over my vehicle and picked it up to find Rohit Makhija at the other end panting heavily and telling me that I was supposed to report at the InfoCity at Gandhinagar in about 45 minutes in formals and alongwith all the documents for the interview. I was more surprised than shocked to see that it was 9:30 PM at night..!! But I called home to keep a glass of milk ready and called Akash (who was also on the way) to immediately return home and get ready for it.
– In 20 minutes time –
We were in my car headed towards Gandhinagar for a 30 km ride to the interview place. Samarth was already there and had talked with us about the venue and time. Fortunately Akash had brought some Bhaji-pav sandwiches (yes, I am not joking) and a bottle full of juice. So it was kind of a fun-trip. We were least bit serious and concerned about the interviews as we thought more of the serene atmosphere outside. In about 20 minutes, we were in Gandhinagar. Finding the Tower 1 of InfoCity was a cakewalk and in no time, we were there. Now the atmosphere there was quite placid. No sign of anyone there on the campus. We waited for Samarth and other 3 from Computer branch to arrive. Then they finally arrived and the time was 10:45 PM. Reporting time was 11PM and we made our way up there to the Futures First office.
We were duly welcomed with very warm hospitality. We were then ushered to the Conference Room. We then filled up a form regarding our future prospects and the reason for our interest in the company. There we were served with the finest of the coffees I have ever tasted. Well, we later discovered that it was the magic of the automatic coffee machine from Nescafe. Not much time passed when the first one was called in for the interview. A Computer guy was the first to go in. We were all anxious and a bit nervous. But it took about 25 to 30 minutes for him to get done with it. Then went in Parth from Computers. Again for another 30 minutes. First from Electronics to go in was Samarth. He was pretty confident and we all were cracking jokes and enjoying ourselves in between some nervous moments. He went in and rather came out quickly. He was interviewed for only about 15 minutes. My turn soon came and I was ready. I was called in after Samarth and I entered the cabin, with an air of confidence. It was about 1 AM in the morning. But the interview people seemed least bit sleepy. They were pretty sure of their interview method. I was interviewed by Mr. Nikhil for about 40 to 45 minutes constantly and was asked why I was so interested in it though being strong technically. I made my best efforts and was really happy the way I performed. After me, was Akash. He was more interested in this company than any of us, telling this very frankly.
He rather was surprised the way his interview went. Because he was asked questions about his future planning and long term goals, he could not figure it out instantaneously. He was a bit slow and thoughtful in answering which did him in. It cost him and his lasted only 20 minutes. He personally thought he mistook the approach as we talked about it on our way back.
Then after all interviews were over, I was asked to stay back. I felt as if in a moment or two, I was going to be offered the job. I felt really nervous. But, when they called me in the cabin again, I came to know that it was the coveted HR interview stage I was heading to. I was shocked, but I pulled my self together and made myself ready for another dose of questions ranging from ‘Where do you see yourself in 5 years?’ to ‘How many plants do you see in this room?’. I was literally bombarded with questions at 3 AM in the morning. But I knew the best solution and held my composure. I can say I did pretty well, and convinced them that I was up for it no matter what pressure there was to be. Then after a scrutinized analysis of my mindset and capabilities, they let me go. It was about 60 minutes that my second interview lasted. But I felt more elated that I did really well. The guys in the conference room were all with questioning eyes about what I was doing in there until then. They were expecting me to be offered the job. When I said the things I was asked, they were surprised to see the amount of research those people do on the person they are hiring. But soon everything got over. It was 4:30 AM in the morning. We finally came out of the office with everyone done with the interviews.
We had not eaten a single thing since morning. We were starving. So we went to the God blessed canteen which was still open at that time in InfoCity. Two sandwiches and we were on our way back home again.
All said and done, I think my first job interview was by far the most memorable experience of my life. I will surely cherish it for a long long time. Thank you Samarth and Akash and all 3 computer guys including Pratik and Parth. I surely had a great time with you people. :)

XBee - Different Ways To Connect

Xbee radios can be connected in countless ways.  The limits are imagination and only to small degree budget.
This post is an overview of some of the strategies for making electrical connections with equipment in our labs.  The start simple and become more complex.
!!!!REMEMBER XBEES ARE 3.3V DEVICES!!!
Strategy 1: xbee explorer
explorer_wout_xbee
explorer_wxbee1
Available online and in the cabinet.
These are as easy as plugging in the radio and attaching the USB cable.  These boards supply the needed 3.3V automatically.  Look for the thin white outline on the board for orientation of the radio –  the “top” of the radio should face away from the cable connection.
If you solder header pins to the main board it can be attached to a breadboard — and then to your arduino.  As shown it can make direct connections to any software with serial capabilities.

Strategy 2: RS232-USB Breakout Boards
usb_rs232
Available online (rs-232, xbee board) and in the cabinet.
This strategy is similar to the xbee explorer board above — but now split into two boards.  The right board carries the radio, the left board handles communication protocols (it can be used with lots of devices other than xbees too!).
Because you have two boards you now need to make power and serial connections — not just snap in the radio.  Grounds (green on left, black on right) for each board must be connected to the ground bus (blue rail on breadboard).  Power (3.3V) for the radio is brought from the RS232 breakout board to the radio via the yellow wire (details below).
Serial connections go from Rx of RS232 to Tx of xbee and vice versa.  The xbee boards label Rx as Din and Tx as Dout.  This is called crossing over (look at ends of blue and white wires above).  it may help to think of connecting ears (Rx) to voice (Tx) when speaking — but, then again maybe it won’t.
POWER — is 3.3V!
You need to be more aware of voltages with this strategy.  The RS232-USB board on the left can supply 5V
and 3.3V.  Power connect should go from the SECOND pin (yellow #2 below) on the RS-232 board to pin one (1) of the xbee breakout board. Pin 1 carries 5V — so you need to double check before connecting the USB cable.
powerreminder
xbeebreakout
xbeewires

Strategy 3: Use Your Arduino Board
For this strategy you must remove your micro-controller chip — you can then use the Arduino board as if it were an RS232 breakout board.  Removing the chip straight forward (if you don’t have a chip puller, a screwdriver can be used to gently lift it out)– just go slow and be patient.  Remember to note the orientation of your chip — the notch faces the outside of the board.  You will want to re-place the chip in the same orientation.
dechipxbee
As in the breakout board strategy (#2) above — you need to make 4 connections: 3.3V, ground (gnd), Rx adn Tx.  In this case the Rx and Tx lines do not cross over (look carefully at the ends of the white and blue wires).
dechipserial
3.3 volt power can be obtained from the board (detail below).   The radio is wired as above.
dechippower

XBee - A Brief Primer

The physical aspects of the Xbee chips are introduced in the hardware section (below).  Here, we will discuss the software aspects of the configuration. 
There are two different modes of operations that Xbees can run in.  They are: 
1.       Transparent mode
2.       API mode
In transparent mode, the Xbees essentially act as a dumb serial line replacement.  In other words, each Xbee simply forwards everything that comes in through its antenna to its Din port, and sends everything that comes in through its Dout port through its antenna and into the air.  This is functionally equivalent to simply having a serial line connected between the two Xbee chips.
In API mode, Xbee operation is not nearly as simple.  API stands for Application Programming Interface, and in this mode you can send commands to and from the Xbees to perform various tasks.  Further, it is in this mode that the Zigbee protocol is used for Xbee Series 2 chips.  In other words, whereas transparent mode acts as a dumb serial line replacement, API mode unleashes the full power of the Xbees and allows us to construct a real wireless network consisting of our two devices.
When in API mode, there are three more modes that each Xbee chip – or any chip on a Zigbee network – can operate in.  These modes are:
1.       Coordinator mode
2.       Router mode
3.       End Device mode
These modes are essentially listed in order of decreasing functionality.  Coordinators are the most powerful nodes in Zigbee networks, and can coordinate activity within one network while also interacting with the outside world.  Other nodes in the network “report to” the coordinator.  Router nodes have the capability of forwarding packets from one node to another (acting as an intermediary in the network, or a router).  End device nodes cannot act as routers but can communicate with routers or the network coordinator.  On series 2 Xbee chips (which we used), it is necessary to change the firmware on the chips to change between API and transparent mode and also between Coordinator, Router, and End Device mode.
In our application, we used the Xbee connected to the PC as a coordinator, and the remote Xbee as an end device.  This allowed us to use the Xbee connected to the PC to send commands to a remote Xbee, and also to set up automatic I/O sampling on the remote Xbee.  Xbees that are within the network of a certain coordinator are said to be “associated” with that coordinator node.
To configure Xbees, you can use Digi’s own X-CTU software, which was created specifically for configuring Xbee and similar chips offered by Digi, or you can simply connect to the Xbee chips via a serial terminal (such as Hyperterminal) and send them a series of commands.  You can also use a network coordinator to send commands to be executed on a remote Xbee within that coordinators network.  The Xbee chips have various registers that store different parameters.  For example, the parameter AP is what determines whether the Xbee is in transparent or API mode.  When AP=0, transparent mode is enabled.  When AP=2, API mode is enabled (AP = 1 also enables API mode, but with slight differences that we won’t discuss here).

Open Source Arduino Clock

I stumbled upon a nice little clock code based on Arduino. I am sharing it here. You can also edit it and use it make your own such modified one.
#define vers = “1.01″
#define ledPin 13
#define secondPin 4
#define minutePin 5
#define hourPin 6
#define weekdayPin 7
int second=0, minute=0, hour=0, weekday=1; // declare time variables
// these time variables are declared globally so they can be used ANYWHERE in your program
void setup() { 
blinkLED(ledPin, 4, 100); // blink an LED at the start of the program, to show the code is running
Serial.begin(9600); // start up serial communications
pinMode(secondPin, INPUT); //pins for normally closed switches to set the time
pinMode(minutePin, INPUT);
pinMode(hourPin, INPUT);
pinMode(weekdayPin, INPUT);
digitalWrite(secondPin, HIGH); // writing an input high turns on pull-up resistors
digitalWrite(minutePin, HIGH);
digitalWrite(hourPin, HIGH);
digitalWrite(weekdayPin, HIGH);
}
void loop() {
static unsigned long lastTick = 0; // set up a local variable to hold the last time we moved forward one second
// (static variables are initialized once and keep their values between function calls)
// move forward one second every 1000 milliseconds
if (millis() – lastTick >= 1000) {
lastTick = millis();
serialOutput();
second++;
}
// move forward one minute every 60 seconds
if (second > 59) {
minute++;
second = 0; // reset seconds to zero
}
// move forward one hour every 60 minutes
if (minute > 59) {
hour++;
minute = 0; // reset minutes to zero
}
// move forward one weekday every 24 hours
if (hour > 23) {
weekday++;
hour = 0; // reset hours to zero
}
// reset weekdays on Saturday
if (weekday > 7) {
weekday = 1;
}
checkButtons(); // runs a function that checks the setting buttons
}
void checkButtons() {
static boolean secPressed=false, minPressed=false, hourPressed=false, wkdayPressed=false; //track button state
if (digitalRead (secondPin)==LOW && secPressed == false) { // if a normally closed switch is pressed
second++; // advance by one second
secPressed = true; // note the pressed state
}
if (digitalRead (secondPin)==HIGH) secPressed = false; // reset the state when the button is released
if (digitalRead (minutePin)==LOW && minPressed == false) {
minute++;
minPressed = true;
}
if (digitalRead (minutePin)==HIGH) minPressed = false;
if (digitalRead (hourPin)==LOW && hourPressed == false) {
hour++;
hourPressed = true;
}
if (digitalRead (hourPin)==HIGH) hourPressed = false;
if (digitalRead (weekdayPin)==LOW && wkdayPressed == false) {
weekday++;
secPressed = true;
if (digitalRead (weekdayPin)==HIGH) wkdayPressed = false;
}
}
void printWeekday (int dayNum) {
// print a weekday, based on the day number
switch (dayNum) {
case 1:
Serial.print (“Sunday”);
break;
case 2:
Serial.print (“Monday”);
break;
case 3:
Serial.print (“Tuesday”);
break;
case 4:
Serial.print (“Wednesday”);
break;
case 5:
Serial.print (“Thursday”);
break;
case 6:
Serial.print (“Friday”);
break;
case 7:
Serial.print (“Saturday”);
break;
}
}
void serialOutput() {
// this function creates a clock you can read through the serial port
// your clock project will have a MUCH more interesting way of displaying the time
// get creative!
printWeekday(weekday); // picks the right word to print for the weekday
Serial.print(“, “); // a comma after the weekday
Serial.print(hour, DEC); // the hour, sent to the screen in decimal format
Serial.print(“:”); // a colon between the hour and the minute
Serial.print(minute, DEC); // the minute, sent to the screen in decimal format
Serial.print(“:”); // a colon between the minute and the second
Serial.println(second, DEC); // the second, sent to the screen in decimal format
}
// this utility function blinks the an LED light as many times as requested
void blinkLED(byte targetPin, int numBlinks, int blinkRate) {
for (int i=0; i<numBlinks; i++) {
digitalWrite(targetPin, HIGH); // sets the LED on
delay(blinkRate); // waits for a blinkRate milliseconds
digitalWrite(targetPin, LOW); // sets the LED off
delay(blinkRate);
}
}

Common XBee Project Mistakes

Your XBee project isn’t working? Here’s some common mistakes that both beginners and experts make:
  • Not using the latest firmware (especially if ATD0 or ATIR is giving an error)*
  • No reference voltage to VREF pin on the 802.15.4 radios (analog and digital reads give wrong values)
  • Forgetting that AT commands use hexadecimals
  • Hitting return after +++ (or otherwise not respecting 1 second default guard time)
  • Conversely, _not_ hitting return after an AT command
  • Letting the XBee time out of command mode before issuing an AT command (you’ll know because you get no response)
  • Forgetting to write the configuration to firmware with ATWR (unless your application configures the radio interactively)
  • Not using ATRE (restore factory defaults) before re-configuring a previously used radio (previous settings lurk unless you manually reset them all)
  • Looking for analog output on the analog input pins instead of pins 6 and 7 (P0, P1)
  • Using a voltage regulator without decoupling capacitors (10uF on input, 1uF on output is good)
  • Mixing up TX and RX pins (fastest way to check this is switch the wires and see if it starts working)
  • Using ZigBee version (ZB Pro or ZNet 2.5) when 802.15.4 version would do just fine (if you don’t need to make a mesh network)
  • Trying to read more than 1.2 Volts on the ZB Pro and ZNet 2.5 analog inputs (that’s the limit)
  • Buying Pro radios when you don’t need them. (Cost more, bigger, use a lot more battery)
  • Deciding the XBees are flaky. (You may not be using them correctly, but they are very reliable)
  • Deciding an XBee is burned out when it’s set to a different baud rate (check ON and ASSC lights)
  • Deciding an XBee is burned out when it is just sleeping (Check ON light to see if it blinks occasionally)
  • Forgetting to supply power or ground (ON light may go on and ASSC light may blink but both will be significantly dimmer)
  • Not contacting Digi sooner for support, especially if your radio seems dead or you keep getting an error you don’t understand. 
XBee Arduino Mistakes
  • Sending continuously without any delay (try 10ms delay)
  • Not removing RX and TX connections before uploading code (Arduino will give an error)
  • Not removing RX connection when reseting, if you are continuously receiving data. (Arduino will never reset)
XBee LilyPad Mistakes
  • Hooking up more than 4 Volts to the 3.3V pin
  • Using switches without pull-down resistors (but not if you use the internal pull-ups)
  • Not using a pull-up or pull-down resistor on pins 5 and 7 (these don’t have internal pull-ups at all)
  • Using sensors without voltage divider resistors (if your sensor needs that circuit)
  • Using too-resistive conductive thread for power and ground (try fabric or wires)
* Windows and X-CTU are required for firmware upgrades

BitLash - Open Source Language Shell

Bitlash is an open source interpreted language shell and embedded programming environment. This website documents Bitlash for the popular and useful Arduino.
The Bitlash shell runs entirely on the Arduino and supports many of the familiar Arduino functions. Bitlash interprets commands you type on the serial port:
bitlash here! v1.1 (c) 2010  -type HELP- 1383 bytes free
> print "Hello, world!", millis()
Hello, world! 11939
>
It’s easy to extend Bitlash by naming a sequence of commands as a Macro, which is like a new word in the Bitlash language. A Bitlash application is a set of such macros, and since they are stored in the EEPROM, Bitlash can start up your application automatically at boot time for standalone operation.
In cases where you need native C code to get closer to the hardware, perhaps for speed or to interface with a custom peripheral, it’s also easy to integrate your C code with Bitlash as a User Function.
Read on for more about Bitlash.

Quick Start

—-

What is Bitlash?

Bitlash is an embedded interpreter that runs in about 14k of memory on an Atmel AVR processor. It works nicely with Arduino to make a development and prototyping tool for those situations where you need to bang some bits on the Arduino but writing a sketch in C is premature. It’s very convenient for bringing up and debugging new hardware.
The Bitlash command language is very similar to Arduino C and includes a large repertiore of the familiar Arduino C functions so you can hack your hardware from the serial command line or even over the internet via telnet.
You can store commands as macros in EEPROM and autostart them at bootup, making the automation and maintenance of small applications very easy. Here is the classic Blink13 program as a complete Bitlash application in two macros, toggle13 to toggle the led and startup to initialize and run it:
> toggle13:="d13=!d13"
> startup:="pinmode(13,1);run toggle13,1000"
> boot
(d13 flashes)

Download Bitlash

The current version of Bitlash is available at the Download page.  
• install
Table of Contents

The Bitlash Install Page

Requirements

You need an Arduino connected to a PC with a working Arduino IDE. These directions are for Arduino IDE version 0018, but they work for the earlier 0017 version too. Since Bitlash is an Arduino library you upload with a sketch, you need to be comfortable uploading sketches. Get this working first to save debugging headaches. There is plenty of help over at the Arduino Forums.

Download BitlashThe current version of Bitlash is available at the Download page.


Install Bitlash: Arduino 0018 IDE

The Arduino Development Environment Guide specifies this procedure for installing third party libraries:
"To install these third-party libraries, create a directory
called libraries within your sketchbook directory. Then unzip
the library there."
There is also a post on the Arduino weblog with further explanation.
So, to install Bitlash,
  • Create a directory called libraries within your sketchbook directory
  • Unzip the download and copy or move the Bitlash distribution folder into the libraries folder you just created Rename the resulting folder to simply bitlash, if necessary, to remove the version number. You should end up with a folder setup that looks like this:
  • Restart the Arduino IDE; if all goes well, you will find the bitlash library listed in the Sketch / Import Library menu.
  • Select File / Examples / bitlash / bitlashdemo to open the demo sketch, then File / Upload to compile and upload it to your Arduino.
When your upload is complete, you are ready to connect to Bitlash. Proceed to the next section on Connecting.

Connect With a Terminal Emulator

Connect to the serial port at 57600 baud using whatever terminal emulator works for you. Here are some options:
  • You can use the built-in Arduino Serial Monitor, but see the note below
  • On Windows, HyperTerminal seems popular
  • On OS X I use screen, CoolTerm, and bitty.py
  • On Linux screen is available on most distributions
You can use the Arduino “Serial Monitor” function with Bitlash, but you must employ a bit of a workaround to compensate for the fact that Serial Monitor does have a way to send a line ending carriage return at the end of a line of input.
The workaround is that you must end each line of input with the 'accent grave' character, the '`' found at the top left of many keyboards. This workaround is not necessary if you use a terminal program that sends the line ending characters.
Here is an example using the screen program in OS X to connect with Bitlash on a USB-connected Arduino. The /dev/tty.usb… part is the virtual serial port name that you can find in the Arduino Tools/Serial Port menu and the 57600 is the baud rate:
bitlash 1.1 here! (c) 2010 -type HELP- 335 bytes free
>
Congratulations, you are up and running: Bitlash is listening for commands, as signified by the '>' prompt.

Now that you have a command prompt you can type a command, and press Enter.
Here is the usual Hello World example you might run as your first Bitlash program:
> print "Hello, world!"
Hello, world!
>
While you're there you might check the arithmetic:
> print 2+2
4

No discussion of “Hello, world!” for embedded systems would be complete without blinking an LED. This example shows how to build a complete Bitlash application using macros and auto-start.
First it is necessary to introduce the concept of pin variables: Bitlash gives direct access to the digital IO pins via single-bit variables named d0, d1, d2, and so on. You can read a pin variable's value and print it like this:
> print d12
0
…and assign it like this:
> d13=1   // turn on pin 13
…though you must remember to set the pin mode if you want the port to be an output:
> pinmode(13,1)
So, returning to blink13, what we want is to toggle the pin periodically. Let's define a macro named toggle13 to toggle the pin:
> toggle13 := "d13 = !d13"
A macro named toggle13 containing the Bitlash code “d13=!d13” is defined and saved in EEPROM. When the macro toggle13 runs, this program text sets pin d13 to the logical complement of its current value: if it was zero, it becomes one, and vice versa.
Now all we need is to arrange for toggle13 to be run at the desired toggle rate, let's say every 1000 milliseconds; and let's not forget to set pin 13 as an output. By using the special macro name startup we designate this macro to be automagically run at boot time, completing our application:
startup := "pinmode(13,1); run toggle13,1000"
List our macros to make sure they're right using the ls command:
> ls
toggle13:="d13 = !d13"
startup:="pinmode(13,1); run toggle13,1000"
>
You can run the startup macro from the command line to test:
> startup
(the LED on pin d13 is blinking)
You can also restart to test the power-on startup:
> boot
bitlash here! v1.0...
(the LED on pin d13 is blinking)

Congratulations! If you get this far, you have a free-standing development environment on your Arduino.
You will very likely find it useful to proceed to the Documentation Index.

Get .hex from an Arduino Code

There is no direct way to access .hex files of the code you write in Arduino.
There is a work-around I found on another thread.  Create the applet folder (any name) under arduino-0018 folder and restart Arduino IDE.  Then when the compile or upload is clicked, it works, uploads and all.  The folder is filled with the files – easy to find and a reasonable name. MUCH better.
This is better than the temp folder crap – even better f it would put the applet under the sketch folder as before so the files didn’t get overwrote if changing sketch.  
An option would be very good. Comments are welocome.

Musings

Journey of a lifetime begins in the womb. The baby resides for 9 months inside the mother, unaware of what is happening outside in the world, unaware of every single bit, not hearing the chaos, anarchy and the hubbub and the fuss. But the bitter truth is imminent and the baby is finally born to face the world.
In every single Indian family, the post birth rituals are more or less, the same. The child is named by his parents and relatives. He enjoys the first two years and a half in just toddling around and trying to comprehend what is going around him.  But just after that, comes the most gruelling and life-changing point in everyone’s life – the schooling. That’s where most of the problems begin.
I must say that I myself had a very good schooling experience as a 3 years old to a complete grown-up at 18 years old. But for most of the people including me, what matters is what happens in between these 15 years that makes the character and kind of a person that we are today.
I still remember my first day at Vandana School. Well, it’s not very easy to adjust to a schedule in which you have to wake up every morning at 7 AM to catch the school rickshaw, especially when until yesterday you were not even bothered about peeing in your pants. But that’s the way it goes. I went to the school to see another 50 such alien faces completely aghast by what we were put into. But what happened afterwards is what has been happening to thousands and millions of children across India – the slam-bang lecture series and homework pushing the children on the brink of breaking down. I got comfortable with a couple of guys who became good friends and I enjoy their company till date.
I was well-behaved and intelligent. Throughout the primary school, I managed to secure the first rank among all the students in the class. Mom would be very proud of me though she never showed it so as not to make me over-confident. Today I think that I should have been more of a playboy at that time rather than studying which could have meant many childhood sweethearts to choose from.
Once it started, years flashed in front of the eyes (the mind barely noticing anything) and off I came to a moment which most people call the ‘Stepping Stone’ to maturity and adolescence. Yes, I was in the eighth grade and to add to it, was glorified by the thought of being in a high-school. Believe me, after all these years, I still relish the fact that at that phase of life, tiny little moments like that tinkled the heart and made me happy.
In a state like Gujarat, where the parents are so psyched about the idea of their child nearing the 10thgrade, it’s very difficult for a student to cope up.  Scenario at my home was no different. Here in our state, the parents barely discuss anything but education and future prospects at the dinner table. 6 months into the 9th grade, the tuition market heats up like a share-market in the economic boom. Every single tuition teacher does his best to ensure a healthy student count under his belt.
Well, I still believe that it’s not the fault of the parents to do that since they want their child to have the best coaching in town. I think it’s the fault of the schools and the teachers at school who are not able to drive the point home that a child must learn everything at the school only. Here, tuition classes are the radical educating institutes rather than the schools. School teachers are not interested to teach at schools as they are paid more at their tuition classes.
The point is, ultimately the child only comes at home to have the dinner and to sleep. After almost 7 hours of school every day, he has to attend at least 5 hours of tuitions every day.
A child in the 10th grade, works more than an average mason or an average labourer (without being paid of course). Tuition teachers go gaga over the toppers in their classes as they are the advertising models (with nude minds) which would bring zillions of students next term. In this whole scenario, the average students end up nowhere and are only left with a choice of engraving RIP on a stone and sleeping under it.
As the board exams come near, the tension grows in the households. First comes the turn of the TV to turn off and go to hibernation. The comic books make their way to the ‘Pastiwalla’s home. Every single thing which can hamper the concentration of the studying nerd, vanishes from the house. The house turns into a silent crematorium and the student turns into a dead body, eyes popping out of their sockets trying to grab the black and white paragraphs of the textbooks. Only good thing to happen in those days is that the student gets a Maharaja treatment while he is slogging things out from the books. Treatment includes the constant supply of caffeine to keep him awake in the form of tea or coffee. Every single things the child demands, is supplied to him without even a puff of a sound. The ‘dad’ part is almost non-existent as he’s not allowed to watch TV or even talk to the child, so that the child can concentrate. The cricket matches and the cricketers are cursed heavily for diverting children’s attention from studying. Mobile phones and iPods see the back of the lockers temporarily. Cinemas start to lose money as no child would even dare to go for a movie in those social curfew times. In-short, the period of two and a half years of board is more than just a hell for the students. Losing one mark may be sufficient for the environment of the house to go bursting in fury. Statements like ‘Ek saal padh lo, fir to mauj hi karni hai puri zindagi.’ are the only hopes of the children who are made to act as if they are risking their future every time they waste their time or do something apart from studying.
All for the want of a single benevolent thing: get good marks to secure a good future. But is it true? I mean, does every single board ranker end up in a multimillion dollar firm? Answer is pure ‘No’. To even think like that is utter foolishness. Intelligence has no barometer to measure it. Board rank is the measure of the ability of mugging up some 2000 pages which could be done by anyone sane enough. The Main Thing is ‘Education’. Do we get it or are we ensured of it once we start learning things at school? Many children cannot bear the thought of the humiliation, once they fail in exams. The result: Suicide attempts – some successful (unfortunately) and some unsuccessful.
[Education System was started by the British. We adopted it directly. The Americans also learnt it from the British, but they made their own changes. They made it more of a versatile kind and student friendly, which was definitely a positive change. Main thing is to have Options and Freedom in the system.
Our system prepares numb muggers and mere calculators with bottle-glass spectacles. We want the problem solvers and creative thinkers, and not the die-cast degree holders. The value is of the quality perceived and not of the degree certificate.  With the largest population of people under the age of 25 years, our country bears a great advantage to be the super-power in every field.]      
Soon the exams got over and up came the long-awaited vacation. We had planned to do so many things with the friends. The iPod and mobile phone came out of the locker to find the world still existent. I welcomed the happy change and the world seemed a better place. It was a well earned vacation to say the least. Parks and theatres were chirping with youth again.  
The day the results came out – After all the princely treatment and a little effort, I had finished my 12thgrade in style and came out on top just like I did in 10th. But I still rue the fact that I had to be a part of this rotten education system to prove my capability. I should say, it was more than just easy. Joy of success could not last for more than 2 days as I realised I had missed so many things an 18 year old would like to do all because of the rat-race.
 Then begun another seasonal sale scenario – the Admission process for the colleges. Well, any online auction could best represent it in the simplest of manners. It was more than that. The parents of students made their base-camps in the compound of admission committee building. The scene looked more like a ‘Swayamvar’ in which the bride (student) chose the best possible groom (college) in rank with her own percentage. For me, it was more like a pre-decided engagement, as I chose the first best option (because of my enviable results).